ошибка: размер операнда asm size (1) не соответствует типу / размеру, подразумеваемому ограничением 'r'. О типе графического процессора Duane Merrill - PullRequest
0 голосов
/ 16 августа 2011

У меня ошибка при попытке скомпилировать сортировку Merrill Radix под win-XP + VS2005.

ошибка: размер типа операнда asm (1) не соответствует типу / размеру, подразумеваемому ограничением 'r'.

это происходит в следующем коде

#define B40C_DEFINE_GLOBAL_LOAD(base_type, dest_type, short_type, ptx_type, reg_mod)\
asm("ld.global.cg."#ptx_type" %0, [%1];" : "="#reg_mod(dest) : _B40C_ASM_PTR_(d_ptr + offset));\
...
B40C_DEFINE_GLOBAL_LOAD(char, signed char, char, s8, r)

Спасибо

1 Ответ

1 голос
/ 10 января 2016

Это может быть вызвано попыткой скомпилировать код ядра CUDA, содержащий встроенные инструкции по сборке, написанные специально для 64-битной хост-платформы на 32-битной платформе.

Набор инструментов CUDA обеспечивает согласованность sizeof(void *) как на хосте, так и на устройстве, испуская код графического процессора, соответствующий режиму адресации центрального процессора хоста. Этот конкретный код предполагает, что указатели являются 64-битными, тогда как код компилируется в 32-битном режиме хоста, что приводит к несоответствию размера.

...