[問題] cuda 環境設定與使用問題

作者: hardman1110 (笨小孩)   2017-09-21 17:06:35
開發平台(Platform): (Ex: Win10, Linux, ...)
win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
visual studio community 2017
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
CUDA SDK 9.0
問題(Question):
目前參考版上文章的範例三來實作
https://www.ptt.cc/bbs/C_and_CPP/M.1226502649.A.87B.html
一開始編譯遇到不認得__global__, cudaMalloc等函式,甚至是執行kernal
prob_idx<<<g,b>>>(d); 的 "<<<"
我分別加入了
#include <cuda_runtime.h>
#include "device_launch_parameters.h"
與參考以下網址解掉了
https://goo.gl/LFBhmS
但在最後關頭還是遇到link error:
Error LNK2001 unresolved external symbol threadIdx
Error LNK2001 unresolved external symbol blockIdx
Error LNK2001 unresolved external symbol blockDim
請問各位先進我該如何設定環境呢?
另外由於開發會需要用到openframework,無法專門開一個cuda專案,這個範例我是用空
專案實作的
因此在專案設定裡都沒有CUDA選項,檔案item type也沒有 CUDA/C++ Compiler
這樣會有問題嗎?
最後想問的是,哪些檔案一定要放在.cu裡呢? 有呼叫kernal與用到cudaMalloc等函式就
要嗎?
然後再包層API給別的cpp使用?
餵入的資料(Input):

預期的正確結果(Expected Output):
可以順利執行並觀察結果
錯誤結果(Wrong Output):
link error
程式碼(Code):(請善用置底文網頁, 記得排版)
https://github.com/ChiFang/question/blob/master/Source.cu
補充說明(Supplement):
顯卡為geforce 940mx
已在include路徑加入 sdk的 include資料夾
lib路徑也加入 sdk的 lib\x64資料夾 並且加入底下所有的.lib檔
作者: hardman1110 (笨小孩)   2017-09-22 10:42:00
我確實用的是CUDA9
作者: Caesar08 (Caesar)   2017-09-21 20:52:00
CUDA 8沒有支援VS2017,所以會不懂CUDA的文法試試看2015,或是等CUDA 9

Links booklink

Contact Us: admin [ a t ] ucptt.com