當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 如果沒有 GPU,現(xiàn)代深度學(xué)習(xí)是不可能發(fā)展到今天的水平的。即使是 MNIST 數(shù)據(jù)集上的簡(jiǎn)單示例算法在 GPU 和 CPU 上運(yùn)行速度的差別也有 10-100 倍。但是,當(dāng)你沒有優(yōu)化所有設(shè)置時(shí),

如果沒有 GPU,現(xiàn)代深度學(xué)習(xí)是不可能發(fā)展到今天的水平的。即使是 MNIST 數(shù)據(jù)集上的簡(jiǎn)單示例算法在 GPU 和 CPU 上運(yùn)行速度的差別也有 10-100 倍。但是,當(dāng)你沒有優(yōu)化所有設(shè)置時(shí),GPU 空閑的算力該作何用?

既然擁有了強(qiáng)大的計(jì)算設(shè)備,我們不免會(huì)考慮到虛擬貨幣挖礦。事實(shí)上這并不是很難,你需要的只是注冊(cè)一個(gè)錢包,選擇一種貨幣,設(shè)置好挖礦軟件然后運(yùn)行即可。只需要 Google 一下「如何用 GPU 開始挖礦?」,你就能看到大量介紹性文章手把手地教你如何操作。

優(yōu)化效率

在本文中,我們需要加入另一個(gè)問題:如何讓挖礦變得更加方便、自動(dòng)化,同時(shí)在我需要讓計(jì)算機(jī)全力運(yùn)行深度學(xué)習(xí)模型時(shí)不讓工作受到打擾。理想的解決方案是讓計(jì)算機(jī)能夠即時(shí)檢查 GPU 的資源占用,當(dāng)沒有進(jìn)程使用的時(shí)候自動(dòng)開始挖礦;而在 TensorFlow、PyTorch 或其他工具需要開始計(jì)算的時(shí)候,監(jiān)視器會(huì)發(fā)出命令讓計(jì)算機(jī)立即停止挖礦。

這個(gè)問題應(yīng)該很好解決,但我至今未在網(wǎng)上發(fā)現(xiàn)類似的東西,所以我自己嘗試寫了一個(gè) GPU 監(jiān)視程序。它不僅適用于挖礦任務(wù),而且還可以用于其他各種任務(wù)。

NOTE. 在開始之前,你必須明白:希望你不要把這種計(jì)算資源優(yōu)化方法用在辦公室的計(jì)算機(jī)上,本人對(duì)于任何濫用造成的后果概不負(fù)責(zé)。

先決條件

首先,我的項(xiàng)目 gpu_mon 以及源代碼已經(jīng)發(fā)布在 GitHub 上了:https://github.com/Shmuma/gpu_mon

它由 Python 3 編寫,其后沒有標(biāo)準(zhǔn)庫之外的依賴庫,但它需要運(yùn)行在 Linux 系統(tǒng)上,所以如果你的機(jī)器是 Windows 系統(tǒng)的話,抱歉了:)

gpu_mon 的運(yùn)行邏輯如上所述:它會(huì)定期檢查 GPU 的負(fù)載,如果沒有進(jìn)程使用的話,它會(huì)自動(dòng)運(yùn)行你在 config 文件中選擇的程序。如果有其他程序打開了 GPU,指定程序會(huì)被自動(dòng)停止以釋放資源。所以在設(shè)置完以后,你只需要打開監(jiān)視程序,隨后像往常一樣使用即可,從運(yùn)行挖礦程序到全速運(yùn)行深度學(xué)習(xí)模型之間僅有幾秒鐘的轉(zhuǎn)換時(shí)間。

為了獲取接入 GPU 設(shè)備的進(jìn)程列表(假設(shè)是/dev/nvidia*),我們使用了 fuser 命令行工具。在基于 debian 的發(fā)行版上(如 ubuntu 或 debian),工具是由 psmisc 工具包提供的——它是系統(tǒng)安裝的一部分,所以沒有特殊的資源庫需要安裝。如果你的系統(tǒng)中沒有 fuser(你可以通過在 shell 上運(yùn)行「which fuser」命令來進(jìn)行檢查),則你需要事先安裝一下。

調(diào)試

整個(gè)項(xiàng)目的配置都是在一個(gè)單獨(dú)的配置文件中完成的,它是 ini 文件格式,存在于~/.config/gpu_mon.conf 目錄中。示例配置文件如下所示,同時(shí)在 GitHub 中也可以找到。

配置文件包含四個(gè)部分:

1.默認(rèn)全局設(shè)置 [defaults]。在這里只有一個(gè)選項(xiàng),它指定監(jiān)視軟件對(duì) GPU 設(shè)備資源用量的檢查頻率。默認(rèn)情況下,每十秒鐘檢測(cè)系統(tǒng)中的所有 GPU 一次。

2.GPU 設(shè)置可以用 gpu-前綴的方式指定任意 GPU。你也可以用 ID 將不同的 GPU 分組(/dev/nvidiaX 設(shè)備文件上的整數(shù))。對(duì)于每個(gè) GPU 組你都可以設(shè)置一個(gè)程序列表,其中列出不會(huì)搶占挖礦任務(wù)的程序。這樣我們就可以應(yīng)對(duì) nvidia-smi 這樣的工具了——它會(huì)使用 GPU 設(shè)備,但不應(yīng)該妨礙挖礦。

3.挖礦進(jìn)程配置部分,可以使用 process-前綴的方式指定一個(gè)或多個(gè)。對(duì)于每個(gè)項(xiàng)目來說你可以指定需要運(yùn)行的挖礦程序,程序所在的目錄,限制挖礦程序利用 GPU 資源的程度(這是通過導(dǎo)出 CUDA_VISIBLE_DEVICES 環(huán)境來完成的),日志文件名稱以及挖礦程序輸出。

4.TTY 監(jiān)控部分,他可以讓你選擇偽終端監(jiān)控,優(yōu)先于挖礦程序。在默認(rèn)情況下,此選項(xiàng)是關(guān)閉的。

以下是我在一臺(tái)雙 GPU 設(shè)備上的挖礦設(shè)置文件:

[defaults]

; how frequently perform GPU open and tty checks

interval_seconds=10

; configuration of GPUs to monitor for external program access. It could be several such secTIons

[gpu-all]

; list of comma-separated gpu indices or ALL to handle all available gpus

gpus=ALL

; comma-separated list of programs which can access gpu and should be ignored

ignore_programs=nvidia-smi

; program which will be started on gpu during idle TIme

[process-0]

dir=/tmp

cmd=/var/bin/miner

; list of gpu indices or ALL to handle all available gpus. If not ALL, CUDA_VISIBLE_DEVICES will be set

gpus=0

log=/var/log/miner-0.log

[process-1]

dir=/tmp

cmd=/var/bin/miner

; list of gpu indices or ALL to handle all available gpus. If not ALL, CUDA_VISIBLE_DEVICES will be set

gpus=1

log=/var/log/miner-1.log

; configuraTIon of tty monitoring

[tty]

enabled=False

該工具的設(shè)置可以允許我們控制系統(tǒng)中每個(gè) GPU 和每個(gè)單獨(dú)進(jìn)程的計(jì)算資源占用。所以我們可以讓深度學(xué)習(xí)進(jìn)程只占用第一塊 GPU(通過導(dǎo) CUDA_VISIBLE_DEVICE=0),而不打擾第二塊 GPU 上的挖礦進(jìn)程。但如果我們想要充分釋放資源,兩塊 GPU 上的挖礦程序都會(huì)被關(guān)閉。

正如之前所說的,一切都是透明的,你不應(yīng)在開啟/關(guān)閉挖礦程序上耗費(fèi)精力,只需要專注于 TensorFlow 和 PyTorch 上的優(yōu)化即可?,F(xiàn)在,你可以開始使用 gpu_mon,獲取利潤了!

自動(dòng)開始 GPU_MON

為了讓 gpu_mon 不會(huì)打擾到自己,我們需要確保它會(huì)在系統(tǒng)啟動(dòng)后自動(dòng)在后臺(tái)運(yùn)行。有很多工具都可以做到這點(diǎn),但我更喜歡 supervisord,它是一個(gè)小型進(jìn)程,會(huì)自動(dòng)檢查正在運(yùn)行的程序,如果發(fā)現(xiàn)未響應(yīng)會(huì)自動(dòng)重啟程序。為了開啟 gpu_mon 的工作,安裝 supervisord,在/etc/supervisor/conf.d/gpu_mon.conf 進(jìn)行好設(shè)置就足夠了。

下面是我的設(shè)置:

[program:gpu_mon]

command=/usr/bin/python3 /gpu_mon/gpu_mon.py

user=

environment=HOME=,USER=

autostart=true

autorestart=true

就是這樣,隨后你就可以重啟 supervisord,然后檢查 gpu_mon 是否啟動(dòng)了(命令:supervisorctl status gpu_mon),得到的回復(fù)應(yīng)該像這樣:

root@gpu:/etc/supervisor/conf.d# supervisorctl status gpu_mon

gpu_mon RUNNING pid 1526, upTIme 57 days, 18:14:27

多用戶

如果 gpu_mon 被一個(gè)用戶開啟,而另一個(gè)或多個(gè)用戶開始調(diào)用深度學(xué)習(xí)軟件,則 gpu_mon 無法關(guān)閉挖礦程序。這是因?yàn)?fuser 命令受到安全限制——它無法向其他用戶的進(jìn)程展示正在運(yùn)行的進(jìn)程。如果你在多用戶的情況下仍然需要 gpu_mon(還請(qǐng)注意不要使用公用電腦做這種事),你有如下兩種選擇:

給 gpu_mon 以 root 權(quán)限,這在任何情況下都不是推薦的方式。

給 fuser 二進(jìn)制文件加入 SUID bit。在 Ubuntu 發(fā)行版中,我們可以通過運(yùn)行命令 chmod+s/bin/fuser 來完成,它可以有效地讓所有用戶訪問文件,通過 SUID bit,二進(jìn)制文件是以文件擁有者證書的形式啟動(dòng)的,即使它是由其他用戶啟動(dòng)的。但這仍然需要你開啟 root 權(quán)限。

挖哪種虛擬貨幣?

目前,市面上存在多種虛擬貨幣,這要?dú)w功于比特幣今年的繁榮。我個(gè)人最喜歡的是基于 equihash 的貨幣,像 ZCash 和 Komodo——它們都可以使用一種程序來挖礦。我是用 EWBF 挖礦程序的修訂版來做這個(gè)工作,它要比原版快上 10%。

正如前文所述,gpu_mon 本身不會(huì)挖礦,它只會(huì)跟蹤 GPU 進(jìn)程,所以你可以使用任何 CUDA 優(yōu)化的挖礦程序。

賺錢與否?

當(dāng)然賺錢,但是不要指望使用一塊英偉達(dá) GTX 1080 就能賺來百萬美元,虛擬貨幣的復(fù)雜性正在增長,但挖礦收入減去電費(fèi)以后仍然是正數(shù),所以何樂而不為呢?

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉