Когда компьютер имеет несколько графических процессоров с поддержкой CUDA, каждому графическому процессору назначается device ID
. По умолчанию ядра CUDA выполняются на device ID 0
. Вы можете использовать cudaSetDevice(int device)
для выбора другого устройства.
Скажем, у меня в машине два графических процессора: GTX 480 и GTX 670. Как CUDA определяет, какой графический процессор device ID 0
и какой графический процессор device ID 1
?
Идеи о том, как CUDA может назначать идентификаторы устройств (просто мозговой штурм):
- убывающий способ вычисления возможностей
- Номер слота PCI
- дата/время, когда устройство было добавлено в систему (устройство, которое было добавлено на компьютер, - это более высокий идентификационный номер)
Мотивация. Я работаю над некоторыми алгоритмами HPC, и я сравниваю и автонастраиваю их для нескольких графических процессоров. В моем процессоре достаточно полос PCIe для управления cudaMemcpys до 3 графических процессоров с полной пропускной способностью. Таким образом, вместо постоянной замены графических процессоров на моей машине и из нее, я планирую просто сохранить 3 графических процессора на своем компьютере. Я хотел бы иметь возможность предсказать, что произойдет, когда я добавлю или замените некоторые графические процессоры на компьютере.