week26 ASC20训练营

2020-02-02  本文已影响0人  吃醋不吃辣的雷儿

这两天参加了ASC20的集训营,第一天是赛题的讲解,第二天是CUDA的学习。一方面开拓了眼界,另一方面也感受了北京的交通。话说产业联盟大厦的员工食堂里面饭还是很好吃的!!


开营
量子加速

上面是当时拍的两张照片,还有一些在群里就不摘了。下面是做的一些笔记。用到了NVIDIA的CUDA课程,当时我们还在抢那个课程号我记着,不过现在也不知道还有没有开放。NVIDIA的平台做的真的很棒,线上学习就像实验楼一样,不用在自己的电脑上配置环境,可视化也做得很不错!

并行:数据依赖性
kernel:丢到GPU上跑的一个函数
CPU与GPU间数据传输的问题 cudaMallocManaged()
解决异步性 暂停 CPU等待 数据返回 cudaDeviceSynchronize()
软件层面最底层 :线程

Grid

一个block共享一个shared memory(一个科室共用XXXX)
网格Grid →线程块Block →→线程Thread(最小单位)
GPU→→Stream Multiprocessors→→Stream porcessors(cuda core)
索引index indices


block

firstParallel<<<2,5>>>(); Grid里面2个block 每个block里面5个线程


Idx GridDim为2

threadIdx.x blockIdx.x blockDim.x Idx:index
dataIndex.x = threadIdx.x + blockIdx.x * blockDim.x
dataIndex.y = threadIdx.y + blockIdx.y * blockDim.y(看行优先还是列优先)

cudaMallocManaged(&a, size);在CPU和GPU间分配内存
Warp 32条thread 不管是实际上需要几条thread 都是最少一个Warp来执行
32条指令 定义数据的时候尽量定义成32的倍数

visual profiler

可视化工具visual profiler CPU Page Faults Runtime API 运行时间

上一篇下一篇

猜你喜欢

热点阅读