Я использую CUDA на двойной системе GPU с использованием карт NVIDIA GTX 590, и у меня есть массив, разбитый по фигуре ниже.Разделение массива на систему с несколькими GPU и передача данных по различным графическим процессорам
Если я собираюсь использовать CudaSetDevice()
, чтобы разделить суб-массивы по графическим процессорам, они будут использовать одну и ту же глобальную память? Может ли первое устройство получить доступ к обновленным данным на втором устройстве, и если да, то каким образом?
спасибо.
Я бы сказал, что в утвердительном случае вы можете использовать 'cudaMemcpyPeer()', который не должен включать временную память CPU и, следовательно, должен ускорить передачу памяти с одного GPU на другой. Это правильно? – JackOLantern
Если у вас есть единая виртуальная адресация (64-разрядная, sm_20 и более поздняя), вы можете просто использовать 'cudaMemcpy()', но в противном случае да, вы можете использовать 'cudaMemcpyPeer()', чтобы избежать лишнего перескока в передаче. – Tom
Спасибо за головы! :) – Leon