日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
深入探究:Linux中的NVCC編譯器 (linux nvcc)

在如今的計(jì)算機(jī)領(lǐng)域中,GPU已經(jīng)成為了處理高性能計(jì)算任務(wù)的主要工具之一。而在GPU中,NVIDIA的顯卡可以說(shuō)是市場(chǎng)中的一股絕對(duì)勢(shì)力,因?yàn)槠鋸?qiáng)大的性能和廣泛的應(yīng)用支持。為了讓開(kāi)發(fā)者更好的利用NVIDIA顯卡的性能,NVIDIA公司開(kāi)發(fā)了一款名為CUDA的開(kāi)發(fā)平臺(tái),提供了一系列的開(kāi)發(fā)工具和API。

安陽(yáng)縣ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!

從CUDA6.5版本開(kāi)始,NVIDIA公司針對(duì)Linux平臺(tái)提供了專門的編譯器,叫做NVCC編譯器,該編譯器專門用于將CUDA C/C++代碼編譯為可執(zhí)行的二進(jìn)制文件。本文將詳細(xì)介紹Linux中NVCC編譯器的使用和相關(guān)知識(shí)。

一、NVCC編譯器的安裝

NVCC編譯器需要與CUDA Toolkit配套使用,因此首先需要安裝CUDA Toolkit。CUDA Toolkit支持多個(gè)Linux平臺(tái),可以前往官網(wǎng)下載適合自己系統(tǒng)的版本。

安裝CUDA Toolkit比較簡(jiǎn)單,根據(jù)官方文檔進(jìn)行安裝即可。安裝完成后,默認(rèn)情況下NVCC編譯器已經(jīng)被安裝到了系統(tǒng)中,可以通過(guò)以下命令查看:

$ which nvcc

如果輸出/usr/local/cuda/bin/nvcc,說(shuō)明已經(jīng)安裝成功。

二、使用NVCC編譯器進(jìn)行編譯

NVCC編譯器可以將CUDA C/C++代碼編譯為可執(zhí)行文件,編譯命令的格式如下:

$ nvcc [options] -o output_file input_file

其中options表示編譯選項(xiàng),input_file表示源文件,output_file表示輸出文件。

下面給出一個(gè)簡(jiǎn)單的例子:

#include

__global__ void square(float *d_out, float *d_in) {

int idx = threadIdx.x;

float f = d_in[idx];

d_out[idx] = f * f;

}

int mn(int argc, char **argv) {

const int ARRAY_SIZE = 64;

const int ARRAY_BYTES = ARRAY_SIZE * sizeof(float);

// 輸入和輸出數(shù)組

float h_in[ARRAY_SIZE];

float h_out[ARRAY_SIZE];

// 輸入數(shù)組初始化

for (int i = 0; i

h_in[i] = float(i);

}

// 設(shè)備端輸入和輸出數(shù)組

float *d_in;

float *d_out;

cudaMalloc((void **)&d_in, ARRAY_BYTES);

cudaMalloc((void **)&d_out, ARRAY_BYTES);

// 將輸入數(shù)據(jù)從主機(jī)端復(fù)制到設(shè)備端

cudaMemcpy(d_in, h_in, ARRAY_BYTES, cudaMemcpyHostToDevice);

// 調(diào)用CUDA核函數(shù)進(jìn)行計(jì)算

square>>(d_out, d_in);

// 將計(jì)算結(jié)果從設(shè)備端復(fù)制到主機(jī)端

cudaMemcpy(h_out, d_out, ARRAY_BYTES, cudaMemcpyDeviceToHost);

// 打印輸出

for (int i = 0; i

printf(“%f”, h_out[i]);

printf(((i % 4) != 3) ? “\t” : “\n”);

}

// 釋放設(shè)備端內(nèi)存

cudaFree(d_in);

cudaFree(d_out);

return 0;

}

上述代碼定義了一個(gè)名為square的CUDA核函數(shù),該函數(shù)用于計(jì)算輸入數(shù)組每個(gè)元素的平方,并將結(jié)果保存到輸出數(shù)組中。該程序?qū)⑤斎霐?shù)組初始化為0到63的整數(shù),并調(diào)用square函數(shù)進(jìn)行計(jì)算,并將結(jié)果輸出到終端中。

接下來(lái)使用nvcc命令將該代碼編譯為可執(zhí)行文件:

$ nvcc -o square square.cu

完成后,運(yùn)行該程序:

$ ./square

可以在終端中看到輸出結(jié)果。

三、NVCC編譯器的高級(jí)用法

NVCC編譯器不僅可以編譯CUDA C/C++代碼,還支持一些高級(jí)用法,如代碼分析、優(yōu)化和分析工具等。

1. 代碼分析

NVCC編譯器提供了一些代碼分析工具,用于幫助開(kāi)發(fā)者分析CUDA C/C++代碼的性能和行為。其中比較常用的工具是nvprof和nsight。

nvprof是一個(gè)基于命令行的性能分析工具,可以用于分析CUDA應(yīng)用程序的性能和行為。其使用方法如下:

$ nvprof ./your_program

nsight是一款基于GUI的性能分析工具,提供了比nvprof更詳細(xì)的性能分析信息。其界面友好,操作簡(jiǎn)便,但是需要安裝顯卡驅(qū)動(dòng)。安裝后可以在IDE中直接進(jìn)行性能分析。

2. 優(yōu)化

NVCC編譯器為開(kāi)發(fā)者提供了一些優(yōu)化選項(xiàng),可以用于優(yōu)化CUDA C/C++代碼的性能。例如,可以使用-O選項(xiàng)啟用編譯器的更優(yōu)化功能,或者使用–arch選項(xiàng)指定要優(yōu)化的GPU架構(gòu)。

3. 分析工具

NVCC編譯器還提供了一些分析工具,幫助開(kāi)發(fā)者分析CUDA應(yīng)用程序的行為和性能。其中比較常用的工具是cuda-memcheck和cuda-gdb。

cuda-memcheck是一個(gè)內(nèi)存檢測(cè)工具,可以幫助開(kāi)發(fā)者檢測(cè)CUDA應(yīng)用程序中的內(nèi)存錯(cuò)誤和泄漏。其使用方法如下:

$ cuda-memcheck ./your_program

cuda-gdb是一個(gè)基于命令行的調(diào)試工具,可以用于調(diào)試CUDA應(yīng)用程序。其使用方法與行使用gdb調(diào)試C/C++程序類似。

四、

相關(guān)問(wèn)題拓展閱讀:

  • cuda安裝完成后nvcc -V報(bào)錯(cuò)

cuda安裝完成后nvcc -V報(bào)錯(cuò)

背景

在Windows上使用GPU進(jìn)行深度學(xué)習(xí)一直都不是主流,我們一般都首選Linux作為深度學(xué)習(xí)操作系統(tǒng)。但很多朋友如果只是想要了解深度學(xué)習(xí),似乎沒(méi)有必要專門裝雙系統(tǒng)或者改用Linux?,F(xiàn)實(shí)生活中,很多使用學(xué)?;蛘吖倦娔X的朋友也沒(méi)有操作權(quán)限改換系統(tǒng)。那么到底是否可以在Windows系統(tǒng)上設(shè)置深度學(xué)習(xí)框架,開(kāi)發(fā)深度學(xué)習(xí)模型呢?

好消息是越來(lái)越多的深度學(xué)習(xí)框架開(kāi)始支持Windows,這使得在Windows上使用GPU加速學(xué)習(xí)過(guò)程也變成了可能。很多朋友雖然沒(méi)有一塊很強(qiáng)勁的顯卡,但也可以以較低的代價(jià)來(lái)了解在GPU上運(yùn)行深度學(xué)習(xí)模型的過(guò)程。值得欣喜的是,大部分Nvidia GeForce系列的顯卡都可以使用CUDA,大部分有獨(dú)顯的筆記本理論上都可以使用GPU來(lái)“深度學(xué)習(xí)”。即使加速效果不明顯,但很多入門級(jí)的顯卡依然可以用于TensorFlow,這至少可以幫助大家了解和熟悉這個(gè)框架。

請(qǐng)不要讓缺少預(yù)算或者系統(tǒng)不兼容成為探索路上的攔路虎和借口。

本著探索的精神,我試著在兩臺(tái)Windows電腦上安裝了CUDA(用于調(diào)用GPU)和TensorFlow(谷歌開(kāi)發(fā)的深度學(xué)習(xí)工具庫(kù)),把這個(gè)過(guò)程記錄下來(lái)和大家分享。

在開(kāi)始之前想再次提醒大家,在Windows上安裝CUDA和TensorFlow有很多坑,對(duì)于各種軟件版本以及系統(tǒng)設(shè)置的要求可謂非常刁鉆,很容易就“誤入陷阱”。請(qǐng)大家嚴(yán)格對(duì)照我的操作流程,以防出錯(cuò)。多圖長(zhǎng)文預(yù)警!??!使用教程時(shí)建議在電腦端閱讀,可以放大圖片。

準(zhǔn)備步驟

請(qǐng)按照介紹下載以下軟件備用,具體安裝流程在第二部分介紹。

簡(jiǎn)單的說(shuō),我們需要 Windows 7/8/10, Server 2023/2023 + Python 3.5 + Visual Studio 2023 + CUDA 8.0 + CuDnn 6.0。前宴

1.操作系統(tǒng)要求和硬件要求:

Windows版本:Windows 7,Windows 8,Windows 10,Windows Server 12/16

顯卡版本:請(qǐng)對(duì)照英偉達(dá)提供的支持CUDA的顯卡列表,建議查看英文版。不知道自己顯卡版本的可以通過(guò)“設(shè)備管理器”查看,或者使用第三方軟件GPU-Z查看。請(qǐng)注意,AMD的顯卡不可以使用英偉達(dá)開(kāi)發(fā)的CUDA…

中文列表:CUDA – 支持CUDA的GPU – NVIDIA(英偉達(dá))

英文列表:CUDA GPUs

2.Python版本:64位版本的Python 3.5。注意Python3.6和2.7都不可以。地址和版本如下圖所示。如果使用錯(cuò)誤的Python版本,將無(wú)法安裝TensorFlow!

3.Visual Studio版本:

我們使用的CUDA8.0不支持Visual Studio 2023,使用VS2023會(huì)報(bào)錯(cuò)。

Visual Studio 2023的話現(xiàn)在最新的版本是Visual Studio 2023 with Update 3,網(wǎng)上有人說(shuō)不能用Update 3這個(gè)版本,但根據(jù)我的親測(cè)可以使用VS2023 with Update 3。下載免費(fèi)的Community版本即可:

。這個(gè)鏈接是ISO版本,大家也可選擇EXE版本安裝。其他VS2023的版本,如企業(yè)版(Enterprise)或者專業(yè)版(Professional)也可以,事實(shí)上我測(cè)試的時(shí)候安裝的是企業(yè)版。

Visual Studio 2023根據(jù)文檔介紹也可以,但我并沒(méi)有實(shí)際測(cè)試,不推薦使用。

如果你的電腦上已經(jīng)安裝了VS2023或者VS2023,可以同時(shí)下載安裝VS2023,并不存在沖突。

4.CUDA版本:TensorFlow的支持的CUDA版本截止到今天(2023年10月1日)還是 CUDA 8.0。千萬(wàn)要慧拿銀注意英偉達(dá)官網(wǎng)上的默認(rèn)版本是CUDA 9.0,請(qǐng)不要下載安裝這個(gè)版本。

正確的8.0版本下載地址: CUDA Toolkit 8.0 – Feb 2023。網(wǎng)絡(luò)比較好的朋友建議下載網(wǎng)絡(luò)安裝版本,不要下載本地版。

5.CuDnn版本:CuDnn 6.0for CUDA8.0。這是唯一可以敏缺使用的版本,下載時(shí)請(qǐng)對(duì)應(yīng)的你的操作系統(tǒng)選擇合適的版本。

請(qǐng)?zhí)貏e注意下載CuDnn前必須注冊(cè)英偉達(dá)社區(qū)的會(huì)員,雖然說(shuō)是英文的但非常簡(jiǎn)單。 正確的下載版本如下圖所示:

6.所有必備文件:

安裝步驟(建議使用管理員權(quán)限賬號(hào))

請(qǐng)盡量按照本文的安裝順序進(jìn)行安裝,否則有可能運(yùn)行失??!最重要的是,安裝CUDA必須在安裝Visual Studio之后,這兩個(gè)順序不可以調(diào)換。

1.安裝Python

建議直接用Python的原生安裝包,安裝時(shí)建議勾選把Python加到系統(tǒng)路徑當(dāng)中去。

安裝完成后檢查Python的版本和PiP3的版本,那就是系統(tǒng)路徑中的默認(rèn)Python是3.54,且Pip3的版本大于8.01。

檢測(cè)方法如上圖,打開(kāi)命令行分別輸入 “python -V” 和 “pip3 -V”即可,正確的輸出如上圖。

2.安裝Visual Studio 2023

安裝VS2023沒(méi)什么難度,只有一個(gè)選項(xiàng)需要自定義,別的選項(xiàng)都可以使用默認(rèn)值。VS2023的默認(rèn)安裝不包括C++的編譯器,必須手動(dòng)勾選Visual C++,不然會(huì)面臨后續(xù)的CUDA編譯錯(cuò)誤。

主要原因是VS2023在安裝時(shí)并沒(méi)有默認(rèn)安裝C++的編譯器,也就是CL.exe。在后文中我會(huì)提到如果你沒(méi)裝Visual C++系統(tǒng)會(huì)如何報(bào)錯(cuò)。

3.安裝CUDA

安裝CUDA前請(qǐng)務(wù)必確認(rèn)VS2023安裝成功!這個(gè)時(shí)候你需要安裝CUDA,雙擊我們下載的安裝文件即可,一切都選擇默認(rèn)即可。

安裝成功后會(huì)看到如下圖:

4.驗(yàn)證CUDA安裝成功:

4.1. 打開(kāi)命令行,也就是cmd然后輸入“nvcc -V”,如果安裝正確的話你應(yīng)該看到這樣的輸出:

輸出中顯示了CUDA的版本是release 8.0。

4.2. 使用VS和CUDA編譯測(cè)試文件

進(jìn)入“C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0”文件夾,雙擊打開(kāi) “Samples vs2023”這個(gè)文件。

選擇編譯生成1_Utilities中所有的文件。具體操作就是在1_Utilities上右鍵選擇Build,注意紅框部分的64位和Release:

這個(gè)時(shí)候,你可能遇到了編譯錯(cuò)誤,如果你發(fā)現(xiàn)錯(cuò)誤提示是無(wú)法找到 CUDA.prop那么就是CUDA安裝錯(cuò)誤,建議檢查CUDA版本重新安裝。

如果你看到這兩個(gè)錯(cuò)誤:

TRK0005:Failed to locate: “CL.exe”. The system cannot find the file specified.系統(tǒng)找不到CL.exe,無(wú)法編譯文件。面對(duì)這個(gè)錯(cuò)誤那就是你沒(méi)選Visual C++,需要重新安裝時(shí)選上這個(gè)組件。

MSB8036:Windows SDK 8.1 was not found.如果你同時(shí)看到了這個(gè)錯(cuò)誤說(shuō)你沒(méi)有安裝 Windows SDK 8.1,那也可以通過(guò)安裝C++ Redistribution這個(gè)來(lái)解決。

如果你沒(méi)有遇到編譯錯(cuò)誤,那么應(yīng)該看到下圖提示5個(gè)文件編譯成功:

在成功后,你會(huì)發(fā)現(xiàn)在“C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0\bin\win64\Release”文件夾中出現(xiàn)了一堆文件,我們主要需要deviceQuery和bandwidthTest。

4.3. deviceQuery和bandwidthTest驗(yàn)證

運(yùn)行我們剛才編譯出來(lái)的deviceQuery.exe,也就是在cmd中運(yùn)行這個(gè)文件,下圖中左下的紅框顯示 result = pass代表安裝測(cè)試成功,右下的紅框是你的顯卡型號(hào)請(qǐng)確認(rèn)型號(hào)正確。Tesla K80只是我的這臺(tái)機(jī)器型號(hào),這個(gè)每個(gè)人可能都不一樣。

運(yùn)行我們剛才編譯出來(lái)的bandwidthTest.exe,方法一樣,也是關(guān)注是否result = PASS。

5.安裝CuDnn

解壓縮我們下載的CuDnn文件,得到3個(gè)文件夾:bin, include, lib。如下圖所示,將這個(gè)三個(gè)文件夾復(fù)制到“C:\ProgramData\NVIDIA GPU Computing Toolkit\v8.0”。

6.確認(rèn)系統(tǒng)環(huán)境變量(Environment Variables)

確認(rèn)Python3.5.4.和Pip3在系統(tǒng)環(huán)境變量中,檢查的方法上面已經(jīng)介紹了。

打開(kāi)系統(tǒng)環(huán)境變量設(shè)置,以Win10為例,請(qǐng)參考百度經(jīng)驗(yàn)(

)介紹。

確認(rèn)CUDA_PATH和CUDA_PATH_V8.0已經(jīng)存在

手動(dòng)添加 “C:\ProgramData\NVIDIA GPU Computing Toolkit\v8.0\bin”到Path里面。

7.安裝TensorFlow的GPU版本

打開(kāi)cmd,輸入“pip3 install tensorflow-gpu”

我因?yàn)橐呀?jīng)安裝過(guò)了,所以顯示已經(jīng)安裝。此處要注意三點(diǎn):

要用pip3而不是pip

要安裝tensorflow-gpu,而不是tensorflow

如果安裝失敗,很有可能你的Python版本不是3.5.,或者pip3版本太低,可以使用”pip3 install –upgrade pip3″來(lái)升級(jí)pip3

之一個(gè)TensorFlow程序!

恭喜你,我們離勝利已經(jīng)一步之遙了:) 讓我們來(lái)驗(yàn)證我們安裝的TensorFlow可以使用GPU!

打開(kāi)cmd,輸入以下指令打開(kāi)python的interactive shell。

首先導(dǎo)入tensorflow:

import tensorflow as tf

接著每次輸入一行代碼,并回車,你應(yīng)該可以看到下圖中表明你的GPU已經(jīng)開(kāi)始工作啦~

a = tf.constant(, shape=, name=’a’)

b = tf.constant(, shape=, name=’b’)

c = tf.matmul(a, b)

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

print sess.run(c)

你可能在import TensorFlow時(shí)遇到了錯(cuò)誤,如下圖。這是因?yàn)槟愕腃uDnn設(shè)置錯(cuò)誤,請(qǐng)參考本文確認(rèn)系統(tǒng)環(huán)境變量(Environment Variables)來(lái)修復(fù)。

寫(xiě)在最后

實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),時(shí)間也是。在所有人都在大力鼓吹深度學(xué)習(xí)的今天,不管你喜歡還是反對(duì),我都希望你可以親自試試,感受一下:)

而現(xiàn)實(shí)生活中我們都有各種各樣的制約,比如系統(tǒng)版本限制、比如有限的顯卡預(yù)算。這也是我寫(xiě)這篇教程的目的,我不希望這些原因成為阻礙你探索研究的障礙。希望我的這篇文章為你的深度學(xué)習(xí)之路做出了一點(diǎn)微小的貢獻(xiàn)。

應(yīng)該是你的CUDA 運(yùn)行庫(kù)的路徑不知尺讓對(duì),如果是Windows,請(qǐng)查看 系統(tǒng)困隱屬性/搭局高級(jí)/

環(huán)境變量

關(guān)于linux nvcc的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

成都網(wǎng)站營(yíng)銷推廣找創(chuàng)新互聯(lián),全國(guó)分站站群網(wǎng)站搭建更好做SEO營(yíng)銷。
創(chuàng)新互聯(lián)(www.cdcxhl.com)四川成都IDC基礎(chǔ)服務(wù)商,價(jià)格厚道。提供成都服務(wù)器托管租用、綿陽(yáng)服務(wù)器租用托管、重慶服務(wù)器托管租用、貴陽(yáng)服務(wù)器機(jī)房服務(wù)器托管租用。


標(biāo)題名稱:深入探究:Linux中的NVCC編譯器 (linux nvcc)
分享路徑:http://www.dlmjj.cn/article/dppjjsd.html