问题标签 [multi-gpu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
759 浏览

cuda - Multiple GPUs in CUDA 3.2 and issues with Cuda 4.0

I am new to multiple GPUs. I have written a code for a single GPU and want to further speed up by use of multiple GPUs. I am working with two GTX 470 with MS VS 2008 and cuda toolkit 4.0

I am facing two problems.

First problem is my code somehow doesn't run fine with 4.0 build rules and works fine for 3.2 build rules. Also the SDK example of multiGPU doesn't build on VS2008 giving error

error C3861: 'cudaDeviceReset': identifier not found

My second problem is, if I have to work with 3.2 then according to the documentation, threads have to be launched separately and separate allocations to be made etc. What is the easiest library for launching threads for multiple gpus and can you please give some example for my setup for access to multiple GPUs.

0 投票
2 回答
842 浏览

opengl - 在 Windows XP 上使用异构多 GPU 配置进行无缝多屏幕 OpenGL 渲染

在 Windows XP(64 位)上,似乎不可能使用 OpenGL 渲染到连接到具有不同 GPU 的不同图形卡的两个屏幕(例如两个不同代的 NVIDIA)。在这种情况下发生的情况是渲染仅在其中一个屏幕中起作用。另一方面,使用 Direct3D 可以毫无问题地在两个屏幕上进行渲染。有谁知道这是为什么?或者更重要的是:有没有办法用 OpenGL 在两个屏幕上进行渲染?

我发现即使使用不同品牌的 GPU(例如 AMD 和 Intel),在 Windows 7 上的渲染也可以在两个屏幕上工作。我认为这可能是因为它的显示模型,如果我没记错的话,它运行在 Direct3D 合成器之上。这只是一个假设,我真的不知道是不是真正的原因。

如果 Direct3D 是解决方案,一个想法是使用 OpenGL 对纹理进行所有渲染,然后以某种方式使用 Direct3D 渲染该纹理,假设它不会太慢。

0 投票
1 回答
2256 浏览

opengl - CUDA OPENGL 互操作性:cudaGLSetGLDevice

遵循 CUDA 4.0 的编程指南,我在任何其他运行时调用之前调用 cudaGLSetGLDevice。但是下一个 cuda 调用 cudaMalloc 返回“所有支持 CUDA 的设备都忙或不可用”。

此外,在 NVIDIA 论坛 (http://forums.nvidia.com/index.php?showtopic=186399) 中,一位用户说:“在多 GPU 系统中,虽然你会在 CUDA 中遇到更大的缺陷...... .a) 当 CUDA 上下文和 OpenGL 上下文在不同的设备上时,您不能进行 CUDA/GL 互操作(根据我的经验,未记录,并且不受支持) b) 您不能在非 Windows 机器上进行 GL 设备关联。c ) 您不能在消费类设备上进行 GL 设备关联(仅限 Quadro/Tesla)”

这是真的?我最后的工作必须在 linux 多 GPU 系统上运行。我必须更改图形库才能使用?在这种情况下,你有什么建议?

操作系统:Opensuse 11.4 64 位

显卡:GeForce 9600M GT

车手:275.21

0 投票
1 回答
565 浏览

nvidia - Linux中的混合图形

我遇到了名为 bumblebee 项目的 linux Nvidia optimus 实现https://github.com/Bumblebee-Project 我在笔记本电脑上安装了 bumblebee 和 Nvidia 显卡。问题是对于需要使用离散 gpu 的应用程序,必须通过特殊命令“Optirun”运行。因此,只有在完成此操作后,才会打开离散 gpu 的电源,否则会在需要时关闭电源以节省电力。有没有办法确定应用程序是否需要离散 gpu 才能运行或可以在正常的片上图形处理器上运行。这可以在linux中完成吗?

0 投票
2 回答
2373 浏览

cuda - 多 GPU Cuda 计算

我是多 GPU 编程的新手,我对多 GPU 计算有一些疑问。例如,让我们以点积为例。我正在运行一个创建 2 个大数组 A[N] 和 B[N] 的 CPU 线程。由于这些数组的大小,我需要将其点积的计算拆分为 2 个 GPU,均为 Tesla M2050(计算能力 2.0)。问题是我需要在我的 CPU 线程控制的 do-loop 内多次计算这些点积。每个点积都需要前一个点积的结果。我读过关于创建 2 个不同的线程来分别控制 2 个不同的 GPU(如 cuda 中的示例所述),但我不知道如何在它们之间同步和交换数据。还有其他选择吗?我真的很感谢任何形式的帮助/示例。在此先感谢!

0 投票
1 回答
1050 浏览

communication - OpenCL 子缓冲区,为什么重要?

我尝试实现一个多 GPU OpenCL 代码。在我的模型中,GPU 必须进行通信和交换数据。

我发现(我不记得在哪里,已经有一段时间了)一种解决方案是处理子缓冲区。谁能尽可能简单地解释为什么子缓冲区在 OpenCL 中很重要?据我所知,仅使用缓冲区就可以做到完全相同。

非常感谢, 乔治斯

补充问题: 在 GPU 之间交换数据的最佳方式是什么?

0 投票
1 回答
21707 浏览

cuda - 多GPU基本用法

如何使用两个设备来提高例如以下代码的性能(向量总和)?是否可以“同时”使用更多设备?如果是,我如何管理向量在不同设备的全局内存上的分配?

先感谢您。米歇尔

0 投票
1 回答
2210 浏览

cuda - CUDA SDK 示例在多 GPU 系统中引发各种错误

我有一个运行 Ubuntu Precise 的 Dell Precision Rack,配备两个 Tesla C2075 和一个显示设备 Quadro 600。我最近在我的台式计算机上完成了一些测试,现在尝试将东西移植到工作站。

由于 CUDA 不存在,我根据本指南安装了它,并根据此建议调整了 SDK Makefiles 。

我现在面临的是没有一个样本(我确实测试了 10 个不同的样本)正在运行。这些是我得到的错误:






正如您所看到的,大多数错误都指向 cudaGetDeviceCount 调用的问题,该调用返回错误代码 10。根据手册,问题是:

不幸的是,我能找到的唯一解决方案建议检查设备的电源插头。我这样做了,没有任何问题。重新启动工作站也无济于事。

我很乐意提供有关我的配置的更多详细信息。只需发表评论!

0 投票
0 回答
494 浏览

cuda - CUDA simpleP2P 失败

我有带有 24 个 GPU 的 Tesla M2070 集群。我尝试运行 simpleP2P SDK 示例,但它显示以下错误,尽管我的设备支持 UVA。操作系统;Linux 64 位。

Checking for multiple GPUs...

CUDA-capable device count: 3

GPU0 = "Tesla M2070" 支持点对点 (P2P)

GPU1 = "Tesla M2070" 支持点对点 (P2P) GPU2 = "Tesla M2070" 支持点对点 (P2P)

Checking GPU(s) for support of peer to peer memory access...

从 Tesla M2070 (GPU0) -> Tesla M2070 (GPU1) 对等访问:否

从 Tesla M2070 (GPU1) -> Tesla M2070 (GPU0) 对等访问:否

Two or more SM 2.0 class GPUs are required for ./simpleP2P to run.

Support for UVA requires a GPU with SM 2.0 capabilities.

Peer to Peer access is not available between GPU0 <-> GPU1, waiving test.

PASSED

它最后显示通过,但从一个 GPU 到另一个标志的对等访问显示没有值。

0 投票
1 回答
2254 浏览

mpi - MPI 接收/收集动态向量长度

我有一个存储结构向量的应用程序。这些结构保存有关系统上每个 GPU 的信息,例如内存和 giga-flop/s。每个系统上有不同数量的 GPU。

我有一个同时在多台机器上运行的程序,我需要收集这些数据。我对 MPI 很陌生,但MPI_Gather()大部分时间都可以使用,但是我想知道如何收集/接收这些动态大小的向量。

集群中的每台机器都会填充其MachineData. 我想收集这些实例中的每一个,但我不确定如何收集nviVecamdVec因为它们的长度在每台机器上都不同。