Ошибка CUDA 2.1: имя неизвестного типа 'size_t'

Система: Ubuntu 11.10 x86_64 CUDA: v 2.1

При попытке создать пример программы, такой как matrixMul, я получаю огромное количество ошибок, большинство из которых — «неизвестное имя типа 'size_t'». Я обязательно указал /usr/local/cuda/bin в своем PATH, а также /usr/local/cuda/lib в .conf в /etc/ld.so.conf.d.

Любые идеи, почему я получаю эти ошибки?

matrixMul$ make emu=1
In file included from /tmp/tmpxft_00004089_00000000-1_matrixMul.cudafe1.stub.c:5:0,
                 from matrixMul.cu:196:
/usr/local/cuda//bin/../include/crt/host_runtime.h:192:0: warning: "__device_fun" redefined [enabled by default]
/usr/local/cuda//bin/../include/crt/host_runtime.h:215:0: note: this is the location of the previous definition
/usr/local/cuda//bin/../include/crt/host_runtime.h:194:0: warning: "__device_var" redefined [enabled by default]
/usr/local/cuda//bin/../include/crt/host_runtime.h:217:0: note: this is the location of the previous definition
/usr/local/cuda//bin/../include/crt/host_runtime.h:196:0: warning: "__tex_var" redefined [enabled by default]
/usr/local/cuda//bin/../include/crt/host_runtime.h:219:0: note: this is the location of the previous definition
/usr/local/cuda//bin/../include/crt/host_runtime.h:198:0: warning: "__cudaFatCubin" redefined [enabled by default]
/usr/local/cuda//bin/../include/crt/host_runtime.h:221:0: note: this is the location of the previous definition
/usr/local/cuda//bin/../include/crt/host_runtime.h:208:0: warning: "__ids" redefined [enabled by default]
/usr/local/cuda//bin/../include/crt/host_runtime.h:223:0: note: this is the location of the previous definition
In file included from /usr/local/cuda//bin/../include/builtin_types.h:43:0,
                 from /usr/local/cuda//bin/../include/cuda_runtime_api.h:54,
                 from /usr/local/cuda//bin/../include/crt/host_runtime.h:80,
                 from /usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h:156:
/usr/local/cuda//bin/../include/driver_types.h:184:3: error: unknown type name ‘size_t’
...
/usr/local/cuda//bin/../include/driver_types.h:274:3: error: unknown type name ‘size_t’
In file included from /usr/local/cuda//bin/../include/crt/host_runtime.h:80:0,
                 from /usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h:156:
/usr/local/cuda//bin/../include/cuda_runtime_api.h:102:46: error: unknown type name ‘size_t’
...
/usr/local/cuda//bin/../include/cuda_runtime_api.h:105:118: error: unknown type name ‘size_t’
In file included from /usr/local/cuda//bin/../include/crt/host_runtime.h:80:0,
                 from /usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h:156:
/usr/local/cuda//bin/../include/cuda_runtime_api.h:110:48: error: unknown type name ‘size_t’
In file included from /usr/local/cuda//bin/../include/crt/host_runtime.h:80:0,
                 from /usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h:156:
/usr/local/cuda//bin/../include/cuda_runtime_api.h:120:59: error: unknown type name ‘size_t’
...
/usr/local/cuda//bin/../include/cuda_runtime_api.h:121:110: error: unknown type name ‘size_t’
In file included from /usr/local/cuda//bin/../include/crt/host_runtime.h:80:0,
                 from /usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h:156:
/usr/local/cuda//bin/../include/cuda_runtime_api.h:122:80: error: unknown type name ‘size_t’
...
/usr/local/cuda//bin/../include/cuda_runtime_api.h:216:68: error: unknown type name ‘size_t’
In file included from /usr/local/cuda//bin/../include/crt/host_runtime.h:226:0,
                 from /usr/lib/gcc/x86_64-linux-gnu/4.6.1/include/stddef.h:213:
/usr/local/cuda//bin/../include/common_functions.h:70:1: error: unknown type name ‘clock_t’
/usr/include/time.h:183:43: error: conflicting types for ‘clock’
/usr/local/cuda//bin/../include/common_functions.h:72:10: note: previous implicit declaration of ‘clock’ was here
../../common/inc/cutil_inline_runtime.h:41:49: warning: inline function ‘_Z23cutGetMaxGflopsDeviceIdv’ declared weak [-Wattributes]
../../common/inc/cutil_inline_runtime.h:41:43: warning: inline function ‘_Z23cutGetMaxGflopsDeviceIdv’ declared weak [-Wattributes]
In file included from /tmp/tmpxft_00004089_00000000-1_matrixMul.cudafe1.stub.c:4:0,
                 from matrixMul.cu:196:
/usr/include/time.h:183:34: error: conflicting types for ‘__cuda_clock’
/usr/local/cuda//bin/../include/common_functions.h:70:16: note: previous definition of ‘__cuda_clock’ was here
In file included from /tmp/tmpxft_00004089_00000000-1_matrixMul.cudafe1.stub.c:4:0,
                 from matrixMul.cu:196:
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:193:30: error: static declaration of ‘__cuda_error_not_implememted’ follows non-static declaration
/usr/local/cuda//bin/../include/math_functions.h:864:78: note: previous declaration of ‘__cuda_error_not_implememted’ was here
In file included from /tmp/tmpxft_00004089_00000000-1_matrixMul.cudafe1.stub.c:5:0,
                 from matrixMul.cu:196:
/usr/local/cuda//bin/../include/crt/host_runtime.h:185:13: error: redefinition of ‘__cudaUnregisterBinaryUtil’
/usr/local/cuda//bin/../include/crt/host_runtime.h:185:13: note: previous definition of ‘__cudaUnregisterBinaryUtil’ was here
make: *** [obj/emurelease/matrixMul.cu.o] Error 255

Спасибо!


person Kyle    schedule 18.04.2012    source источник
comment
/usr/include/time.h:183:34: ошибка: конфликтующие типы для '__cuda_clock' /usr/local/cuda//bin/../include/common_functions.h:70:16: примечание: предыдущее определение ' __cuda_clock' здесь говорит, что вы включаете некоторые функции дважды.. Совместимы ли ваши версии c и cuda.. убедитесь, что файлы заголовков, необходимые для компиляции, доступны.. например, откройте файл /usr/local/cuda//bin /../include/driver_types.h:184:3 и убедитесь, что вы можете найти файлы заголовков, которые он использует, и что они находятся в пути.. команда locate очень полезна для поиска неуловимых заголовков   -  person Osama Javed    schedule 18.04.2012
comment
size_t доступен внутри ‹cstring›, поэтому, возможно, включите его в заголовок и посмотрите, исправит ли это хотя бы некоторые ошибки.   -  person Osama Javed    schedule 18.04.2012
comment
Вы используете очень старый набор инструментов CUDA с неподдерживаемым компилятором. Либо получите более новую версию CUDA, либо установите gcc 4.2.   -  person talonmies    schedule 18.04.2012


Ответы (2)


Обновите CUDA!

CUDA 2.1 была выпущена в 2008/9 г., вам следует обновить ее (например, до CUDA 4.2). Официально Ubuntu 11.10 пока не поддерживается, сам не пробовал, основная проблема скорее всего в том, что придется ставить GCC 4.5.2. Дополнительные сведения см. в примечаниях к выпуску. на поддерживаемых версиях.

person Tom    schedule 18.04.2012

Убедитесь, что вы #include <stddef.h>

Если это программа на C++, попробуйте добавить строку using namespace std.

Проблема не имеет ничего общего с "bin" или вашим $PATH; все зависит от того, какие системные заголовки и системные определения вы выбираете во время компиляции.

person paulsm4    schedule 18.04.2012