使用 PyTorch 進行 CUDA 程式開發在輝達 nVidia Jetson Nano 環境下

甘果-avatar-img
發佈於程式
更新 發佈閱讀 7 分鐘

在硬體上,我們有了 Jetson Orin Nano 的多核心 GPU 的裝置之後;接下來可以利用 PyTorch 來作 CUDA python 程式開發。由於PyTorch 的語法跟常用的 numpy 程式庫語法很接近,我自己認為會比較適合非資訊專業的人員作為 CUDA 多核心 GPU 程式開發及研究的工具。

  • 確認 CUDA 版本以及是否可以使用

我們可以檢查一下,PyTorch 跟 CUDA 是否可以順利執行;如果我們按照 nVidia 提供的 PyTorch 檔案套件來安裝的話,應該可以看到 PyTorch 的版本是「xx.xx.xx+nvxx.xx」。例如:

import torch
# check torch version
print(‘pytorch version’,torch.__version__)
# check available device
if torch.cuda.is_available():
print(‘cuda device:,torch.cuda.get_device_name())
raw-image
  • PyTorch 的張量 (tensor) 資料型態

在 PyTorch 編寫 CUDA 的程式時,主要的計算需要把數字轉換成「張量」(Tensor) 的形態;我們可以用以下的程式來大致了解,在一般定義上,「張量」和「矩陣」以及「純量」運算的差異。

import torch
import numpy as np
#------------
# scale
#------------
Scale=1
#------------
# matrix
#------------
Matrix=np.array([[1,2],[3,4]])
#------------
# tensor
#------------
Tensor=torch.tensor([[[1,2],[3,4]],[[5,6],[7,8]]])
#------------
print('Scale:',Scale)
print('Matrix:',Matrix)
print('Tensor:',Tensor)
print('Matrix: dimension is',Matrix.ndim,'size is',Matrix.shape)
print('Tensor: dimension is',Tensor.ndim,'size is',Tensor.shape)

不過,在 PyTorch 使用上,「torch.tensor()」這個函數其實是可以同時來使用「張量」和「矩陣」以及「純量」;例如:

import torch
#------------
# scale
#------------
Scale=torch.tensor([1])
#------------
# matrix
#------------
Matrix=torch.tensor([[1,2],[3,4]])
#------------
# tensor
#------------
Tensor=torch.tensor([[[1,2],[3,4]],[[5,6],[7,8]]])
#------------
print('Scale:',Scale)
print('Matrix:',Matrix)
print('Tensor:',Tensor)
print('Scale: dimension is',Scale.ndim,',size is',Scale.shape)
print('Matrix: dimension is',Matrix.ndim,',size is',Matrix.shape)
print('Tensor: dimension is',Tensor.ndim,',size is',Tensor.shape)
raw-image
  • 撰寫在 GPU 上運算的程式

在利用 PyTorch 來使用 CUDA 計算時,要將數值轉換成「tensor」的型態,然後指定到要計算的 GPU 上面,再利用 PyTorch 的提供的函數來作運算。下例中,我們使用 PyTorch/CUDA 在多 GPU 核心上,作矩陣相乘的運算;要注意的是,CUDA 的運算是採用非同步運算,如果在 CUDA 運算完之後,要將結果傳回 CPU 端來輸出的話,最好是要使用強迫同步的指令。

import numpy as np
import torch
import time

# 設定亂數矩陣
a=np.random.rand(1000,1000)
b=np.random.rand(1000,1000)
# 指定到 CUDA 作計算
device = torch.device('cuda')
valueA=torch.tensor(a).to(device)
valueB=torch.tensor(b).to(device)
# 開始計算時間
beginTime=time.time()
for i in range(100):
torch.matmul(valueA,valueB)
# 等所有 GPU 都計算完畢
torch.cuda.synchronize()
# 印出計算所花的時間
print('CUDA execution time:',time.time()-beginTime)

在這個程式在 Jupyter 上撰寫並運算時,我們可以同時開啟 Jetson Orin Nano 的「jtop」程式,確認 Jetson Orin Nano 的 GPU 是否在正在進行運算;如下圖。

raw-image

這樣子,我們就可以透過 PyTorch 及 CUDA 在 Jetson Orin Nano 的裝置上,進行多 GPU 核心的程式開發了。

留言
avatar-img
甘果的沙龍
7會員
33內容數
作者從國內主要的半導體公司退休,重回校園唸書;開始第三人生。分享退休投資規劃、科技產業經驗以及校園學習點滴。
甘果的沙龍的其他內容
2025/04/26
本文章說明如何在已安裝 Python 3.9 的 iMac mini 上設定 Python 虛擬環境,以及如何使用 venv 工具、安裝常用函式庫(如 numpy、pyTorch 等),並設定 Jupyter 連動不同 Python 虛擬環境。
Thumbnail
2025/04/26
本文章說明如何在已安裝 Python 3.9 的 iMac mini 上設定 Python 虛擬環境,以及如何使用 venv 工具、安裝常用函式庫(如 numpy、pyTorch 等),並設定 Jupyter 連動不同 Python 虛擬環境。
Thumbnail
2025/04/19
這篇文章說明如何在iMac mini M4上設定Jupyter Notebook作為遠端程式設計伺服器,方便使用iPad進行程式開發。文章涵蓋Jupyter Notebook的安裝、設定遠端連線以及建立可執行的shell script,讓伺服器能持續運作。
Thumbnail
2025/04/19
這篇文章說明如何在iMac mini M4上設定Jupyter Notebook作為遠端程式設計伺服器,方便使用iPad進行程式開發。文章涵蓋Jupyter Notebook的安裝、設定遠端連線以及建立可執行的shell script,讓伺服器能持續運作。
Thumbnail
2025/04/10
本文介紹如何將蘋果iMac mini作為CP值最高的人工智慧程式設計伺服器,搭配 iPad 進行遠端程式設計工作。文章說明瞭啟動遠端服務、連接SSH伺服器、使用外接硬碟及連接FTP伺服器等步驟,並推薦了相關應用 app。
Thumbnail
2025/04/10
本文介紹如何將蘋果iMac mini作為CP值最高的人工智慧程式設計伺服器,搭配 iPad 進行遠端程式設計工作。文章說明瞭啟動遠端服務、連接SSH伺服器、使用外接硬碟及連接FTP伺服器等步驟,並推薦了相關應用 app。
Thumbnail
看更多
你可能也想看
Thumbnail
賽勒布倫尼科夫以流亡處境回望蘇聯電影導演帕拉贊諾夫的舞台作品,以十段寓言式殘篇,重新拼貼記憶、暴力與美學,並將審查、政治犯、戰爭陰影與「形式即政治」的劇場傳統推到台前。本文聚焦於《傳奇:帕拉贊諾夫的十段殘篇》的舞台美術、音樂與多重扮演策略,嘗試解析極權底下不可言說之事,將如何成為可被觀看的公共發聲。
Thumbnail
賽勒布倫尼科夫以流亡處境回望蘇聯電影導演帕拉贊諾夫的舞台作品,以十段寓言式殘篇,重新拼貼記憶、暴力與美學,並將審查、政治犯、戰爭陰影與「形式即政治」的劇場傳統推到台前。本文聚焦於《傳奇:帕拉贊諾夫的十段殘篇》的舞台美術、音樂與多重扮演策略,嘗試解析極權底下不可言說之事,將如何成為可被觀看的公共發聲。
Thumbnail
柏林劇團在 2026 北藝嚴選,再次帶來由布萊希特改編的經典劇目《三便士歌劇》(The Threepenny Opera),導演巴里・柯斯基以舞台結構與舞台調度,重新向「疏離」進行提問。本文將從觀眾慾望作為戲劇內核,藉由沉浸與疏離的辯證,解析此作如何再次照見觀眾自身的位置。
Thumbnail
柏林劇團在 2026 北藝嚴選,再次帶來由布萊希特改編的經典劇目《三便士歌劇》(The Threepenny Opera),導演巴里・柯斯基以舞台結構與舞台調度,重新向「疏離」進行提問。本文將從觀眾慾望作為戲劇內核,藉由沉浸與疏離的辯證,解析此作如何再次照見觀眾自身的位置。
Thumbnail
本文深入解析臺灣劇團「晃晃跨幅町」對易卜生經典劇作《海妲.蓋柏樂》的詮釋,從劇本歷史、聲響與舞臺設計,到演員的主體創作方法,探討此版本如何讓經典劇作在當代劇場語境下煥發新生,滿足現代觀眾的觀看慾望。
Thumbnail
本文深入解析臺灣劇團「晃晃跨幅町」對易卜生經典劇作《海妲.蓋柏樂》的詮釋,從劇本歷史、聲響與舞臺設計,到演員的主體創作方法,探討此版本如何讓經典劇作在當代劇場語境下煥發新生,滿足現代觀眾的觀看慾望。
Thumbnail
《轉轉生》為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,融合舞蹈、音樂、時尚和視覺藝術,透過身體、服裝與群舞結構,回應殖民歷史、城市經驗與祖靈記憶的交錯。本文將從服裝設計、身體語彙與「輪迴」的「誕生—死亡—重生」結構出發,分析《轉轉生》如何以當代目光,形塑去殖民視角的奈及利亞歷史。
Thumbnail
《轉轉生》為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,融合舞蹈、音樂、時尚和視覺藝術,透過身體、服裝與群舞結構,回應殖民歷史、城市經驗與祖靈記憶的交錯。本文將從服裝設計、身體語彙與「輪迴」的「誕生—死亡—重生」結構出發,分析《轉轉生》如何以當代目光,形塑去殖民視角的奈及利亞歷史。
Thumbnail
本文說明在安裝實體具有多核 GPU 的環境下,可以透過 Python 「多執行緒的」程式,讓 CPU 及 GPU 依照特性,各自同時進行運算,得到最好的算力配置。
Thumbnail
本文說明在安裝實體具有多核 GPU 的環境下,可以透過 Python 「多執行緒的」程式,讓 CPU 及 GPU 依照特性,各自同時進行運算,得到最好的算力配置。
Thumbnail
本文介紹如何在 nVidia Jetson Orin Nano 裝置上安裝 PyTorch,並運用其 Python 及 CUDA 環境進行機器學習和人工智慧的開發。提供詳細步驟。適合希望在該平臺上開展研究與開發的使用者。
Thumbnail
本文介紹如何在 nVidia Jetson Orin Nano 裝置上安裝 PyTorch,並運用其 Python 及 CUDA 環境進行機器學習和人工智慧的開發。提供詳細步驟。適合希望在該平臺上開展研究與開發的使用者。
Thumbnail
輝達的 Jetson Orin Nano 是一款小型、平價但功能強大的電腦,擁有完整的平行運算與人工智慧能力;對學術或教學用途非常適合。本文將介紹如何安裝 Python 和 CUDA 環境,並探討其在遠端伺服器替代方案的優勢,是學習與研究 AI 和平行運算的理想選擇。
Thumbnail
輝達的 Jetson Orin Nano 是一款小型、平價但功能強大的電腦,擁有完整的平行運算與人工智慧能力;對學術或教學用途非常適合。本文將介紹如何安裝 Python 和 CUDA 環境,並探討其在遠端伺服器替代方案的優勢,是學習與研究 AI 和平行運算的理想選擇。
Thumbnail
要使用 CUDA(Compute Unified Device Architecture)來加速計算,首先需要在你的系統上設置和安裝相關的工具。CUDA 是由 NVIDIA 開發的平行計算框架,用於加速大量數據的運算,尤其在圖像處理、機器學習、科學計算等領域很有應用。 可以參考官方的安裝方式 以
Thumbnail
要使用 CUDA(Compute Unified Device Architecture)來加速計算,首先需要在你的系統上設置和安裝相關的工具。CUDA 是由 NVIDIA 開發的平行計算框架,用於加速大量數據的運算,尤其在圖像處理、機器學習、科學計算等領域很有應用。 可以參考官方的安裝方式 以
Thumbnail
PyTorch 是一個開源的 Python 機器學習庫,基於 Torch 庫,底層由 C++ 實現,應用於人工智慧領域,如電腦視覺和自然語言處理等。 PyTorch 2.4 引入了多項新功能和改進,包括支援 Python 3.12、AOTInductor 凍結功能、新的高階 Python 自訂運算
Thumbnail
PyTorch 是一個開源的 Python 機器學習庫,基於 Torch 庫,底層由 C++ 實現,應用於人工智慧領域,如電腦視覺和自然語言處理等。 PyTorch 2.4 引入了多項新功能和改進,包括支援 Python 3.12、AOTInductor 凍結功能、新的高階 Python 自訂運算
Thumbnail
NVIDIA、Intel、Tenstorrent和RISC-V在AI半導體領域的競爭和合作。Intel在AI領域推出了一系列產品,Tenstorrent和Rapidus合作開發新技術,而RISC-V開放源碼指令集架構也受到了廣泛關注。這些內容都展示了AI半導體市場的技術革新和競爭激烈的情況。
Thumbnail
NVIDIA、Intel、Tenstorrent和RISC-V在AI半導體領域的競爭和合作。Intel在AI領域推出了一系列產品,Tenstorrent和Rapidus合作開發新技術,而RISC-V開放源碼指令集架構也受到了廣泛關注。這些內容都展示了AI半導體市場的技術革新和競爭激烈的情況。
Thumbnail
這篇文章探討了NVIDIA在推論式AI半導體市場的挑戰,以及介紹了Intel在AI領域的強化舉措。文章中提到了新興企業可能有機會取代現有市場領導者,並討論了RISC-V技術在AI半導體市場的應用和其他相關動向。
Thumbnail
這篇文章探討了NVIDIA在推論式AI半導體市場的挑戰,以及介紹了Intel在AI領域的強化舉措。文章中提到了新興企業可能有機會取代現有市場領導者,並討論了RISC-V技術在AI半導體市場的應用和其他相關動向。
Thumbnail
我們已經介紹過關於Transformer模型的平台「【Hugging Face】Ep.1 平凡人也能玩的起的AI平台」,而操作的過程中相信也會有不少玩家會遇到這樣的狀況,因此將遇到的問題整理並分享解決方法,讓需要的朋友可以參考一下。 問題 Input type (torch.FloatTen
Thumbnail
我們已經介紹過關於Transformer模型的平台「【Hugging Face】Ep.1 平凡人也能玩的起的AI平台」,而操作的過程中相信也會有不少玩家會遇到這樣的狀況,因此將遇到的問題整理並分享解決方法,讓需要的朋友可以參考一下。 問題 Input type (torch.FloatTen
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News