GPU编程和流式多处理器(二)
2. 整数支持
SM具有32位整数运算的完整补充。
• 加法运算符的可选否定加法
• 乘法与乘法加法
• 整数除法
• 逻辑运算
• 条件码操作
• to/from浮点转换
• 其它操作(例如,SIMD指令用于narrow整数,population人口计数,查找第一个零)
CUDA通过标准C运算符公开了大部分此功能。非标准运算(例如24位乘法)可以使用内联PTX汇编或内部函数进行访问。
2.1. 乘法
在Tesla级和Fermi级硬件上,乘法的实现方式有所不同。特斯拉实现了24位乘法器,而费米实现了32位乘法器。因此,SM 1.x硬件上的完整32位乘法需要四个指令。对于针对特斯拉级硬件的性能敏感代码,使用内在函数进行24位乘法是一项性能上的成功。表4显示了与乘法有关的内在函数。
表4乘法本征

2.2. 混合(位操作)
CUDA编译器实现了许多用于位操作的内在函数,如表5所示。在SM 2.x和更高版本的体系结构上,这些内在函数映射到单个指令。在Fermi之前的体系结构上,它们是有效的,可以编译成许多指令。如有疑问,请反汇编并查看微码!64位变体在固有名称__clzll(),ffsll(),popcll()和brevll()的后面附加了“ ll ”(“ long long”为两个ell)。
表5位操作本征

2.3. Funnel渠道转移(SM 3.5)
GK110添加了一条64位的“漏斗移位”指令,该指令将两个32位值连接在一起(最低有效和最高有效的一半指定为单独的32位输入,但是硬件在对齐的寄存器对上运行),将结果移位左移或右移64位值,然后返回最高有效(左移)或最低有效(右移)32位。
可以使用表6中给出的内在函数访问Funnel移位。这些内在函数在sm_35_intrinsics.h中作为嵌入式设备功能(使用嵌入式PTX汇编程序)实现。默认情况下,移位计数的最低有效5位被屏蔽;_lc和_RC内在移位值维持在范围0…32。
表6. Funnel平移本征

Funnel移位的应用程序包括以下内容。
• 多字移位操作
• 使用对齐的加载和存储在未对齐的缓冲区之间复制内存
• 旋转
要右移大于64位的数据大小,使用重复的__funnelshift_r()调用,从最低有效字到最高有效字进行操作。结果的最高有效字是使用运算符>>来计算的,该运算符会根据整数类型将零或符号位进行移位。若要将数据大小左移大于64位,使用重复的__funnelshift_l()调用,从最高有效字到最低有效字进行操作。结果的最低有效字是使用operator <<计算的。如果hi和lo参数相同,则Funnel移位会影响旋转操作。

GPU编程和流式多处理器(二)相关推荐

  1. GPU编程和流式多处理器

    GPU编程和流式多处理器 流式多处理器(SM)是运行CUDA内核的GPU的一部分.本章重点介绍SM的指令集功能. 流式多处理器(SM)是运行我们的CUDA内核的GPU的一部分.每个SM包含以下内容. ...

  2. GPU编程和流式多处理器(三)

    GPU编程和流式多处理器(三) 3. Floating-Point Support 快速的本机浮点硬件是GPU的存在理由,并且在许多方面,它们在浮点实现方面都等于或优于CPU.全速支持异常可以根据每条 ...

  3. GPU 编程入门到精通(二)之 运行第一个程序

    博主由于工作当中的需要,开始学习 GPU 上面的编程,主要涉及到的是基于 GPU 的深度学习方面的知识,鉴于之前没有接触过 GPU 编程,因此在这里特地学习一下 GPU 上面的编程.有志同道合的小伙伴 ...

  4. java学习笔记20(Lambda表达式、函数式编程、流式计算、练习)

    文章目录 11.3 学习内容 Lambda表达式 Lambda标准格式 格式说明 省略规则 使用前提 函数式接口 预定义的函数式接口 工作内容 任务1 总结&明日计划 11.4 学习内容 流式 ...

  5. 流式多处理器(streamingMultiproeessor,SM)与流处理器(strcamingProcessor, sp)

    SM是一种单指令多线程((single Instruction MultipleThread,SIMT)架构的处理器,类似单指令流多数据流(SIMD)的特点,含有指令发射单元,及若干个流处理器(str ...

  6. 编程范式:函数式编程防御式编程响应式编程契约式编程流式编程

    不长的编码生涯,看到无数概念和词汇:面向对象编程.过程式编程.指令式编程.函数式编程.防御式编程.流式编程.响应式编程.契约式编程.进攻式编程.声明式编程--有种生无可恋的感觉. 本文试图加以汇总和整 ...

  7. 从GPU编程到SIMT核心

    本文转自:从GPU编程到SIMT核心 - 知乎 (zhihu.com) 1.前言&本文重点 在 GPGPU 显得愈发重要的今天,仅凭 nVidia, AMD 提供的编程接口来了解 GPU 未免 ...

  8. Triton:openai开源GPU编程神器

    Triton:openai开源GPU编程神器 序言 GPU编程的困难 编程模型 矩阵乘法 高级系统架构 编译器后端 序言 我们将发布Triton 1.0,这是一种开源的类似Python的编程语言,使没 ...

  9. GPU 编程入门到精通(五)之 GPU 程序优化进阶

    版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 博主由于工作当中的需要,开始学习 GPU 上面的编程,主要涉及到的是基于 GPU 的深度学习方面的知识,鉴于之前没有接触过 GP ...

最新文章

  1. 腾讯斥资3.17亿美元增持B站 持股增至12%
  2. mac环境下安装xampp
  3. 【JS基础】Array数组的创建与操作方法
  4. GDCM:处理JAI-JPEGLS错误的测试程序
  5. Maven引入依赖后自动下载并关联源码(Source)
  6. 乐尚网络:小程序商城零售行业10大新赋能
  7. 基于jsp+servlet完成的用户注册
  8. JFlow CCFlow工作流引擎北京培训邀请函
  9. mysql聚簇索引 和主键的区别_[MySQL] innoDB引擎的主键与聚簇索引
  10. 有什么工具或应用可以帮助找到适合搭配一种颜色的另一种颜色?
  11. 旺旺上显示已上传服务器,在服务器上排除问题的头五分钟 | 旺旺知识库
  12. java 时间格式化 星期_Java SimpleDateFormate时间格式化
  13. Python标准库:内置函数ascii(object)
  14. 线程安全之CAS机制详解(分析详细,通俗易懂)
  15. mysql5.6.22.0安装_win2008 R2 WEB环境配置之MYSQL 5.6.22安装版安装配置方法
  16. 多元统计分析基于r课后答案_应用多元统计分析课后答案
  17. Win10喇叭图标出现红叉,没有声音,并且提示“未安装任何音频输出设备“的解决办法
  18. 【多目标进化优化】MOEA 的分类
  19. 为了理想,因为爱情-开课第一天有感(鸡汤向)
  20. window中的cmd中设置别名(alias)及设置快捷键打开cmd

热门文章

  1. 2022-2028年中国氟橡胶产业竞争现状及发展前景分析报告
  2. Python关于%matplotlib inline
  3. python 直接if判断和is not None的区别
  4. Python List extend()方法
  5. DSP与CEVA芯片
  6. 单精度和半精度混合训练
  7. Binary XML file line #98: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lan
  8. 网站项目必备——12款白富美型 jQuery 图片轮播插件
  9. Python Day26:多态、封装、内置函数:__str__、__del__、反射(反省)、动态导入模块...
  10. react 子组件获取变量属性值