LINUX.ORG.RU

Тесты SHOC + NVidia CUDA

 , shoc


0

1

Доброго времени суток.
Возникла проблема с компилированием данных тестов. При конфигурировании задаю параметры

CUDA_CPPFLAGS="-I$PATH_TO_CUDA/include" --without-opencl
Во время выполнения скрипта конфигурирования, при проверке всех необходимых либ и программ, везде выводится вездесущее yes.
Проблема заключается в том, что при сборке возникают ошибки типа 'undefine reference'.
Чего еще не хватает для полного счастья?

Приведи поподробней текст ошибок. У тебя куда нужной версии стоит? Заголовочные файлы все?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Судя по названию папки, одна из новых (папка имеет название cuda-5.5). Все в таком стиле:

main.o: In function `EnumerateDevicesAndChoose(int, bool)':
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../../common/main.cpp:61: undefined reference to `cudaSetDevice'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../../common/main.cpp:63: undefined reference to `cudaGetDevice'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../../common/main.cpp:66: undefined reference to `cudaGetDeviceCount'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../../common/main.cpp:75: undefined reference to `cudaGetDeviceProperties'
main.o: In function `main':
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../../common/main.cpp:201: undefined reference to `cudaGetDeviceCount'
BusSpeedDownload.o: In function `__sti____cudaRegisterAll_63_tmpxft_00004908_00000000_12_BusSpeedDownload_compute_20_cpp1_ii_6a240bad':
/tmp/tmpxft_00004908_00000000-9_BusSpeedDownload.compute_12.cudafe1.stub.c:7: undefined reference to `__cudaRegisterFatBinary'
BusSpeedDownload.o: In function `RunBenchmark(ResultDatabase&, OptionParser&)':
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:73: undefined reference to `cudaMallocHost'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:85: undefined reference to `cudaMallocHost'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:74: undefined reference to `cudaGetLastError'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:99: undefined reference to `cudaMalloc'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:111: undefined reference to `cudaMalloc'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:100: undefined reference to `cudaGetLastError'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:117: undefined reference to `cudaEventCreate'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:118: undefined reference to `cudaEventCreate'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:119: undefined reference to `cudaGetLastError'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:137: undefined reference to `cudaEventRecord'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:138: undefined reference to `cudaMemcpy'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:139: undefined reference to `cudaEventRecord'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:140: undefined reference to `cudaEventSynchronize'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:142: undefined reference to `cudaEventElapsedTime'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:164: undefined reference to `cudaFree'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:165: undefined reference to `cudaGetLastError'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:175: undefined reference to `cudaEventDestroy'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:176: undefined reference to `cudaEventDestroy'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:168: undefined reference to `cudaFreeHost'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:169: undefined reference to `cudaGetLastError'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:169: undefined reference to `cudaGetErrorString'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:165: undefined reference to `cudaGetErrorString'
$PATH/CUDA/shoc-master/src/cuda/level0/epmpi/./../BusSpeedDownload.cu:119: undefined reference to `cudaGetErrorString'
BusSpeedDownload.o: In function `__cudaUnregisterBinaryUtil':
$PATH/cuda-5.5/bin/..//include/crt/host_runtime.h:220: undefined reference to `__cudaUnregisterFatBinary'
kachsheev ★★★
() автор топика
Ответ на: комментарий от kachsheev

И что здесь непонятного? Нужных заголовочных файлов компилятор не находит.

Там довольно-таки много чего надо указать для nvcc, поэтому я собирал все при помощи cmake, чтобы не париться.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Просто странно, что при указании папки с заголовками, компилятор их не находит. Ну ладно, спасибо.

kachsheev ★★★
() автор топика

Чего еще не хватает для полного счастья?

-L/path/to/cuda/libs -lcudart

d_a ★★★★★
()

Я обычно когда сталкиваюсь с новой для себя темой, начинаю с самого простого. Вот например вывод названия установленных графических карт:

#include <stdio.h>
#include <cuda_runtime_api.h>

int main()
{
    int N;
    cudaDeviceProp prop;
    cudaGetDeviceCount(&N);
    for (int i = 0; i < N; ++i)
    {
        cudaGetDeviceProperties(&prop, i);
        printf("Dev#%d: %s\n", i+1, prop.name);
    }
}

Сборка:
nvcc ./gpuinfo.cu -o gpuinfo -lcudart

DocBrown
()
Ответ на: комментарий от DocBrown

Спасибо большое. Прикол в том, что сейчас не понимаю, к чему приписывать "-lcudart". У меня скрипт конфигурирует makefiles для всего проекта (фактически, это пакет тестов), а их там реально много.

kachsheev ★★★
() автор топика
Ответ на: комментарий от kachsheev

Насколько я понял Вы пытаетесь собрать проект https://github.com/vetter/shoc По поводу библиотек. В INSTALL есть информация как сообщить компилятору о нужной библиотеке.

./configure --help
..
 LIBS        libraries to pass to the linker, e.g. -l<library>
..
На всякий случай привожу пример как собрать код, связанный с CUDA:
./configure --with-cuda --without-opencl --without-mpi LIBS=-lcudart

P.S.: У меня нормально собралось, думаю у Вас проблем тоже не возникнет.

DocBrown
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.