1. 归约(Reduction)

归约是使用解决其它问题的”黑盒”来解决另一个问题.

2. Tesla是什么

CUDA架构用作GPU通用计算。

3. SSE指令集

SSE(Streaming SIMD Extensions,单指令多数据流扩展)指令集是Intel在Pentium III处理器中率先推出的。其中包含70条指令。

4. 3DNow!指令集

(据称是“3D No Waiting!”的缩写)是由AMD开发的一套SIMD多媒体指令集,支持单精度浮点数的矢量运算,用于增强x86架构的计算机在三维图像处理上的性能。

5. MMX技术

MMX 是MultiMedia eXtensions(多媒体扩展)的缩写,是第六代CPU芯片的重要特点。MMX技术是在CPU中加入了特地为视频信号(Video Signal),音频信号(Audio Signal)以及图像处理(Graphical Manipulation)而设计的57条指令,因此,MMX CPU极大地提高了电脑的多媒体(如立体声、视频、三维动画等)处理功能。

6. GPU通用计算开发环境有哪些

有CUDA、OpenCL(全称Open Computing Language,开放运算语言)和微软的DirectX 11 .

7.pinned memory

固定内存技术,其作用是固定内存技术的实质是强制让系统在物理内存中完成内存申请和释放的工作,不参与页交换,从而提高系统效率。

8.在一个CUDA程序中,基本的主机端代码主要完成以下任务

(1) 启动CUDA,使用多卡时加上设备号,或者使用cudaDevice()设置GPU装置。
(2) 分别在CPU和GPU端分配内存,用以储存输入输出数据,CPU端要记得初始化数据,然后将数据拷入显存。
(3)调用device端的kernel程序计算,将结果写到显存相关区域,再回写到内存。
(4)利用CPU进行数据其他处理,释放内存和显存空间。
(5)退出CUDA装置

9. CUT_DEVICE_INIT(argc, argv)和CUT_EXIT(argc,argv)

是cutil.h中的两个宏函数,分别用来启动和退出CUDA环境。

10.昨CUDA_SAFE_CALL()宏函数

调用后的返回值为cudaerr型,用CUT_CHECK_ERROR()宏函数可以接受最后一次的cudaerr_t异常,如果发生异常将输出错误类型,对调试很有帮助,cudaerr_t是定义在toolkit里的\include\drive_types.h中。

11.Kernel函数完整的执行参数配置形式<<<Dg,Db,Ns,S>>>

1)Dg用于定义整个grid的维度和尺寸,为dim3型。最多为二维,Dg.x和Dg.y最大为65535,整个grid中最多也只能定义65535个block,例如:Dg(Dg.x,Dg.y,1)。

2)Db用于定义每个block的维度和大小,也是dim3型。Db.x和Db.y最大为512,Db.z最大为4,三个维度之积小于768(计算能力为1.0,1.1的硬件)或1024(计算能力为1.2,1.3的硬件).例如:Db(Db.x,Db.y,Db.z)

3)Ns是一个可选参数,用于设置每个block除了静态分配的sharedmemory外,最多能动态分配的sharedmemory,单位是Byte。目前的硬件最多每个block分配16KB的sharedmemory(静态+动态)。不需要时可写0或省略。

4) S是一个cudaStream_t类型的可选参数,初始值为0.
实际在代码编写的时候,<<<>>>参数只需要填写两个,分别BLCOKNUM(block数量)和每个block中的线程数THREADNUM。

12.CUDA程序特点

看过CUDA程序的都知道啊,进行一次GPU计算,需要在多个存储器之间进行数据传输,因此有较大的延迟,故GPU不适合对实时性要求很高的应用。由于不同存储器间的数据传输速率和使用方法有很大差异,故开发人员需要根据硬件特点设计并行算法。

13.CUDA程序开发难点

到目前为止,我觉得最难的地方就是要根据任务以及硬件的特性对任务进行划分,以设计block的工作流程,既要照顾到数据传输的问题同时要隐藏各种访存延迟。

14.关于extern限定符

在_device_和_global_函数中表示动态分配,而在主机端正如C语言所描述的一样,只是表示外部变量。

注意:通过这种方式定义的所有变量都是开始于同一地址,因此数组中的变量布局必须通过偏移量显式管理。
如要在动态分配的共享存储器中得与下代码对应内容:

short array0[128];
float array1[64];
int array2[256];

应该按照如下方式定义:

extern_shared_char array[];_device_voidfunc()//_device_or_glabol_function
{
short*array0=(short*)array;float*array1=(float*)array0[128];int*array2=(int*)array1[64];
}

15. OpenMP

OpenMp是由OpenMP Architecture Review Board牵头提出的,并已被广泛接受的,用于共享内存并行系统的多线程程序设计的一套指导性的编译处理方案(Compiler Directive)。

16. CUDA自带的库函数_mul24()完成两个数的相乘

在CUDA中,GPU端(release和debug模式下的_global_和_device_函数)只能使用自带的数学库函数。

说明:有前缀“_”的函数根据SP(标量流处理器)特点进行了优化,可获得更高的速度,但是有前缀“_”的整数程序只能处理24位整数,有前缀“_”的浮点数精度较不带该前缀的版本精度要差一些。

17. NVIDIA的显卡有哪些系列

GeForce(Geometry Force,几何力量,精视)芯片系列显卡,NVIDIA公司出品的显示芯片的一种系列。用于竞争AMD的Radeon系列显卡,定位于PC个人领域,提供家庭娱乐。

Quadro芯片系列显卡,Quadro系列定位于专业绘图工作站领域,强调与行业软件的兼容性、稳定性以及高效率。

Tesla是一个新的显示核心系列品牌,主要用于服务器高性能电脑运算,用于对抗AMD的流处理器(FireStream)。这是继GeForce和Quadro之后,第三个显示核心商标。NVIDIA将显示核心分为三大系列,Tesla主要用于大规模的并联电脑运算。

18. ATI显卡有哪些系列

ATI显示芯片生产商已被AMD收购。生产的芯片系列有:
Radeon(镭™):是AMD公司出品的显示芯片的一种系列。俗称A卡。

AMD FirePro:(又称ATI FirePro),是由ATI 开发的显示芯片。由ATI FireGL和ATI FireMV合并而来,现由AMD开发推广。AMD FirePro 定位于专业领域,其主要竞争对手为NVIDIA Quadro系列。

19. CUDA中SM、SP、cuda core、Grid、block、thread和warp的联系与区别

SM(Stream Multiprocessor)流多处理器,即GPU的核心数,就是cuda core。一个完整处理核心必须包括取值、解码、分发逻辑和执行单元。

SP(Stream Processor)标量流处理器,是SM的执行单元,不是完整的处理核心。一个SP由一个branch单元和一个ALU/MAD(Arithmetic Logic Unit算数逻辑运算单元,MAD是Multiply-Add-Unit乘加器)。

关系:CUDA编程硬件映射时,一个Grid(线程网格)对应一个流处理器阵列 Scalable Streaming Processor Array (SPA),也就是对应一个GPU;一个Block(线程块)对应一个SM,一个Thread(线程)对应一个SP。

注意:在实际运行时,一个Block会被分割为数个warp(线程束),warp才是真正的执行单元。

硬件层:每个SPA 包含若干 TPC,每个TPC包含2~3个SM,每个SM包含8个SP。其中TPC是线程处理器群 Thread Processing Cluster。

线程关系与存储结构示意图:

20. CUBLAS

CUBLAS (CUDA Basic Linear Algebra Subprogram) 是线性计算的函数库。

21. CUDA中block和grid的最大维度

对于计算能力1.x,Block和Grid各维度的最大值:
block-bx <= 512,block-by <= 512,block-bz <= 64。grid-gx <= 65535,grid-gy <= 65535,每个block中的最大线程数量为512。

对于计算能力2.x,Block和Grid各维度的最大值:block-bx <= 1024,block-by<=1024,block-bz <= 64。grid-gx <= 65535,grid-gy <= 65535,每个block中的最大线程数量为1024。

22. CUDA编程基础

详见http://www.guandang.com/ppt/817048.html。

CUDA Study Notes相关推荐

  1. CUDA Study ---- Hardware Architecture

    CUDA Study ---- Hardware Architecture 标签: cuda扩展工作存储产品io 2010-01-04 10:53 692人阅读 评论(0) 收藏 举报 版权声明:本文 ...

  2. python 堆叠柱状图 多列 复杂_[Python Study Notes]堆叠柱状图绘制

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

  3. Machine Learning Algorithms Study Notes

    2    Supervised Learning    3 2.1    Perceptron Learning Algorithm (PLA)    3 2.1.1    PLA -- " ...

  4. [Python Study Notes] Python的安装

    Windows: 1.下载安装包: 转到Python官网https://www.python.org/downloads/  ,下载最新版本的Python. 2.安装 安装到自定义的安装路径下. 3. ...

  5. java script w3c study notes

    JavaScript简介 1.js JavaScript 可以将动态的文本放入 HTML 页面 JavaScript 可以对事件作出响应 JavaScript 可以读写 HTML 元素 JavaScr ...

  6. 9个元素换6次达到排序序列_十大算法排序(Sorting Algorithm) Study notes

    (自己手打的python实现代码以及整理的各路大神总结的知识点) 自用学习笔记,由于基于北美cs学习,文章大量中英混杂(谨慎食用) 十大排序算法: 插入排序 1)Insertion Sort 简单插入 ...

  7. [Python Study Notes]正则表达式

    正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 P ...

  8. SAP Study Notes: BW Queriy-Variables(变量)

    About Variable: 1.Variable 是和InfoObject绑定的,可用于任何含有该IO的query中. 2.Variable有以下几种类型: Characteristic:用于限制 ...

  9. study notes for python

    some useful materials Python完全新手教程 http://www.cnblogs.com/taowen/articles/11239.aspx (from taowen, B ...

最新文章

  1. SpringBoot设置Session失效时间
  2. python turtle画画 30排以内_Python竟能画这么漂亮的花,帅呆了(代码分享)
  3. 面试官:连框架都没用熟练,就这还来面试?
  4. javascript学习之流程控制
  5. hadoop学习--数据排序
  6. Android 弹出 Toast 时取消上一个 Toast(完美方案)增加同步
  7. 定义简单类-接收对象的变量同样是对对象的引用
  8. LeetCode 1480 一维数组的动态和
  9. 亦是美网络,致力于操作系统应用与计算机网络技术的IT网站。
  10. 七阶拉丁方阵_关于拉丁方阵教学的思考
  11. 计算机求和便捷应用,4种常用求和方法 | Excel自动求和全攻略!
  12. ybc_art打印艺术字
  13. 复合调味品,是年轻人新的追逐吗?
  14. 程序哨兵----誓把流氓软件赶出我们的电脑!
  15. 思特奇杯 结营大作业
  16. Web3 网络效应:五种心智模型
  17. java 对接第三方接口
  18. RV1126编译ROS Kinetic环境(Ubuntu18.04)
  19. css3恐龙蛋孵化动画代码
  20. 百度AR增强现实集成

热门文章

  1. 蓝鲸社区版_部署bkdata服务无法启动问题
  2. 一个极简版本的 VUE SSR demo
  3. Apache Phoenix学习记录(SQL on HBase)
  4. .Net Discovery 系列之三--深入理解.Net垃圾收集机制(上)
  5. 微软签署最大规模风电购买协议 打造“无碳”数据中心
  6. (How to)Windows Live Writer插入Latex公式(补充)
  7. 在自定义HttpHandler中使用Session
  8. zip、rar文件格式
  9. 学习linux/unix编程方法的建议-转
  10. [Java] 蓝桥杯ADV-166 算法提高 聪明的美食家