我想編譯mac上的CUDA代碼,但在Windows上使其可執行。cuda nvcc交叉編譯器
有沒有辦法建立一個NVCC CUDA交叉編譯器?
的問題是,我的桌面Windows將無法使用了一段時間,由於旅行,但我不要等待,直到我回來和編譯代碼要浪費時間。如果我必須等待,那麼調試代碼並確保編譯正確和喜歡的代碼是浪費時間。儘管如此,我的Mac沒有配備支持cuda的硬件。
我想編譯mac上的CUDA代碼,但在Windows上使其可執行。cuda nvcc交叉編譯器
有沒有辦法建立一個NVCC CUDA交叉編譯器?
的問題是,我的桌面Windows將無法使用了一段時間,由於旅行,但我不要等待,直到我回來和編譯代碼要浪費時間。如果我必須等待,那麼調試代碼並確保編譯正確和喜歡的代碼是浪費時間。儘管如此,我的Mac沒有配備支持cuda的硬件。
簡短的回答,沒有,這是不可能的。
這是一個普遍的誤解,但nvcc
其實不是一個編譯器。它是一個編譯器驅動程序,它主要依靠主機C++編譯器來控制編譯主機和設備代碼。要編譯CUDA for Windows,您必須使用Microsoft C++編譯器。該編譯器不能在Linux或OS X上運行,因此除非在Windows主機上進行編譯(例如,可以使用32/64位交叉編譯),否則無法跨編譯到Windows目標。因爲後端不同(Linux是一個精靈平臺,OS X是一個mach平臺),所以即使在OS X和Linux之間進行交叉編譯也是不可行的不可能。
你有兩個選擇,如果OS X平臺上編譯目標
如果你想沒有一個CUDA GPU上運行的代碼,有你可以調查一個非商業(GPU Ocelot)和商業(PGI CUDA-x86)選項。
我使用CMake構建系統進行交叉編譯。你看過嗎?還沒有 – geek
。是否與構建常規交叉編譯器相同? – mma1480
Nvcc不是編譯器。它依賴主機編譯器來完成大部分編譯(包括大部分GPU代碼編譯)。爲了編譯窗口,需要visual studio編譯器,並且要求是不可協商的。您可以在沒有NVIDIA GPU的情況下在OS X上安裝工具鏈。您將無法運行OS X可執行文件的結果。 – talonmies