Установка 32-битного размера адреса во встроенном PTX

Я нахожусь в процессе преобразования PTX, записанного в виде отдельного файла, для встроенного PTX. В отдельном файле PTX я определял ISA и цель следующим образом:

.version 1.2
.target sm_13

В файле PTX, созданном компилятором, после добавления PTX компилятор указал ISA и цель следующим образом:

.version 3.0
.target sm_20
.address_size 64

.address_size 64 это проблематично для меня, потому что это означает, что мне придется обновить арифметику указателей, которую я делаю во встроенном PTX, с 32-разрядного до 64-разрядного.

Учитывая, что 32 бита могут адресовать 4 ГБ, больше памяти, чем у моей карты, возможно ли заставить компилятор указать 32-битный размер адреса, чтобы мне не приходилось обновлять арифметику указателей?

Поддерживаются ли 32-битные адреса на sm_20, учитывая новую унифицированную систему адресации?

1 ответ

64-битная версия компилятора NVCC по умолчанию создает 64-битный PTX. Если вы попытаетесь передать -m32 в nvcc в качестве параметра командной строки, он сгенерирует 32-битные указатели. Опция описана в документации NVCC:

http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html

Другие вопросы по тегам