CUDA
文章平均质量分 72
Jhonny_yang
努力学习
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
cuda--编程基础
GPU架构概览GPU适合用于:密集计算,高度可行并行计算,图形学等,即执行计算; GPPU不适合于:缓存数据,控制指令流;原创 2020-06-23 17:12:10 · 399 阅读 · 0 评论 -
CUDA并行计算基础
CUDA并行计算基础CUDA(Compute Unified Device Architecture)并行计算基础CUDA异构计算CUDA处理流程CUDA线程层次:CUDA支持多种语言和设备CUDA(Compute Unified Device Architecture)并行计算基础(说明:所有图片均来自于网络,仅供学习... )CUDA并行计算模式并行计算是同时应用多个计算资源解决计算一个问题:涉及多个计算资源或处理器 问题被分解为多个离散的部分,可以同时处理(并原创 2020-06-23 17:00:45 · 1612 阅读 · 0 评论 -
CUDA学习笔记(持续更新——蜗速)
CUDA学习笔记(持续更新——蜗速)1.CUDA 程序实现流程如下2.内存管理3.核函数4.全局数据访问唯一索引5.设备管理附录代码1.CUDA 程序实现流程如下将数据从CPU内存拷贝到GPU内存; 调用核函数对GPU内存中的数据进行处理; 将数据从GPU内存拷贝到CPU内存;2.内存管理 主机和设备内存函数标准C函数 ...原创 2019-11-13 18:41:26 · 575 阅读 · 0 评论 -
6 CUDA学习笔记——理解线程,进程,线程束,线程块和网格
线程与进程: 线程是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。而线程是进程中的一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。线程束和线程块: 一个线程束由32个连续的线程组成,在一个线程束中,所有的线程按照单指令多线程(SIMT)方式执行;即,所有线程都执行相同的指令,每个线程...原创 2019-08-13 13:27:08 · 4333 阅读 · 2 评论 -
5 CUDA学习笔记——内存申请,拷贝与释放
申请主机端内存 int nx = 1<<14; int ny = 1<<14; int nxy = nx*ny; int nBytes = nxy*sizeof(float); //mlloc host global memory float *h_A, *h_B, *hostRef, *gpuRef; ...原创 2019-08-12 14:58:23 · 1546 阅读 · 0 评论 -
4 CUDA 学习笔记 —— 二维索引
通常情况下,矩阵用行优先的方法在全局内存中进行线性存储。对一个二维矩阵,需管理以下三种索引:线程和块索引 矩阵中给定点的坐标 全局线性内存中的偏移量具体操作如下:step1:将线程和块索引映射到矩阵坐标上:ix = threadIdx.x + blockIdx.x * blockDim.xiy = threadIdx.y + blockIdx.y * blockDim....原创 2019-08-09 11:56:55 · 1500 阅读 · 0 评论 -
3 CUDA 学习笔记—— 性能分析、计时与设备号读取
限制内核性能因素:存储带宽 计算资源 指令和内存延迟应用性能分析工具检测内核性能:nvvp, 独立可视化分析器,显示CPU与GPU上的程序活动的时间表; nvprof, 命令行分析器, 在命令行上收集和显示分析数据,获得CPU与GPU上CUDA关联活动的时间表,包括内核执行、内存传输和CUDA的API调用,以及硬件计数器和CUDA内核的性能指标;nvprof [nvprof_a...原创 2019-08-08 12:53:44 · 597 阅读 · 0 评论 -
2 CUDA 学习笔记——一维索引与线程检测
线程索引:基于以网格和块的一维信息来计算全局数据访问的唯一索引:int idx = blockIdx.x*blockDim.x+treadIdx.x;定义一个错误处理宏封装所有的CUDA API调用,简化错误检查过程:(\ 不能省去)#define CHECK(call) ...原创 2019-08-08 11:29:46 · 468 阅读 · 0 评论 -
1 CUDA 学习笔记——开发环境检查
检查CUDA编译器是否安装:which nvcc检查是否安装了GPU加速卡:ls -l /dev/nv*原创 2019-08-08 11:30:21 · 376 阅读 · 0 评论
分享