来自炼数成金罗老师的课

  1. 并行编程的通讯模式(Communication Patterns)
    1.1 什么是通讯模式
    并行计算:很多线程的通力合作来解决一个问题。拿For循环距离,比如一个For循环循环一百次,CPU的话就是这100次一次一次的执行,但是GPU的话是这100次同时执行。
    并行模式:1.同时读取同个位置。2.所有循环都往一个地方写数据。3. 不同的数据位置,还有一部分内容或结果是需要交换的。
    最常见的通讯模式分别有:
    1. 映射(Map):输入输出关系:一一对应(one-to-one)。例子:每个元素倍数扩大,y[i]=3*x[i]
    2. 聚合(gatter):输入输出关系:多对一(many-to-one),例如,每相邻三个元素求平均,y[i]=(x[i-1+x[i]+x[i+1]])/3。gather模型在图像领域用的非常多。
    3. 分散(scatter):与gatter对应,输入输出关系:一对多(one-to-many)不一定读入的值一个是一个,但一定是比输出的值少一些。
    4. 模板(stencil):以固定的模式读取相邻的内存数值。输入输出关系:serveral-to-one

     5.转置:输入输出关系:一对一(one-to-one)

6. 压缩reduce:输入输出关系:多对一(all-to-one)输入输出关系:多对一(all-to-one)

7. 重排scan/sort,输入输出关系:多对多

1.2通讯模式的类型和原理

GPU并行计算与CUDA编程第2课第一节相关推荐

  1. CUDA编程(一):GPU计算与CUDA编程简介

    CUDA编程(一):GPU计算与CUDA编程简介 GPU计算 GPU硬件资源 GPU软件资源 GPU存储资源 CUDA编程 GPU计算 NVIDIA公司发布的CUDA是建立在GPU上的一个通用并行计算 ...

  2. NVIDIA GPU SM和CUDA编程理解

    SM硬件架构基础 不同架构的变化可以参考: ​​​​​​从AI系统角度回顾GPU架构变迁--从Fermi到Ampere(V1.2) - 知乎 英伟达GPU架构演进近十年,从费米到安培 - 知乎 Vol ...

  3. python编程print语法_Python 第一节 安装及 print 输出语句—教案

    Python 第一节 安装及 print 输出语句 学习目标: 1 .学会安装 python 编程软件并测试编程环境是否成功 2 .理解字符串和表达式的概念 3 .学会使用 print 语句输出不同内 ...

  4. 【GPU】Nvidia CUDA 编程基础教程——利用基本的 CUDA 内存管理技术来优化加速应用程序

    博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发. 在5G早期负责终端数据业务层.核心网相关的开发工作,目前牵头6G ...

  5. linux用cpu模拟cuda,GPU模拟器,用于CUDA编程,无需硬件

    对于那些谁正在寻找答案在2016年- 免责声明 >我毕竟没有效仿GPU. >如果你满足其列表,可能可以使用gpuocelot 依赖性. 我试图得到一个模拟器的BunsenLabs(Linu ...

  6. 【GPU】Nvidia CUDA 编程高级教程——利用蒙特卡罗法求解近似值(NVSHMEM)

    博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发. 在5G早期负责终端数据业务层.核心网相关的开发工作,目前牵头6G ...

  7. 华信Java课第一节

    Ⅰ如何编写Hello World system.out.printfln("Hello World"); Ⅱ类与对象的概念 对象:生活中的每一个实体(具体) 类   :部分实体的共 ...

  8. linux运行并行计算cuda,并行化计算与CUDA编程

    原标题:并行化计算与CUDA编程 近年来,显卡的更新换代也比较快,NVIDIA今年的发布会也宣布了RTX3080TI即将到来.显卡的运算能力也越来越强. 很多人对显卡的了解可能源于游戏,但是你的显卡不 ...

  9. 【GPU结构与CUDA系列4】GPU存储资源:寄存器,本地内存,共享内存,缓存,显存等存储器细节

    0 软件抽象和硬件结构对应关系的例子 把GPU跟一个学校对应起来,学校里有教学楼.操场.食堂,还有老师和学生们:很快有领导(CPU)来检查卫生(需要执行的任务Host程序),因此这个学校的学生们要完成 ...

最新文章

  1. 设计模式C++实现(13)——中介者模式
  2. boost::fusion::unfused_typed用法的测试程序
  3. aspx隐藏前台控件div_c# – 代码隐藏页面无法“查看”aspx页面中声明的任何项目/控件...
  4. 词法分析器c语言带注释,C语言词法分析器内容说明注释完整可运行代码.doc-资源下载在线文库www.lddoc.cn...
  5. 阿里HBase高可用8年“抗战”回忆录
  6. 让VMware低版本运行VMware高版本创建的虚拟机
  7. vue横向树结构_vue组件横向树实现代码
  8. ACM各题型OJ题目总结
  9. 双赛道近四百万奖金,2021全国人工智能大赛来了
  10. 移动端web开发click touch tap区别
  11. window文件共享访问记录清除命令
  12. iOS 使用oc 版本的Lottie 库
  13. Probability Through Experiments
  14. PHP面向对象-多态
  15. 【STM32技巧】ADC模拟量采集的几种用法
  16. 「go-micro」学习笔记1——Micro 与 Go-Micro
  17. 程序员入职请前辈吃饭,一桌五人 网友五字神评论亮了
  18. 关于使用计算机调查报告的目的,关于大学生电脑使用情况调查的实践报告(终.doc...
  19. Filter 什么是滤镜?
  20. error: 'lianxi/' does not have a commit checked out fatal: adding files failed 解决方案

热门文章

  1. python 图像cropping padding(skimage cv2)
  2. [人脸对齐] Attention-Driven Cropping for Very High Resolution Facial Landmark Detection
  3. 城管希课堂之继续Hibernate
  4. safari网页翻译
  5. <WDT><1>认知看门狗
  6. IAM - 身份识别与访问管理 系统 - 学习/实践
  7. ARM处理器的工作模式。
  8. Linux访问远程FTP服务器并下载文件
  9. 神经型计算机的前景,人工神经网络发展前景
  10. 学习英语的11个好习惯