CudaMalloc не выделяет общую память графического процессора на микроархитектурах Ampere, в отличие от TuringC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 CudaMalloc не выделяет общую память графического процессора на микроархитектурах Ampere, в отличие от Turing

Сообщение Anonymous »


Я использую CUDA Toolkit 11.8 — операционная система — Windows.
Программа скомпилирована под Windows с помощью Nvidia T1200.
Я использую CMAKE 3.15.7 с флагом:

CMAKE_CUDA_ARCH_BIN: 3,5 5,0 5,2 5,3 6,0 6,1 6,2 7,0 7,2 7,5 8,0 8,6 8,7 8,9 9,0 ПРОБЛЕМА Когда я запускаю код на своем ноутбуке (T1200), я вижу, что CudaMalloc сначала выделяет память на выделенной памяти графического процессора, а когда там больше нет свободного места , он автоматически распределяет данные в общую память графического процессора.

Когда тот же код запускается на RTX 3070, CudaMalloc сначала выделяет память в выделенной памяти графического процессора, но когда она заполнена, он больше не выделяет данные в общую память Память графического процессора, но сообщает cudaErrorMemoryAllocation

И я не понимаю, почему поведение на отдельных GPU разное.

Я собираю программу на ноутбуке, затем копирую исполняемый файл на машину с RTX 3070 и выполняю программу там.
КОД
Пример рабочего теста Google

класс CudaTestMemory { публика: беззнаковый символ *m_cudaBuffer; }; TEST_F(Cuda, cudaAllocator) { CudaTestMemory *m_costBuffer[50]; для (int я = 0; я m_cudaBuffer, selectedMemory); если (cudaStatus != cudaSuccess) { // не удалось — невозможно выделить XXXX памяти графического процессора m_costBuffer->m_cudaBuffer = nullptr; throw std::runtime_error(cudaGetErrorString(cudaStatus)); } } } Результат на NVIDIA T1200 NVIDIA T1200 имеет 4 ГБ выделенной памяти графического процессора + 32 ГБ общей памяти графического процессора. Тест завершается сбоем на итерации номер 34, когда на графическом процессоре больше нет свободного места (устройство + общий доступ)
Результат на NVIDIA RTX 3070
NVIDIA RTX 3070 имеет 8 ГБ выделенной памяти + 128 ГБ общей памяти графического процессора. Тест завершается сбоем на итерации номер 7, когда на графическом процессоре больше нет памяти (только устройство).
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»