Я пытаюсь скомпилировать код, написанный с использованием CUDA 3.2 на RHEL 5.6. Соответствующие части
extern "C"{
#include <stdio.h>
#include <inttypes.h>
static uint64_t size = 0;
...
size = 5000 * 1024 * 1024;
printf("sizeof(size) = %d size = %lu\n", sizeof(size), size);
}
Код находится в файле .cu и скомпилирован с использованием nvcc. Я получаю предупреждение компиляции, что для строки "size = 5000 *1024* 1024" "целочисленный результат операции находится вне диапазона". Я получил вывод
sizeof(size) = 8 size = 947912704
Я не понимаю, почему переменная "size" не может представлять значение 5242880000, если оно имеет 8 байт.
Спасибо.