Cuda笔记1

1、培训001

Cuda笔记1_第1张图片
Cuda笔记1_第2张图片
1Cuda笔记1_第3张图片
1+…+100,CPU是串行执行,GPU是分成几部分同时计算,如1+2+3,4+5+6…

2、培训002

Cuda笔记1_第4张图片
一来一回
Cuda笔记1_第5张图片
每种定义有对应的调用位置,和执行位置,不对会报错。
Cuda笔记1_第6张图片
下图是用NVPROF时间分析
Cuda笔记1_第7张图片
下图是资源分析
Cuda笔记1_第8张图片

1) CUDA线程层次

Cuda笔记1_第9张图片
一个SM执行多个block
Cuda笔记1_第10张图片
所有线程执行同一个kernel,每个线程处理的数据不一样
Cuda笔记1_第11张图片
线程在cuda core里面,block以块为单位分配到sm中,grid在device中
Cuda笔记1_第12张图片
如图描述的是:9个block分给3个sm
这张ppt的流程与下面这个图其实是一回事
Cuda笔记1_第13张图片
Cuda笔记1_第14张图片
理由:层层分级便于管理,和企业或government管理有点相似。还有个协作,通过共享内存使thread block协作。

Cuda笔记1_第15张图片
h_a,h_b指CPU的变量,d_a等指GPU的变量,申请各自的空间。
使用cudaMemcpy函数将cpu的变量传给gpu,然后使用kernel函数计算。
然后将结果送回去给CPU,最后释放
第一步
Cuda笔记1_第16张图片
第二步,还有个步骤是,cpu通过giga thread将block分配给sm中
Cuda笔记1_第17张图片
第三步
Cuda笔记1_第18张图片

2)CUDA线程索引

设置多大?没有规矩,要通过实验!!!

3)CUDA线程分配

Cuda笔记1_第19张图片
每个线程块的xyz维度最大申请1024,1024,64

Cuda笔记1_第20张图片
Cuda笔记1_第21张图片
参考链接:https://www.bilibili.com/video/BV1dq4y1k7RD?p=1《NVIDIA-CUDA-冬令营》

你可能感兴趣的:(CUDA,笔记)