第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在 Windows 上調(diào)用 cuda 庫(kù)

在 Windows 上調(diào)用 cuda 庫(kù)

Go
HUH函數(shù) 2022-08-01 15:07:04
我正在嘗試使用cuda來(lái)并行化Go項(xiàng)目。我讀過(guò)Golang多次打電話給CUDA圖書館。我試圖在Windows上做同樣的事情,但遇到了麻煩。(我假設(shè)這個(gè)OP是因?yàn)槲募褂玫氖荓inux).so我已經(jīng)成功編譯/運(yùn)行了以下涉及cuda代碼的測(cè)試程序,以確保我的CGO正常工作。測(cè)試.cppextern "C"{    int testfunc(){        return 1000;    }}使用 g++ 編譯 g++  test.cpp -o test.dll --sharedcallC.gopackage main//int testfunc();//#cgo LDFLAGS: -L. -ltestimport "C"import "fmt"func main() {    fmt.Println(C.testfunc())}打印 1000 - 太好了!現(xiàn)在我嘗試同樣的事情,我從ld那里得到一個(gè)錯(cuò)誤,有一個(gè)未定義的引用到testfunc。nvcctest.cuextern "C"{  int testfunc()  {    return 1 + 1;  }}編譯與 ...我總是得到:nvcc test.cu -o testcuda.dll --shared --compiler-options -fPICcl : Command line warning D9002 : ignoring unknown option '-fPIC'cl : Command line warning D9002 : ignoring unknown option '-fPIC'cl : Command line warning D9002 : ignoring unknown option '-fPIC'Creating library testcuda.lib and object testcuda.expcallCudaC.gopackage main//int testfunc();//#cgo LDFLAGS: -L. -ltestcuda//#cgo LDFLAGS: -LC:\temppath\CUDA\v11.2\ -lcudartimport "C"import "fmt"func main() {    fmt.Println(C.testfunc())}運(yùn)行此 go 代碼的結(jié)果 C:\Users\MICHAE~1\AppData\Local\Temp\go-build045526290\b001\_x002.o: In function `_cgo_701f531a6502_Cfunc_testfunc': /tmp/go-build/cgo-gcc-prolog:52: undefined reference to `testfunc' collect2.exe: error: ld returned 1 exit status你會(huì)注意到我的“cuda”代碼不涉及任何cuda,只涉及一個(gè)導(dǎo)出的函數(shù),并且我嘗試將cuda安裝移動(dòng)到一個(gè)更簡(jiǎn)單的路徑,所以我實(shí)際上可以將其作為目錄傳遞給鏈接器 - 我不確定它是否需要,因?yàn)闆](méi)有使用cuda語(yǔ)法等。如果有人以前見(jiàn)過(guò)這個(gè),將不勝感激調(diào)試提示或提示。
查看完整描述

1 回答

?
米脂

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊

多虧了@talonmies注釋的指示,我發(fā)現(xiàn)至少在簡(jiǎn)單的情況下,我可以通過(guò)定義一個(gè)看起來(lái)像這樣的頭文件來(lái)調(diào)用cl.exe和nvcc.exe從cgo創(chuàng)建的dll:



#ifdef __cplusplus

extern "C" {  // only need to export C interface if

              // used by C++ source code

#endif


 __declspec(dllexport) int  testfunc();

 

#ifdef __cplusplus

}

#endif

此代碼是引用以下兩篇 MSDN 文章創(chuàng)建的:https://docs.microsoft.com/en-us/cpp/build/exporting-cpp-functions-for-use-in-c-language-executables?view=msvc-160


https://docs.microsoft.com/en-us/cpp/build/exporting-c-functions-for-use-in-c-or-cpp-language-executables?view=msvc-160


查看完整回答
反對(duì) 回復(fù) 2022-08-01
  • 1 回答
  • 0 關(guān)注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)