herrDeng網內搜尋

自訂搜尋

Ads

2020年8月8日 星期六

Linux上將 openCV C 程式改成cuda程式



影片除了片頭、片尾,大部分都是在ubuntu用 obs-studio 錄的。Linux上將 openCV CPP程式改成cuda GPU程式 。前提是cuda, cudnn, openCV都裝好了,不像在Jetson Nano上,Nvidia把裝cuda, cudnn的事都搞定,這很折騰人的




老師在雙系統筆電ubuntu 18那邊裝好的opencv-cuda能跑C++, python2,然而python3就不行了。(所謂的雙系統,不是虛擬機或是windows的子系統,而是真正的實體機器裝雙系統,不然怎麼玩高效能的cuda?)


[cmake-gui用法跟在win10幾乎是一樣的,Linux上用好後,還是得make -j8 && sudo make install 。哪天看到make -j16就是電腦大升級了] 

裝 python3版的,居然比C++版難搞。windows版更不行,不同於Linux環境,windows上幾乎只要同時用到數個第三方擴充,又有cuda, cudnn,又有opencv,每個套件個別裝都沒有問題,像是純openCV無cuda, cudnn支援的安裝簡易,cuda, cudnn個別裝也不是難事。但合在一起,雖有vcpkg,版次相依問題難解,還是搞不定。


一切就緒後,還有坑,這坑還是特別留給cmake的愛用者,照老師的習慣用法,根本沒事,本來不想理它。系統可能抓到沒刪乾淨的舊版cuda,像是找不到的設定檔什麼的,如果要玩多版cuda ,怎解?CMakeLists.txt要設但剛好夠用就好,個人傾向下指令或簡易MakeFile就好;要這樣用,裝openCV要編pkg-config。

[CMakeLists.txt就這樣設就好了,夠用就好,Release版還不夠?沒精神搞成大堆頭的,還要測各種OS? Compiler?]

畢竟是學科學的,老師不喜歡把太多精神花在系統設定或是ui版面上。要用ui不醜堪用就好,要調設定,就把效能提高為要。不重視效能,何必用GPU, cuda? 開發可用vi(opencv-cuda新版指令改很大又不熟)這次用IDE visual studio code(visual studio code的Telemetry功能可以選擇關與不關,這可不能怪微軟沒說,老師這裡又幫腔一次),加上幾個擴充,就非常好用(其實有一招,一樣可以讓opencv-cuda有intelliSense功能,影片中沒說,留了一手,眼尖的人還是會察覺的)。開發環境有了,coding+演算法就能施展了。一般的 ubuntu 18電腦可以跑,裝有opencv-cuda的Nvidia Jetson Nano當然是更沒問題。事實上老師也是先玩Jetson Nano上的opencv-cuda才起心動念要重整那部雙系統筆電。有影片有真相。



會用Nvidia Jetson Nano,不在於他的 CPU而是GPU 。8G Ram的Raspberry Pi 4B,CPU也沒比較差!OS也更輕量化,記憶體還x2,Jetson Nano怎麼比?Jetson Nano的OS當然要調,桌面環境改成xfce4用xrdp連開Full HD 1920x1080畫質(老師錄Jetson Nano的,除了用ssh遠端之外,都是這種標準設定,老師教Linux也是用此法遠端),要比local端用預設桌面800x600,省用大量記憶體跟CPU。



說了半天,程式碼擷圖在此。IntelliSense的功能全開。


沒有留言:

Related Posts Plugin for WordPress, Blogger...

熱門文章