Механизм видимости устройств в CUDA работает с помощью переменной среды CUDAVISIBLEDEVICES. www.ssuc.ca developer.nvidia.com Она позволяет контролировать, какие графические процессоры (GPU) видны приложениям CUDA. www.ssuc.ca
Как это работает: переменная принимает список целых чисел, разделённых запятыми, которые представляют идентификаторы GPU. www.ssuc.ca Эти идентификаторы соответствуют физическим GPU в системе. www.ssuc.ca
Примеры:
- CUDAVISIBLEDEVICES=0 — видимым становится только GPU 0. www.ssuc.ca
- CUDAVISIBLEDEVICES=1,2 — видимыми становятся GPU 1 и 2, GPU 0 игнорируется. www.ssuc.ca
- CUDAVISIBLEDEVICES=0,2,1 — видимыми становятся GPU 0, 2 и 1 (в некоторых случаях важен порядок). www.ssuc.ca
- CUDAVISIBLEDEVICES не установлена — видимыми становятся все GPU. www.ssuc.ca
Некоторые области применения CUDAVISIBLEDEVICES:
- Одновременный запуск нескольких заданий по обучению. www.ssuc.ca Можно назначить конкретные GPU для каждого задания, чтобы избежать конфликтов и обеспечить эффективное распределение ресурсов. www.ssuc.ca
- Распределение GPU в зависимости от размера модели и её требований. www.ssuc.ca Большие модели можно назначать GPU с большим объёмом памяти, а меньшие — запускать на GPU с меньшим объёмом памяти. www.ssuc.ca
- Отладка и устранение неполадок. www.ssuc.ca Можно изолировать проблему на конкретном GPU, чтобы определить, связана ли проблема с самим GPU или с другими компонентами системы. www.ssuc.ca
- Использование конкретных архитектур GPU. www.ssuc.ca Если в системе есть GPU с разными архитектурами или поколениями, можно выбрать GPU с желаемой архитектурой для приложения. www.ssuc.ca