3 回答

TA貢獻1821條經驗 獲得超5個贊
如前所述,nvcc取決于gcc 4.4。通過將軟鏈接添加到使用nvcc安裝創建的bin目錄中,可以將nvcc配置為使用正確版本的gcc,而不傳遞任何編譯器參數。
默認的cuda二進制目錄(安裝默認)是/ usr / local / cuda / bin,從該目錄向正確的gcc版本添加軟鏈接就足夠了:
sudo ln -s /usr/bin/gcc-4.4 /usr/local/cuda/bin/gcc

TA貢獻2012條經驗 獲得超12個贊
CUDA不支持gcc 4.5和4.6-無法編譯代碼,并且其他工具鏈(包括cuda-gdb)將無法正常工作。您不能使用它們,并且該限制是不可協商的。
您唯一的解決方案是安裝gcc 4.4版本作為第二個編譯器(大多數發行版都允許這樣做)。nvcc有一個選項--compiler-bindir
,可用于指向備用編譯器。創建一個本地目錄,然后建立到支持的gcc版本可執行文件的符號鏈接。通過該--compiler-bindir
選項將該本地目錄傳遞給nvcc ,您應該能夠編譯CUDA代碼而不會影響系統的其余部分。
編輯:
請注意,此問題和答案與CUDA 4有關。
自編寫以來,NVIDIA在新的CUDA工具鏈版本中繼續擴展了對更高版本的gcc版本的支持。
從CUDA 4.1版本開始,現在支持gcc 4.5。不支持gcc 4.6和4.7。
從CUDA 5.0版本開始,現在支持gcc 4.6。不支持gcc 4.7。
從CUDA 6.0版本開始,現在支持gcc 4.7。
從CUDA 7.0版本開始,完全支持gcc 4.8,而在Ubuntu 14.04和Fedora 21上則有4.9支持。
從CUDA 7.5版本開始,完全支持gcc 4.8,在Ubuntu 14.04和Fedora 21上有4.9支持。
從CUDA 8版本開始,Ubuntu 16.06和Fedora 23完全支持gcc 5.3。
從CUDA 9版本開始,在Ubuntu 16.04,Ubuntu 17.04和Fedora 25上完全支持gcc 6。
CUDA 9.2版本增加了對gcc 7的支持
CUDA 10.1版本增加了對gcc 8的支持
當前(從CUDA 10.1開始)在CUDA中不支持gcc 9。
請注意,NVIDIA最近在這里添加了一個非常有用的表,其中包含當前CUDA版本支持的編譯器和OS矩陣。

TA貢獻1946條經驗 獲得超3個贊
檢查您的CUDA版本支持的最大GCC版本。
對于CUDA 10.1,10.2:8
對于CUDA 9.2,10.0:7
對于CUDA 9.0,9.1:6
對于CUDA 8:5
為該GCC版本設置環境變量。例如,對于CUDA 10.2:
MAX_GCC_VERSION=8
確保已安裝該版本:
sudo apt install gcc-$MAX_GCC_VERSION g++-$MAX_GCC_VERSION
在CUDA文件夾中添加符號鏈接:
sudo ln -s /usr/bin/gcc-$MAX_GCC_VERSION /usr/local/cuda/bin/gcc
sudo ln -s /usr/bin/g++-$MAX_GCC_VERSION /usr/local/cuda/bin/g++
添加回答
舉報