gpt4 book ai didi

multithreading - 不同的线程可以将不同的GPU设置为当前的CUDA设备吗?

转载 作者:行者123 更新时间:2023-12-03 13:00:08 24 4
gpt4 key购买 nike

例如,我有2个GPU和2个主机线程。我无法检查它,因为multigpu PC离我很远。我想让第一个主机线程可以与第一个GPU一起使用,而第二个主机线程可以与第二个GPU一起使用。所有主机线程都包含许多cublas调用。那么是否可以通过cudaSetDevice()调用从第一个主机线程中选择fisrt GPU,并从第二个主机线程中选择第二个GPU?

例如,对于第二个主机线程,我将调用cudaSetDevice(1),对于第一个线程,我将调用cudaSetDevice(0)

最佳答案

So is it possible to choose the fisrt GPU from the first host thread and the second gpu from the second host thread by cudaSetDevice() call?



是的,有可能。 cudaOpenMP sample code中提供了有关这种用法(摘录)的示例:
....
omp_set_num_threads(num_gpus); // create as many CPU threads as there are CUDA devices
//omp_set_num_threads(2*num_gpus);// create twice as many CPU threads as there are CUDA devices
#pragma omp parallel
{
unsigned int cpu_thread_id = omp_get_thread_num();
unsigned int num_cpu_threads = omp_get_num_threads();

// set and check the CUDA device for this CPU thread
int gpu_id = -1;
--> checkCudaErrors(cudaSetDevice(cpu_thread_id % num_gpus)); // "% num_gpus" allows more CPU threads than GPU devices
...,

关于multithreading - 不同的线程可以将不同的GPU设置为当前的CUDA设备吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28933535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com