CUDA 用来写服务器程序会咋样?

2014-07-06 00:39:53 +08:00
 Actrace
Your first CUDA C program.
<amp-youtube data-videoid="Ed_h2km0liI" layout="responsive" width="480" height="270"></amp-youtube>
Also see Getting Started Guides for Windows, Mac, and Linux.
http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-microsoft-windows/index.html
http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-mac-os-x/index.html
http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/index.html

看起来GPU更适合处理高并发?
3826 次点击
所在节点    程序员
19 条回复
echo1937
2014-07-06 00:45:11 +08:00
CUDA 你不上专业计算卡的话,会有精度问题吗?
fredcc
2014-07-06 02:01:52 +08:00
请问除了特定应用,cuda哪里比cpu强了。
yangff
2014-07-06 02:14:06 +08:00
几乎不可行。
yangff
2014-07-06 02:14:17 +08:00
瓶颈不在这里。
loading
2014-07-06 07:14:10 +08:00
然后你会遇到浮点数
wy315700
2014-07-06 07:44:10 +08:00
服务器的瓶颈 一般在IO吧
Zhang
2014-07-06 08:15:58 +08:00
不怎样,估计会更慢。
wy315700
2014-07-06 08:21:05 +08:00
想起来了,GPU适合的不是高并发,而是高并行。
VYSE
2014-07-06 09:36:41 +08:00
GPU的特长在于较短简单指令的反复执行,适合流水作业,复杂逻辑频繁从BUS MOVE数据还是算了吧。
所以超算里GPU只是作为某些算法的加速器。
当然后端需要某些用途加速的话肯定会用,例如某些视频网站
chaixl
2014-07-06 09:54:00 +08:00
GPU通用计算的强项是高度密集的并行运算。不是高并发,两回事。
gateswong
2014-07-06 11:55:04 +08:00
CUDA并行处理是特么快

但是数据的传递拷贝太特么太特么太特么太特么慢了……
chenha0
2014-07-06 12:54:35 +08:00
并发和并行怎么能简单画等号
wdlth
2014-07-06 12:55:11 +08:00
我认为完全就是南辕北辙,缘木求鱼,首先CUDA的重点是高并行的密集的浮点计算,比如视频转换、科学计算,而大部分的程序并不是这类领域的,用CUDA只会是适得其反。
Actrace
2014-07-06 16:25:22 +08:00
@gateswong 也就是说,GPU解决了数据的传递拷贝速度慢问题,就可以完爆CPU了?

@chenha0 其实也不是想说简单划等号,只不过GPU这种大规模流水核心更加符合多路执行的理念.我个人是比较看好CUDA的,如果英伟达能专心把GPU计算的核心架构向CPU方向平移,也许能在某一天取代CPU也说不定,分时操作系统切换任务的性能代价是很大的.
dndx
2014-07-06 16:45:02 +08:00
对于大多数网络应用来说,瓶颈都是在 IO ,除非是特殊领域,CPU 从来就不是瓶颈。
madeye
2014-07-06 16:58:33 +08:00
对于服务器类的应用,特别是数据库、文本处理相关的应用,现在的主要瓶颈在 PCI-E,即 HOST 到 GPU 的带宽。而下一代 Power(NVLINK) 和 SoC (Denver)量产以后,有希望解决这个问题。

一些数据可以参考我们组之前做的加速海量网页索引性能的尝试: http://on-demand.gputechconf.com/gtc/2014/presentations/S4506-indexing-documents-on-gpu-web-rt.pdf
akfish
2014-07-06 16:59:26 +08:00
除了楼上说的原因以外,GPU能做的事情并不那么通用,虽然CUDA、OpenCL都是用于通用计算的,但核心显然是在“计算”,而非“通用”。
曾经看到一个项目,尝试在GPU上跑JS解释器,结果性能非常惨淡。
http://www.slideshare.net/jarrednicholls/javascript-on-the-gpu
而另外的项目,只着重用GPU对JS里并行计算进行加速,对于较小的数据反而较慢,只有较大的数据才会有加速:
http://on-demand.gputechconf.com/gtc/2014/presentations/S4168-accelerated-javascript-accessing-gpus.pdf
Actrace
2014-07-06 21:00:37 +08:00
@akfish
我只是举个例子。
其实最想表达的是"GPU这种架构更适合作为现代计算机系统的硬件架构"。
并不是指现在就要拿CUDA的GPU去跟CPU做何种对比,甚至取代。
所以我相信未来GPU会成为整个计算机系统的核心,这个就只能等时间来验证一切了。
在没有机动车之前,人们总是想着让马跑得更快。
akfish
2014-07-06 21:43:50 +08:00
@Actrace 好吧。

个人认为GPU成为计算系统核心不现实,快不是一切。OS内核跑在哪里,哪里才是核心。而OS的任务,是不符合GPU的计算模型的。即使这一点能突破,整个产业也不会花费大量的时间和精力去把已有的大量软件、硬件资源,向GPU中心的计算架构上移植。

GPU和CPU并不是机动车和马的关系。GPU会越来越重要,但不会成为核心。只会作为增强计算性能、完成特定任务的外设出现(包括量子计算机,目前也是按这种计算模型在发展)。

以后的发展更有可能是淡化GPU与CPU在编程模型上的差异,比如在底层(如OS层)把适当的代码JIT到GPU上执行。取代现在不可能,以后也不可能,融合才是唯一的可能。

文字游戏一点的话,要是真有作为系统核心的GPU,在逻辑上会自动更名为CPU,CPU里的C不是白叫的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/121149

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX