3 回答

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

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
CUDA不支持gcc 4.5和4.6-無(wú)法編譯代碼,并且其他工具鏈(包括cuda-gdb)將無(wú)法正常工作。您不能使用它們,并且該限制是不可協(xié)商的。
您唯一的解決方案是安裝gcc 4.4版本作為第二個(gè)編譯器(大多數(shù)發(fā)行版都允許這樣做)。nvcc有一個(gè)選項(xiàng)--compiler-bindir
,可用于指向備用編譯器。創(chuàng)建一個(gè)本地目錄,然后建立到支持的gcc版本可執(zhí)行文件的符號(hào)鏈接。通過(guò)該--compiler-bindir
選項(xiàng)將該本地目錄傳遞給nvcc ,您應(yīng)該能夠編譯CUDA代碼而不會(huì)影響系統(tǒng)的其余部分。
編輯:
請(qǐng)注意,此問(wèn)題和答案與CUDA 4有關(guān)。
自編寫以來(lái),NVIDIA在新的CUDA工具鏈版本中繼續(xù)擴(kuò)展了對(duì)更高版本的gcc版本的支持。
從CUDA 4.1版本開始,現(xiàn)在支持gcc 4.5。不支持gcc 4.6和4.7。
從CUDA 5.0版本開始,現(xiàn)在支持gcc 4.6。不支持gcc 4.7。
從CUDA 6.0版本開始,現(xiàn)在支持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版本增加了對(duì)gcc 7的支持
CUDA 10.1版本增加了對(duì)gcc 8的支持
當(dāng)前(從CUDA 10.1開始)在CUDA中不支持gcc 9。
請(qǐng)注意,NVIDIA最近在這里添加了一個(gè)非常有用的表,其中包含當(dāng)前CUDA版本支持的編譯器和OS矩陣。

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊
檢查您的CUDA版本支持的最大GCC版本。
對(duì)于CUDA 10.1,10.2:8
對(duì)于CUDA 9.2,10.0:7
對(duì)于CUDA 9.0,9.1:6
對(duì)于CUDA 8:5
為該GCC版本設(shè)置環(huán)境變量。例如,對(duì)于CUDA 10.2:
MAX_GCC_VERSION=8
確保已安裝該版本:
sudo apt install gcc-$MAX_GCC_VERSION g++-$MAX_GCC_VERSION
在CUDA文件夾中添加符號(hào)鏈接:
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++
添加回答
舉報(bào)