当前位置 : 主页 > 网络安全 > 测试自动化 >

性能 – GPGPU:还在流血边缘?

来源:互联网 收集:自由互联 发布时间:2021-06-22
GPGPU是否已准备好用于生产和原型设计,或者您仍然认为它主要是研究/前沿技术?我在计算生物学领域工作,它开始吸引更多来自计算机科学的人在该领域的注意力,但大多数工作似乎是移
GPGPU是否已准备好用于生产和原型设计,或者您仍然认为它主要是研究/前沿技术?我在计算生物学领域工作,它开始吸引更多来自计算机科学的人在该领域的注意力,但大多数工作似乎是移植众所周知的算法.算法的移植本身就是研究项目,并且该领域的绝大多数人对此并不了解.

我在传统的多核上做了一些非常计算密集的项目.我想知道GPGPU有多接近可用于原型化新算法以及日常生产用途.从阅读Wikipedia,我得到的印象是编程模型很奇怪(严重SIMD)并且有些限制(没有递归或虚函数,尽管这些限制正在慢慢消除;没有比C更高级的语言或C的有限子集),而且有几个相互竞争的,不相容的标准.我也得到的印象是,与常规多核不同,细粒度并行性是城里唯一的游戏.需要重写基本库函数.与传统的多核不同,只需并行化程序的外循环并调用旧式串行库函数,就无法获得巨大的加速.

这些限制在实践中有多严重? GPGPU现在准备好用了吗?如果没有,你会猜多久?

编辑:我试图解决的一个主要问题是,编程模型与常规多核CPU有多少不同,后者具有大量非常慢的内核.

编辑#2:我想我总结我得到的答案的方式是GPGPU足够实用,适合早期采用者,它非常适合,但仍然不足以被视为“标准”工具,如多核或分布式并行,即使在性能很重要的那些利基中也是如此.

我是CS的研究生,曾在GPGPU工作过一段时间.我还知道至少有一个组织正在将其部分软件移植到CUDA.是否这样做是值得的,这取决于性能对您的重要程度.

我认为使用CUDA会给你的项目增加很多费用.首先,GPU领域非常破碎.即使在NVIDIA显卡中,您也拥有相当多的功能集,而在一个GPU上运行的某些代码可能无法在另一个GPU上运行.其次,CUDA以及视频卡的功能集正在快速变化.今年写的任何内容都不可能在2 – 3年内重写,以充分利用新的显卡.最后,正如您所指出的那样,编写GPGPU程序非常困难,以至于并行化GPGPU的现有算法通常是一个可发布的研究项目.

您可能希望查看已经存在的CUDA库(例如CUBLAS),您可以将它们用于项目,这可以帮助您避免这些问题.

网友评论