- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CUDA3.0
CUDA3.0
编程接口
中一种,但是遵守 3.4 节描述的限制时,可以同时使用两种。目前可用两种接口写CUDA 程序:CUDA C 和CUDA 驱动 API。一个应用典型的只能使用其
中一种,但是遵守 3.4 节描述的限制时,可以同时使用两种。
CUDA
CUDA C 将CUDA 编程模型作为C 的最小扩展集展示出来。任何包含某些扩展的源文件必
须使用
须使用nvcc 编译,nvcc 的概要在 3.1 节。这些扩展允许程序员像定义 C 函数一样定义内核
和在每次内核调用时,使用新的语法指定网格和块的尺寸。
和在每次内核调用时,使用新的语法指定网格和块的尺寸。
CUDA
CUDA 驱动 API 是一个低层次的C 接口,它提供了从汇编代码或 CUDA 二进制模块中装载
内核,检查内核参数,和发射内核的函数。二进制和汇编代码通常可以通过编译使用C 写的
内核,检查内核参数,和发射内核的函数。二进制和汇编代码通常可以通过编译使用C 写的
内核得到。
内核得到。
运行时API 是基于驱动API 的,初始化、上下文和模块管理都是隐式的,而且代码更简CUDA C 包含运行时API,运行时API 和驱动API 都提供了分配和释放设备存储器、在主机和内存间传输数据、管理多设备的系统的函数等等。
运行时API 是基于驱动API 的,初始化、上下文和模块管理都是隐式的,而且代码更简
明。CUDA
明。CUDA C 也支持设备模拟,这有利于调试(参见节 3.2.8)。
相反,CUDA
相反,CUDA 驱动API 要求写更多的代码,难于编程和调试,但是易于控制且是语言无
关的,因为它处理的是二进制或汇编代码。
关的,因为它处理的是二进制或汇编代码。
3.2 节接着第二章介绍CUDA C
3.2 节接着第二章介绍CUDA C。也引入了 CUDA C 和驱动API 共有的概念:线性存储器、
CUDA 数组、共享存储器、纹理存储器、分页锁定主机存储器、设备模拟、异步执行和与图
CUDA 数组、共享存储器、纹理存储器、分页锁定主机存储器、设备模拟、异步执行和与图
形学
形学API 互操作。3.3 节会介绍有关这些概念的知识和描述它们在驱动API 中是怎样表示的。
3.1
3.1 用 nvcc 编译
内核可以使用PTX 编写,PTX 就是CUDA 指令集架构,PTX 参考手册中描述了PTX。通常
内核可以使用PTX 编写,PTX 就是CUDA 指令集架构,PTX 参考手册中描述了PTX。通常
PTX 效率高于像C 一样的高级语言。无论是使用PTX 还是高级语言,内核都必须使用nvcc
PTX 效率高于像C 一样的高级语言。无论是使用PTX 还是高级语言,内核都必须使用nvcc
编译成二进制代码才能在设备在执行。
编译成二进制代码才能在设备在执行。
nvcc
nvcc 是一个编译器驱动,简化了C 或 PTX 的编译流程:它提供了简单熟悉的命令行选
项,同时通过调用一系列实现了不同编译步骤的工具集来执行它们。本节简介了nvcc 的编
项,同时通过调用一系列实现了不同编译步骤的工具集来执行它们。本节简介了nvcc 的编
译流程和命令选项。完整的描述可在nvcc 用户手册中找到。
译流程和命令选项。完整的描述可在nvcc 用户手册中找到。
3.1.1 编译流程
3.1.1 编译流程
nvcc 可编译同时包含主机代码(有主机上执行的代码)和设备代码(在设备上执行的代
nvcc 可编译同时包含主机代码(有主机上执行的代码)和设备代码(在设备上执行的代
码)的源文件。nvcc 的基本流程包括分离主机和设备代码并将设备代码编译成汇编形式(PTX)
码)的源文件。nvcc 的基本流程包括分离主机和设备代码并将设备代码编译成汇编形式(PTX)
或/和二进制形式(cubin 对象)。生成的主机代码要么被输出为C 代码供其它工具编译,要
或/和二进制形式(cubin 对象)。生成的主机代码要么被输出为C 代码供其它工具编译,要
么在编译的最后阶段被nvcc 调用主机编译器输出为目标代码。
么在编译的最后阶段被nvcc 调用主机编译器输出为目标代码。
应用能够:
应用能够:
1
1.要么在设备上使用CUDA 驱动 API 装载和执行PTX 源码或cubin 对象(参见 3.3 节)同
时忽略生成的主机代码(如果有);
时忽略生成的主机代码(如果有);
2.要么链接到生成的主机代码;生成的主机代码将PTX 代码和/或cubin对象作为已初始
2.要么链接到生成的主机代码;生成的主机代码将PTX 代码和/或cubin对象作为已初始
化的全局数据数组导入,还将 2.1 节引入的?语法转化为必要的函数调用以加载和发
化的全局数据数组导入,还将 2.1 节引入的?语法转化为必要的
您可能关注的文档
最近下载
- 软件工程——理论与实践(附微课视频 第3版)吕云翔课后习题答案解析.pdf
- 云南省港航投资建设有限责任公司笔试题目.pdf VIP
- 施耐德ATS22软启动器使用说明.docx VIP
- 滑坡群怀抱测群防监测方案设计.doc VIP
- 造纸工艺流程 完整版课件PPT.pptx VIP
- 常州大地测绘中文电子经纬仪使用说明书2012220.doc VIP
- 人工智能在促进中小学教育改革与发展中的作用研究教学研究课题报告.docx
- 厚层水泥稳定碎石基层压实机理与路用性能的深度剖析.docx
- 历史故事教学法在初中历史时空观念培养中的实践研究教学研究课题报告.docx
- (2024年新版)人教版一年级数学上册《第六单元 复习与关联》教案.pdf VIP
原创力文档


文档评论(0)