分類: #AI

  • ZLUDA 收官之戰 – 它還只是個孩子啊!

    ZLUDA 收官之戰 – 它還只是個孩子啊!

    承上文:

    ZLUDA 拓荒之路 – 榨乾 Intel CPU 算力的中短期方案

     

    先說結論:

    ZLUDA 目前在我的環境測試起來並不支援一些好棒棒框架,

    像是 PyTorch、Numba 之類的,雖然我沒有測試,但是有足夠信心認為 Tenserflow 也不支援。

    先附上我的環境:

    OS: Ubuntu 22.04

    Intel GPU: UHD 770

    我的測試方式是下載 ZLUDA 的 Releases 2 的版本

    這個解開會有一個資料夾內含兩個 .so 檔,

    將想執行的檔案放在與 .so 檔同個資料夾下執行即可。

    但是像作者一樣測試 GeekBench 5.2.3 的話是會過的,

    數據差別不大,至於為什麼測出沒有 Sobel 測項?

    因為要有那個測項要付錢啊啊啊啊啊!
    GeekBench 5.2.3 官網下載點

    接著我要勘誤上篇關於 CUDA 與 ZLUDA 的引用關係,

    後來發現 ZLUDA 使用上應該是要完全取代 CUDA 的,

    所以你不裝 CUDA 它也會跑得起來。

    但由於 ZLUDA 並沒有支援 CUDA 的所有功能,

    加上我猜測它是針對某版的 CUDA 來開發的,

    所以 API 串接那邊也會報錯,而 CUDA 本家會動態連結這些函式,

    導致 ZLUDA 的支援性很低。

    最後來談談這東西的未來性還有有志之士可以怎麼發展下去?

    我認為這東西會踩到 Intel 把拔的 oneAPI 計畫,

    短時間內應該就這樣了。

    所以除非有誰與 Nvidia, Intel 同時具有競爭關係又做 CPU + GPU?

    ZLUDA 才會復活。

    (望向蘇媽)

    有志之士的話可以接著試試看,

    因為我曾經在 Python 3.7 及上述環境中讓 Numba 呼叫到 Intel UHD 770 的硬體。

    以下是給有志之士的簡易指南:

    1.確認自己手上有(消費級 Intel CPU 超過 8代 或  Intel XE CPU)且 (有內顯)

    2.裝 Intel 內顯驅動(Ubuntu 20.04 可以參考這篇, 22.04 也可以參考但記得不用降內核)

    3.確認內顯驅動有裝好xD

    4.裝 Python3.7 + Numba 0.49 – 0.58 版本,我印象當時是裝這區間。

    5.下載 ZLUDA 的 Releases 2 的版本 來測試

    裝驅動的時候要特別注意,

    我在那邊卡很久,不一定第一次會裝好,

    重複裝的時候不要反安裝到這個 gawk libc6-dev udev,

    這套件就算你不 –purge 都會幫你把 Gnome 還有一拖拉庫東西 拆掉 :)

    最後講一下 Intel 的 oneAPI,

    我用過裡面的 Intel® oneAPI Base Toolkit + Intel® AI Analytics Toolkit(PyTorch 最佳化)

    用同一台機器來計算同一份呼叫到 PyTorch 的檔案,

    用 Intel 方案的環境會算得比純 PyTorch 版本還要慢。

    就是大家可以收一收回家了,感謝各位。

    如果有志之士想討論 or Intel 官方想維護一下自己的東西(#。

    歡迎聯絡我:

    wuyiulin@gmail.com

  • OpenCV AI Kit 1 (OAK-1)從零開始的傻瓜式教學

     

    起因是因為主管塞了兩盒工程機包裝的東西給我,

    叫我趕快做點東西出來。

    :大勾請問這兩盒是什麼?

    "窩也不是很清楚,應該是攝影機吧?"

    "上禮拜才送來的,就交給你好好幹了!(瞇眼。"

    回到座位拆開包裝,奇妙的字眼映入眼簾 – OAK-1?橡樹一號?

    乖乖隆叮咚?

    我的業務範圍上從先進飛彈制導,下至林業技術輔導了嗎?

    看來下一任臺灣隊長就是我了對吧?

    現在應該抓緊時間去曬太陽之類的?

    Anyway 這的確是攝影機,不是什麼先進的橡樹、農業技術輔導。

    OAK-1 的全名是 OpneCV AI Kit

    會出現這東西,我猜是 OpenCV 覺得大家用的環境太混帳了,

    導致沒辦法發揮我們程式的實力,所以自己跳出來賣攝影機的概念。

    (我看過學弟拿沒 GPU 的文書機配 WEBCAM 在那邊掃口罩偵測,FPS 著實感人。)

    做影像辨識是這個樣子:

    影像辨識是需要算的,就算你模型都訓練好,

    還是要有一個地方可以判斷(計算),像是我學弟那個例子就是把影像丟回電腦用 CPU 算,

    結果就是出來的影像 FPS 感人。

    這麼感人的 FPS 肯定是不行的,畢竟未來要用在載具上,

    任務時間來到毫秒級,FPS 必須提高,下游任務的準確度才會提高。

    (才不會上演街頭人肉保齡球。)

    但是 OpenCV 左想右想,總不可能在每臺載具上面塞一張很貴的 GPU 對吧?

    為了教育我們這些只用 CPU 算的弱智兒童(X)

    為了讓貪財產業鏈侵入學生生活(O)

    (OpenCV 後面是 Intel,Intel 最近重新出了自己的 GPU 你知道的。)

    就出了 OAK 系列,裡面幫你塞了一張 VPU。

    VPU 是一種介於 CPU 與 GPU 中的東西,

    可以想像成沒那麼強的 GPU ,但是可以負責簡單的判斷。

    總之有這張 VPU 塞進去以後捏,好處有兩個:

    1.後端(伺服器端)可以不用塞 GPU,這種 Camera 又比 GPU 便宜很多,省錢!

    2.判斷直接在 Camera 直接做完,理論上比較省傳輸的 latency。

    好,前面廢話那麼多,來裝環境。

    首先這篇環境是 for Windows 10 ,因為我在公司被分配到 Windows 10 的機子,

    順便做個紀錄,聽起來以後要交報告的,多塞點廢話(X)。

    首先用管理員權限打開你的 Windows Shell (藍底白字的那個)

    Windows Shell

    Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
    

    如果你沒有喜歡的編輯器 加上 還沒有安裝 Python 

    就下這行,幫你裝 PyCharm + Python-least:

    choco install cmake git python pycharm-community -y
    

    然後你可能會發現阿幹怎麼 GIT 裝失敗?

    下這行:

    winget install --id Git.Git -e --source winget

    然後就裝起來了,一整個正確!

    去載這包:

    https://github.com/luxonis/depthai-python

    啟動 example/Yolo/tiny_yolo.py

    偵測結果

    好欸!

    你也可以說自己會偵測物件了(ㄍ。

    之後應該會做其他東西吧?(望天。

    Ref. 

    官網教學:https://docs.luxonis.com/projects/api/en/latest/install/#installation

    輔助影片教學:https://www.youtube.com/watch?v=ekopKJfcWiE&ab_channel=BrandonGilles