Разрешить статический большой массив в Cuda
Gpu, на котором я работаю, - это Tesla C2075 с 6 ГБ видеопамяти. И ОС Ubuntu 64 битная с набором инструментов CUDA 5.5. Что мне нужно сделать, чтобы глобальный __device__
статические массивы больше 2gb? Я не смог найти много похожих тем в Google или здесь, в Stackru.
1 ответ
Я часто вижу программы, которые выделяют (по крайней мере, динамически) более 2 ГБ данных. Так что теоретически выделяя __device__
массив статически должен быть возможен. Чтобы попытаться решить эту проблему, вот мои предложения:
- Обновите графический драйвер до последней версии (новый драйвер поддерживает большие выделения - до 6 ГБ - на K20, он должен поддерживать его и на вашей карте)
- Обновите ваш инструментарий CUDA до версии 6.5 (в этом нет необходимости, но, возможно, CUDA 6.5 будет лучше уживаться с последней версией драйвера)
Если это не работает, я бы попытался выделить заблокированную страницу (закреплено). Проверьте здесь для получения дополнительной информации. После его выделения, чтобы сделать его видимым на устройстве, необходимо сопоставить его. Это включает передачу DMA и может быть даже более быстрым решением. Я видел этот подход в программах, которые выделяют до 5 ГБ памяти устройства - см. Здесь.