Установка 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