关于多卡使用CUDA并行运算的问题

yeyurufeng 2009-01-19 03:28:16
一直对于多卡使用CUDA有疑惑,最近看了篇文献,是这么说的:
By doubling the computing resources we observed that the overall performance of the application also doubles. This shows that the solution can benefit from a nearly linear speed improvement when adding more graphic boards to the system. It must be mentioned that the Nvidia SLI option, available for multi-GPU systems, is designed for OpenGL. Therefore, SLI must be disabled for CUDA, which requires direct programming of every installed GPU.
既然SLI方式不能用于设置CUDA,那对于同一主板上的两块显示卡如何设置才行呢,是不是装了驱动,装了CUDA一切必须的环境,就可以了呢(两卡默认可以承担单独运算)?
还有如果成立,依次类推,三卡也是如此吗?
另外,现在有单显卡双核心,使用一个显卡插槽,这样在进行大数据量的传输(极端)时,是不是比两块单核心的显卡使用单独的显卡插槽要慢(默认都是PCI-E 2.0)?
谢谢大家指教。
...全文
758 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hello_hi_hi 2010-02-26
  • 打赏
  • 举报
回复
如果计算量大,那么带宽应该不是瓶颈!
我目前用4张GF9800GX2进行计算,单次计算耗时几十秒,通过观察发现使用多卡同时计算用时
并没有明显增加,即原来单卡计算X线程需要时间T的话,那么8卡同时计算8X线程所需的时间也
基本上为T。

madsys 2009-09-18
  • 打赏
  • 举报
回复
目前就遇到了关于多卡使用CUDA的问题:
系统中有4个295,用CUDA做计算。目前的问题是:程序启动8个线程,每一个线程都对应一个GPU kernel并且对应一个显卡核心,但是8个显卡核心并没有同时运算,大概有5-6个核心同步运算,有2-3个总是等待其他6-7个核心运算完成后,再开始运算,导致多卡上的kernel不能同步。

不能确定楼上说的PCI-E带宽问题是否真的是瓶颈,P6T7用了两颗NVIDIA nForce 200桥接芯片,以此支撑七条PCI-E 2.0 x16插槽,所以按理说应该不是瓶颈,但反复测试,这个问题一直出现,很诡异的~

主板:华硕P6T7,内存8G,4个XFX的295

希望有同样问题的朋友帮帮忙,多谢!
alex001p 2009-02-06
  • 打赏
  • 举报
回复
必须指定其中一块运输!国外有三卡SLI的!照用!
denglieyan 2009-02-05
  • 打赏
  • 举报
回复
学习学习
yeyurufeng 2009-01-25
  • 打赏
  • 举报
回复
(1)谢谢各位了,我学习了不少东西,最近关注了一下PCI-E 2.0的标准和最新的GTX295和285,对于主板来说,如果有足够的PCI-E信道(比如PCI-E 2.0 16X,就有16条PCI-E 2.0的信道),就可以支持双卡单独全速16X(总共32X)运行,3卡类推就是48X,但是目前顶级主板(intel X58)也只支持16X+16X+8X的速度,因为信道有限,790i似乎也不行,而PCI-E 2.0 8X和PCI-E 1.1 16X是一样的速度,双向8GB/s,单向4GB/s,比PCI-E 2.0 16X速度差了一半,对于大数据吞吐肯定影响不小,但是究竟影响多少,在通用计算领域也没人测试过(在游戏领域影响不大),我条件有限,也没法测试,不知哪位有条件的高人可以搞个测试。
(2)GTX295的规格(最新双核心显卡)相当恐怖,不知道在PCI-E 2.0 16X的全速插槽上是否能满足通用计算的数据传输,毕竟它的运算能力应该是接近2T了,不知道单向8G/s是否限制了它的发挥?
(3)我没实际利用显卡编过程,但是最近对这个比较感兴趣,樟树前辈您所说的API提供的多卡函数对于显卡的数量有没有限制?是否没有上限?此外对于GTX295这类双核心显卡是否支持的很好(它是用switch pcie的一块卡来分配双核心显卡任务和输出的,逻辑上算是一块卡,有480个SP),不知用API时算单卡还是双卡呢?

最后谢谢各位,祝大家新年快乐,呵呵,今天年三十了,祝大家过个好年。
darkstorm2111203 2009-01-22
  • 打赏
  • 举报
回复
API提供了多卡的函数,可以多卡并行
现在主板一般不能同时支持多卡的pci-e x16,所以在需要大吞吐量的时候多卡性能不是特别好
denglieyan 2009-01-19
  • 打赏
  • 举报
回复
学习中
OpenHero 2009-01-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 arnewc 的回复:]
因为现在用的一卡没测试过。

不过我想是的。两个芯片使用一个带宽,可能造成更多的读取数据的等待时间。

但是如果是计算密集型,也就是计算量大,但是数据量小,应该就体现出优势了
[/Quote]
对的,多卡的时候,注意带宽的利用率,这个问题会在多卡的时候成为瓶颈之一
arnewc 2009-01-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 yeyurufeng 的帖子:]
一直对于多卡使用CUDA有疑惑,最近看了篇文献,是这么说的:
By doubling the computing resources we observed that the overall performance of the application also doubles. This shows that the solution can benefit from a nearly linear speed improvement when adding more graphic boards to the system. It must be mentioned that the Nvidia SLI option, available for multi-GPU systems, is designed for OpenG…
[/Quote]

因为现在用的一卡没测试过。

不过我想是的。两个芯片使用一个带宽,可能造成更多的读取数据的等待时间。

但是如果是计算密集型,也就是计算量大,但是数据量小,应该就体现出优势了
arnewc 2009-01-19
  • 打赏
  • 举报
回复
不,cuda和sli无关的,你必须指定具体的卡运算。

也就是初始化的时候,cudaSetDevice( i )指定对应的卡。

卡的任务要手动调配。

说的不对的地方请大虾们指正

353

社区成员

发帖
与我相关
我的任务
社区描述
CUDA高性能计算讨论
社区管理员
  • CUDA高性能计算讨论社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧