Nvidia Jetson Nano B01初體驗(四)

      網友投稿 1007 2022-05-29

      前情回顧:

      Nvidia Jetson Nano B01初體驗(一)?https://bbs.huaweicloud.com/blogs/330158

      Nvidia Jetson Nano B01初體驗(二)https://bbs.huaweicloud.com/blogs/330177

      Nvidia Jetson Nano B01初體驗(三)https://bbs.huaweicloud.com/blogs/330290

      (二十)關于Nano上源碼安裝MindSpore 1.6.0 GPU版本的嘗試終結版

      在 第三篇的 “(十七)再次探索:源碼編譯MindSpore 1.6.0”中,張小白曾經嘗試了在Jetson Nano上源碼安裝MindSpore 1.6.0的GPU版本。

      最后遇到的錯誤是這個:

      在張小白發了問題貼之后,并沒有得到什么解決方案。張小白一度想放棄,但一度又不甘心。

      最近張小白趟坑的事情還少嗎?

      張小白樹莓派4B踩坑記(一) https://bbs.huaweicloud.com/blogs/330786

      張小白DataX踩坑記(一)待發表

      哪一個不是困難重重?

      于是張小白在MindSpore論壇繼續發了一個試驗貼:

      Jetson Nano源碼編譯MindSpore 1.6 GPU版編譯的再次嘗試(連載中)https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=179276

      由于張小白只有周末時間會寬裕一點,白天要上班處理公務,但對此又念念不忘,只好晚上繼續探索:

      先將現有的mindspore目錄改名

      mv mindspore mindspore.old

      git clone?https://gitee.com/mindspore/mindspore.git?-b r1.6

      修改 ~/mindspore/scripts/build/build_mindspore.sh,加入-DENABLE_GITEE=ON參數

      (后面發現第二個改的不對,這是后話,暫且不提)

      bash build.sh -e gpu -j12

      這就又開始了漫長的編譯歷程。。。

      結果編譯到這里報錯:

      ************ build core *************** -- Configuring done CMake Warning (dev) in mindspore/ccsrc/CMakeLists.txt: Policy CMP0104 is not set: CMAKE_CUDA_ARCHITECTURES now detected for NVCC, empty CUDA_ARCHITECTURES not allowed. Run "cmake --help-policy CMP0104" for policy details. Use the cmake_policy command to set the policy and suppress this warning. CUDA_ARCHITECTURES is empty for target "gpu_cuda_lib". This warning is for project developers. Use -Wno-dev to suppress it.

      查了一下,需要在CMakeLists.txt中追加對CUDA_ARCHITECTURES的設置。

      根據nvidia的編譯規則:貌似對于Nano設備而言,CUDA_ARCHITECTURES設為50應該比較合適。

      所以,張小白做了如下處理

      cp CMakeList.txt CMakeList.txt.old

      vi CMakeList.txt

      增加以下幾行:

      if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES) set(CMAKE_CUDA_ARCHITECTURES 50 52 53) endif(NOT DEFINED CMAKE_CUDA_ARCHITECTURES)

      修改后后繼續編譯:

      報錯如下:

      這個已經跑到了build_mindspore.sh中的第二個改動的地方,顯然這里是不支持 -DENABLE_GITEE參數,所以果斷去掉這個參數,繼續編譯。。。

      進入到了有顏色的百分率編譯歷程,這個張小白非常熟悉。。

      。。。

      。。。

      。。。

      Nvidia Jetson Nano B01初體驗(四)

      。。。

      照這個速度,如果不出錯的話,估計要編譯一晚上。。。張小白當時決定睡了。。(當時是 2022年02月10日 02:36:43,有論壇發帖為證)

      早上7點左右,張小白被鬧鐘驚醒,正在跑編譯代碼的筆記本電腦需要,但是編譯僅僅進度到了 34%。。

      無奈只好CTRL-C中斷編譯。。

      (好在編譯過的內容下一次再編譯時會跳過去。。。)

      特意在家里的電腦上安裝了teamviewer.

      然后在帶走的筆記本電腦上也裝了teamviewer.

      然后遠程控制家里的電腦,通過家里電腦的mobaxterm連接Nano。

      這樣就可以白天間歇性地遠程控制Nano的編譯過程了。

      張小白通過teamviewer遠程登錄到Nano上,重新開始編譯:

      2022.2.10 19:30,進度74%

      2022.2.10 22:26 進度79%

      2022.2.11 0:19 ?進度85%

      2022.2.11 6:16 97%

      2022.2.11 6:23 100%

      2022.2.11 6:32 100%

      2022.2.11 6:39 100%

      2022.2.11 6:46 100%

      正當張小白以為“大功告成”的時候,居然報了這樣一個致命的錯誤。

      張小白度娘了以下這個錯誤:

      說應該是內存資源不足引起的:

      盡管在 (三)中( https://bbs.huaweicloud.com/blogs/330290 ),張小白已經擴了4G的虛擬內存:

      擴完之后,SWAP空間有了6G左右:

      所以張小白一口氣將虛擬內存擴大了16G(變成了18G左右):

      然后再開始編譯:

      bash build.sh -e gpu -j12

      到了 2022.2.12? 0:28,張小白看到編譯還卡在98%一動不動,于是就CTRL-C暫停了編譯:

      張小白后面就去忙樹莓派去了。

      當然,不死心的張小白開著Nano,采用j4方式重新進行編譯,就把終端一直開在那邊,野蠻生長。

      結果到了 2022.2.13 7:09 ,居然有了新的變化:

      張小白心想,難道死馬當活馬醫,這里有戲?

      2022.2.13 8:05

      報了這個錯,張小白卻是很熟悉。

      安裝wheel就可以了:

      pip3 install wheel --user

      再來編譯:bash build.sh -e gpu -j4

      。。。

      居然編譯成功了!

      趕緊將編譯好的whl文件備份一下:

      那就開始安裝吧:

      python3 -m pip install mindspore_gpu-1.6.0-cp37-cp37m-linux_aarch64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple

      在安裝numpy的時候會比較慢,需要耐心等待:

      安裝到scipy的時候也是一樣的慢:

      結果到最后:

      居然有權限問題。對,那只能安裝在這個用戶下了:

      python3 -m pip install mindspore_gpu-1.6.0-cp37-cp37m-linux_aarch64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple?--user

      好在編譯的時候,它也用到了cache.

      那么,常規做法,編輯test.py文件:

      import numpy as np from mindspore import Tensor import mindspore.ops as ops import mindspore.context as context context.set_context(device_target="GPU") x = Tensor(np.ones([1,3,3,4]).astype(np.float32)) y = Tensor(np.ones([1,3,3,4]).astype(np.float32)) print(ops.add(x, y))

      然后執行看看:

      python3 test.py

      這就表明mindspore成功地調用到了Nvidia Jetson Nano B01的GPU模塊了!

      至此也排除了MindSpore團隊提到了暫不支持ARM GPU版本的問題:

      張小白已經將編譯好的安裝包放到了網盤上:https://pan.baidu.com/s/1Eb5tSv-e1z4GNk005wlDSQ?(提取碼:eyxe)

      歡迎有Jetson Nano設備的童鞋下載試用!

      最后感謝在編譯過程中MindSpore團隊給予的幫助,特別是月月鳥大大的鼓勵,還有姐夫哥的支持。沒有你們,也許張小白堅持不下去,也完成不了這一首發。

      至于幾位大大詢問為啥張小白不編譯Lite版本,張小白只能回答:full版本都可以的話,lite版本還怕不支持嗎?(張小白膽戰心驚的回答,卻也可能給自己后續的任務留下了伏筆。。。這是后話,暫且不提。)

      撒花!

      (全文完,謝謝閱讀)

      MindSpore Ubuntu 神經網絡

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何保障企業數據資產的全生命周期安全?看這篇就夠了
      下一篇:linux系統下排除網絡故障必須掌握的命令行工具
      相關文章
      亚洲综合激情五月色一区| 久久亚洲2019中文字幕| 亚洲国产精品福利片在线观看 | 亚洲国产一级在线观看 | 亚洲AV无码专区在线亚| 亚洲成a人片在线观看中文app| 亚洲天堂一区二区| 亚洲国产精品国自产电影| 亚洲AV无码一区二区二三区入口| 亚洲一区精品无码| 亚洲色大成网站WWW久久九九| 色婷五月综激情亚洲综合 | 亚洲精品NV久久久久久久久久| 亚洲AV无码乱码在线观看| 国产综合成人亚洲区| 国产亚洲日韩在线a不卡| 久久久亚洲精华液精华液精华液 | 亚洲中文字幕无码久久2020 | 亚洲成色在线综合网站| 亚洲成a人片77777kkkk| 久久亚洲精品成人777大小说| 亚洲国产AV无码专区亚洲AV| 亚洲成a人片在线观看无码专区| 国产亚洲A∨片在线观看| 亚洲AV日韩AV天堂一区二区三区| 亚洲国产一区二区a毛片| 亚洲色偷偷av男人的天堂| 亚洲1区1区3区4区产品乱码芒果| 色婷五月综激情亚洲综合 | 亚洲av无码成h人动漫无遮挡| 国产精品亚洲A∨天堂不卡| 亚洲av无码不卡一区二区三区| 亚洲人成在线影院| 亚洲国产精品成人精品软件| 亚洲人成网站色在线观看| 亚洲AV无码一区二区三区网址| 亚洲精品国产电影| 国产亚洲精品资源在线26u| 久久久久亚洲AV无码麻豆| 亚洲欧洲日本国产| 亚洲日本成本人观看|