利用 iMac Mini M4 晶片撰寫 GPU 程式

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

蘋果的 M 系列晶片採用所謂的「統一記憶體架構 (Unified Memory Architecture, UMA)」,與一般我們在NVIDIA CUDA 常搭配使用的獨立顯示卡記憶體架構之間有所不同。主要的差異在於記憶體的物理位置 以及 CPU 與 GPU 如何存取這些記憶體。蘋果是將 CPU、GPU、神經網路引擎 (Neural Engine) 等處理單元都整合在同一個 SoC (System on a Chip) 晶片上。它們共享同一塊物理記憶體池。記憶體存取: CPU 和 GPU 可以直接存取相同的物理記憶體位址,不需要將資料從一個記憶體區域複製到另一個區域;這樣的作法在單晶片中 CPU 以及 GPU 的資料傳輸簡單而且快速;方便在小規模的人工智慧程式開發上意外地有效。在程式上,也可以透過 pyTorch 來撰寫蘋果的 GPU 程式。

  • 建立測試執行緒

首先先定義兩個執行緒,分別各自在 CPU 以及 CPU 上來執行。

import torch
import numpy as np
import time
import threading
import warnings

#-----------------------
# 定義在 CPU 執行的執行緒
class cpuThread(threading.Thread):
def __init__(self, x,y,count):
threading.Thread.__init__(self)
self.x=x
self.y=y
self.ans=x
self.count=count
def run(self):
for i in range(self.count):
self.ans=np.matmul(self.x,self.y)
# 定義在 GPU 執行的執行緒
class gpuThread(threading.Thread):
def __init__(self, x,y,count):
threading.Thread.__init__(self)
self.x=x
self.y=y
self.count=count
self.ans=x
def run(self):
for i in range(self.count):
self.ans=torch.matmul(self.x,self.y)
#-----------------------
  • 指定執行的 CPU 及 GPU

接下來,先建立要用來測試的資料,分別放在 CPU 以及透過 PyTorch 的「device('mps')」指令,指定到 GPU。


device = torch.device('mps')
print('GPU count:',torch.mps.device_count())

# 創建執行緒物件
# 起始在 CPUGPU 的亂數矩陣
np.random.seed(13)
matrixA=np.random.rand(10000,10000).astype('float32')
matrixB=np.random.rand(10000,10000).astype('float32')
tensorA=torch.tensor(matrixA).to(device)
tensorB=torch.tensor(matrixB).to(device)
#-----------------------
  • 進行測試

然後,我們就可以來測試看看,在蘋果的 iMac Mini M4 晶片上,透過「pyTorch」執行 CPU 及以 GPU 的效果。


#-----------------------
# 單獨 CPU 計算時間
beginTime=time.time()
runCPU=cpuThread(matrixA,matrixB,10)
runCPU.start()
runCPU.join()
print('CPU execution time:',time.time()-beginTime)
#-----------------------
# 單獨 GPU 計算時間
beginTime=time.time()
runGPU=gpuThread(tensorA,tensorB,10)
runGPU.start()
runGPU.join()
torch.mps.synchronize() # 等所有 GPU 都計算完畢
print('GPU execution time:',time.time()-beginTime)
iMac mini M4 的執行結果

iMac mini M4 的執行結果


執行的結果,單純的矩陣相乘運算;GPU 大概可以比 CPU 快了四倍;當然,這中間還有「pyTorch」程式庫可以再優化的空間。不過相較於價格相近同樣是單晶片架構的 nVidia Jetson Orin 來說,這樣的速度真的已經非常驚人了,大約相差了五倍;在教學和工程研究上,真的是太值得了。

nVidia Jetson Orin 的執行結果

nVidia Jetson Orin 的執行結果



留言
avatar-img
甘果的沙龍
12會員
39內容數
作者從國內主要的半導體公司退休,重回校園教學研究;開始第三人生。分享退休投資規劃、科技產業經驗以及校園學習點滴。
甘果的沙龍的其他內容
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
筆記-2024.03.16-曲博 財訊訪談-談ARM *處理器的兩種架構: 精簡指令集RISC 複雜指令集CISC, *CPU為複雜指令集,運算能力較強,缺點是較耗電。 *ARM,為精簡指令集,運算效能較差,但較省電,屬於微處理器(MPU)。 *英特爾稱霸電腦用CPU, 然而手機較看重
Thumbnail
筆記-2024.03.16-曲博 財訊訪談-談ARM *處理器的兩種架構: 精簡指令集RISC 複雜指令集CISC, *CPU為複雜指令集,運算能力較強,缺點是較耗電。 *ARM,為精簡指令集,運算效能較差,但較省電,屬於微處理器(MPU)。 *英特爾稱霸電腦用CPU, 然而手機較看重
Thumbnail
本文章介紹了CPU架構的三大類型:ARM、x86和RISC-V。著重介紹了它們的特點和市場應用情況,並提到了Nvidia採用RISC-V架構的發展經過,以及ISA的定義和重要性。
Thumbnail
本文章介紹了CPU架構的三大類型:ARM、x86和RISC-V。著重介紹了它們的特點和市場應用情況,並提到了Nvidia採用RISC-V架構的發展經過,以及ISA的定義和重要性。
Thumbnail
NVIDIA的新目標是成為支援企業開發AI應用程式的「AI晶圓代工」,提供技術、專業知識和基礎設施,幫助實現AI應用。具體而言,NVIDIA將提供GPU、自主CPU「Grace」、超級計算機及其硬體,還有軟體和工具,以滿足客戶需求。
Thumbnail
NVIDIA的新目標是成為支援企業開發AI應用程式的「AI晶圓代工」,提供技術、專業知識和基礎設施,幫助實現AI應用。具體而言,NVIDIA將提供GPU、自主CPU「Grace」、超級計算機及其硬體,還有軟體和工具,以滿足客戶需求。
Thumbnail
瞭解IC和IP的區別、晶圓代工的角色,以及芯粒和小晶片對半導體製造的影響。此外,探討了人工智慧對電子設計的影響。
Thumbnail
瞭解IC和IP的區別、晶圓代工的角色,以及芯粒和小晶片對半導體製造的影響。此外,探討了人工智慧對電子設計的影響。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
NVIDIA在人工智慧處理專用GPU領域的地位牢固,但面臨著來自英特爾和超微半導體等競爭對手的反擊。新興企業也加入競爭,使得競爭更加激烈。未來,合作關係將變得至關重要,NVIDIA和其他競爭對手在激烈的競爭中脫穎而出的關鍵。
Thumbnail
NVIDIA在人工智慧處理專用GPU領域的地位牢固,但面臨著來自英特爾和超微半導體等競爭對手的反擊。新興企業也加入競爭,使得競爭更加激烈。未來,合作關係將變得至關重要,NVIDIA和其他競爭對手在激烈的競爭中脫穎而出的關鍵。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
蘋果M系列晶片採用統一記憶體架構 (UMA),不同於NVIDIA CUDA常用的獨立顯示卡記憶體架構。本文以PyTorch 撰寫測試M4晶片CPU和GPU矩陣運算效能程式,結果顯示不管GPU或是CPU的結果,運算效能驚人,非常適合教學及小型研究用途。
Thumbnail
蘋果M系列晶片採用統一記憶體架構 (UMA),不同於NVIDIA CUDA常用的獨立顯示卡記憶體架構。本文以PyTorch 撰寫測試M4晶片CPU和GPU矩陣運算效能程式,結果顯示不管GPU或是CPU的結果,運算效能驚人,非常適合教學及小型研究用途。
Thumbnail
NVIDIA(英偉達)作為全球領先的圖形處理器(GPU)製造商,不僅在遊戲市場佔有重要地位,還在專業圖形和高性能計算領域擁有強大的產品線。
Thumbnail
NVIDIA(英偉達)作為全球領先的圖形處理器(GPU)製造商,不僅在遊戲市場佔有重要地位,還在專業圖形和高性能計算領域擁有強大的產品線。
Thumbnail
AI PC 硬體 + AI OS + AI PC 摘要
Thumbnail
AI PC 硬體 + AI OS + AI PC 摘要
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News