CUDA开发常见问题之基础知识盘点

2019-02-26    来源:多智时代

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

在2010 GPU技术大会(GTC)上,英伟达(NVIDIA)公司展示了自2009 GTC闭幕后的一年内CUDA的发展进程(如下图),从中不难看出CUDA的强劲势头。当然,在随后的2011年这一势头更加明显。而对于大量刚刚接触CUDA的初学者来说,常常会被很多CUDA和GPU计算的相关问题所困扰。下面的内容是对CUDA和GPU计算常见问题的解答,希望能对大家的学习过程有所帮助。

CUDA开发常见问题之基础知识盘点

Q1:什么是CUDA?

A1:CUDA是NVIDIA公司推出的一种通用并行计算架构。CUDA利用NVIDIA图形处理器(GPU)的并行计算引擎解决大量复杂计算问题,比单纯使用CPU效率提高数倍。

目前有超过2.5亿支持CUDA的GPU已经售出,大量的软件开发人员已经开始使用免费的CUDA软件开发工具,来解决各种专业和家庭应用中的难题。这些难题涉及视频和音频处理、物理模拟、石油和天然气勘探、产品设计,医疗成像和科学研究等各个领域。

CUDA允许开发人员使用C/C++等高级编程语言编写应用程序,并且支持微软DirectX和OpenCL等多种API,无缝的将现在和未来的开发环境融合到一起。

Q2:什么是NVIDIA Tesla?

A2:NVIDIA Tesla计算解决方案搭载世界上第一个万亿次浮点运算的多核处理器,能够实现节能高效的并行计算能力。内置448个CUDA核心的处理器(C2070)和标准C编译器,简化了应用程序的开发,Tesla集群能够快速准确的解决世界上最重要的计算难题。

Q3:OpenCL与CUDA有什么关系?

A3:CUDA是NVIDIA的并行计算架构的名称。CUDA技术包括硬件和软件,它实现了在NVIDIA GPU上的计算。CUDA也将编程语言扩展到C/C++。C/C++提供了运行时(runtime)和API级别的驱动程序来访问GPU硬件。CUDA也是一个庞大而活跃的生态系统,包括大量支持库和开发工具,CUDA C/C++已成为大多数开发人员的首选解决方案。由PGI公司研发的CUDA-x86已经发布,这意味着CUDA C/C++代码可以运行在基于CPU的服务器上。NVIDIA是Khronos Group的主席和积极成员之一,Khronos Group是制定新兴标准OpenCL的组织。CUDA extensions与OpenCL API在设计上有很多相似之处。OpenCL API?类似于“driver API”,CUDA语言集成解决方案允许用户只使用被称为“CUDA Runtime API”的较高层次的抽象。CUDA C/C++是NVIDIA的创新平台,它迅速推出新的特性和功能以满足客户的需求。

Q4:GPU计算比单独使用CPU能够得到怎样的性能提升呢?

A4:这取决于映射到架构上的问题。对于数据并行应用、加速两个以上mangitude命令等问题已经得到验证可以有效提高计算性能。可以通过浏览CUDA技术研究、开发、应用和合作伙伴的页面,了解更多内容。

Q5:CUDA支持哪些操作系统?

A5:CUDA支持Windows 7、Windows XP、Windows Vista、Linux和Mac OS(包括32位和64位版本)。有关CUDA支持系统的完整列表,请参阅最新CUDA Toolkit下载发行说明。

Q6:CUDA可以在哪些GPU上运行?

A6:GPU计算是NVIDIA所有最新独立显卡的标准功能。在Supported GPUs页面上可以找到支持CUDA的GPU的完整列表。

Q7:什么是“计算能力(compute capability)”?

A7:计算能力(compute capability)是指GPU中的计算硬件版本。

计算能力1.0对应于最初的G80架构。

计算能力1.1(随后的部分G8x中引入),增加了对全局内存原子操作(atomic operations)的支持。

计算能力1.2(GT200架构中引入)增加了以下新功能:

●支持共享内存中的原子函数(atomic functions)操作,以及全局内存中的64位原子函数操作;

●支持warp vote函数;

●每个多处理器(multiprocessor)有16384个寄存器;

●每个多处理器最多有32个活动warp;

●每个多处理器最多有1024个活动线程。

计算能力1.3增加了对双精度浮点数的支持。

计算能力2.0(Fermi架构中引入)增加了许多新功能,包括:

●支持并发核心执行;

●64位寻址;

●统一的虚拟寻址(UVA);

●GPU Direct,点对点通信。

如果需要了解GPU及其计算能力的完整列表,请参阅最新CUDA编程指南(CUDA Programming Guide)。

Q8:并行程序设计的学习资料在哪可以找到?

A8:目前有大学的在线课程、技术网络研讨会和系列文章,以及有关并行计算的优秀书籍,这些都可以在CUDA教育页面上找到。经常IT168 CUDA频道,也会给CUDA学习带来很多帮助。

在不久的将来,云计算一定会彻底走入我们的生活,有兴趣入行未来前沿产业的朋友,可以收藏云计算,及时获取人工智能、大数据、云计算和物联网的前沿资讯和基础知识,让我们一起携手,引领人工智能的未来!

标签: linux 大数据 代码 服务器 通信 网络 云计算

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:在线应用催生Scale-out存储提升容量

下一篇:如何实现Hyper-V环境中的存储管理