2012-03-12 2 views
0

Как я хотел собрать свою программу (используя Cusparse) следующие строки появились:Проблема работы с CUSPARSE

TMP/tmpxft_00001048_00000000-13_matvec.o: В функции main': tmpxft_00001048_00000000-1_matvec.cudafe1.cpp:(.text+0x6d5): undefined reference to cusparseCreate»

То же вышел не только для cusparseCreate, но также и для cusparseCreateMatDescr, cusparseSetMatType, cusparseSetMatIndexBase, cusparseXcoo2csr, cusparseDsctr, cusparseDcsrmv_v2, cusparseDestroyMatDescr и cusparseDestroy. Что это значит?

+1

Как вы компилируете? Похоже, вы не связываетесь с библиотекой cusparse. Ответ на вопрос о том, как установить связь с библиотекой, зависит от os. –

+1

Как решить ту же проблему для windows visual studio 2010? – Terminal

+0

@Terminal, вот как решить проблему с визуальной студией: http://stackoverflow.com/questions/13570285/how-to-link-library-eg-cublas-cusparse-for-cuda-on-windows – Veridian

ответ

3

Вам необходимо связаться с библиотекой cuSPARSE. Поскольку вы используете Linux, добавление -lcusparse в вашу командную строку nvcc должно быть достаточным.

Обратите внимание, что вам также может потребоваться добавить путь библиотек CUDA к переменной среды LD_LIBRARY_PATH, если система не сможет найти связанные библиотеки при выполнении.

+0

Сделал ли я пропустить что-то или есть способ, которым вы поняли, что OP использует Linux из вопроса, который он задал? –

+0

Сообщение об ошибке является типичным сообщением об ошибке Linux, Windows будет говорить что-то вроде «неразрешенного внешнего символа». Я не знаю, что говорят Макс, возможно, он использует Mac, но в этом случае разрешение будет таким же. Для Windows можно добавить cusparse.lib рядом с cudart.lib, следуя этим инструкциям: http://stackoverflow.com/a/2047892/214473 (VS2005/2008) или http://stackoverflow.com/a/7285235/214473 (VS2010). – Tom

+0

Я вижу эти сообщения об ошибках в нашей системе все время! Смешно, что я этого не заметил. Спасибо за разъяснения. –

Смежные вопросы