前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >“暑”你当学霸|2022 CUDA线上训练营Day 1学员笔记分享

“暑”你当学霸|2022 CUDA线上训练营Day 1学员笔记分享

作者头像
GPUS Lady
发布2022-07-06 19:41:24
5260
发布2022-07-06 19:41:24
举报
文章被收录于专栏:GPUS开发者GPUS开发者

7月4日,2022 CUDA on Arm Platform线上训练营开始第一天的课程。

第一天的课程,NVIDIA开发者社区何琨老师重点讲解:

  •  基于Arm的Jetson开发环境介绍,Arm Linux系统简介(1.1理论课+实验课)

介绍实验平台,介绍Linux编译的基本技巧,介绍基本的开发环境。实验课:Makefile 编写规范。

  • GPU架构及异构计算(1.2)
  1. Ÿ  介绍GPU架构以及异构计算的基本原理
  2. Ÿ  介绍GPU硬件平台
  3. Ÿ  介绍基于Arm的嵌入式平台GPU架构和编程模型之间的关系,介绍Grace CPU相关
  4. Ÿ  最新的GPU应用领域,GPU在现代计算机科学中的通用性
  • CUDA编程模型---初识CUDA(1.3+1.4实验课)
  1. Ÿ  CUDA程序的编译
  2. Ÿ  GPU线程的调用
  3. Ÿ  GPU和CPU的通讯
  4. Ÿ  使用多个线程的核函数
  5. Ÿ  使用线程索引
  6. Ÿ  多维网络
  7. Ÿ  网格与线程块
  8. Ÿ  利用NVProf查看程序执行情况
  9. Ÿ  实验课内容:编写程序HelloCUDA,并且利用NVCC编译。编写VectorAdd多线程程序,和多维网络线程程序,并用nvprof来测试不同设置情况下运行速

课堂问题汇总:

1. __device__ 的返回类型可以不是void?

--可以的。但这种情况下,执行的效果可能需要其他方式返回了。(例如通过一个参数int *p, 然后写入p指向的空间),

2.一般返回值都通过指针参数返回比较好?

--都行,常见的习惯是标量值,可以直接作为返回值,每个线程超过1个值(例如需要返回10个float),则建议用指针。

3. 和CPU上只能同时执行有限数量(常见的例如8核16个超线程的CPU)的十几个、几十个。GPU上能同时执行海量的线程数量,例如几十万、上百万。可以有效的发挥GPU设备的能力。而如何有效的管理这么大数量的线程,则需要"线程组织形式", 可以有效的管理、执行问题,避免混乱。

4. 来自Fortran同学注意了,我们的GPU上的CUDA C语言,采用的是下标从0开始,而不是1.

5. 学校:1个grid /年级:1个block/班:1个block/你:1个线程

6. 指定超过SM中core数量的话会怎样?无问题的。你可以理解成每个SM都是海量超线程的。例如我们本次例子的Jetson设备,1个SM只有128个SP,却可以同时执行2048个线程(你可以理解成16倍超线程)。再多也是可以的,用其他方式继续调度

7. 线程数目可以远大于物理core数目

8. 1个block在一个sm里面执行,sm是什么?

--一般情况下,可以直接将GPU的SM理解成CPU的一个物理核心. 按SM划分有好多好处。例如一个GPU可以简单的通过横向扩充SM,即可扩大规模。例如1个block的线程限定给1个SM,可以让1个block的线程在SM内部高效的执行数据交换/交流/同步之类的。

9. 写cuda程序的时候能申请的最大线程数不是无限的, 最大的线程数量:1024*(2^31-1)*65535*65535

10. 一个block有多少个线程是调用的时候自己指定的?而不是固定的?是自己(你)定的。

11. 如果两个进程运行,调用的函数都同时使用同一个blockid和threadid,会不会有冲突的?

--不会。依然各自是各自的线程(虽然两次启动线程的编号有重复的)。

12. 不能直接将一次kernel启动理解成1个CPU上的process的。两回事。你理解成“一次能开辟很多线程的函数调用较好”。

13. 如果cuda申请的thread不足了,调用的函数会怎么样??就是报错如何处理? --如果你指定了超多的启动规模,超出了你卡的能力,会报告“无效启动配置”。

14. cudaDeviceSynchronize();是同步哪个步骤呢,是不同block的计算结果么?

--CPU上的调用者等待GPU上的之前的所有进行中的异步任务完成。和GPU上的blocks之间互相同步(那个叫全局同步)无关

以下是学员学习的笔记分享:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档