GPU層次結構(Nvidia和Apple M芯片,從硬件到pytorch)

這里寫目錄標題

  • 0、驅動pytorch環境安裝驗證
    • 1.window環境
    • 2.Mac Apple M芯片環境
  • 1、Nvidia顯卡驅動、CUDA、cuDNN關系
    • 匯總1
      • **1. Nvidia顯卡驅動(Graphics Driver)**
      • **2. CUDA(Compute Unified Device Architecture)**
      • **3. cuDNN(CUDA Deep Neural Network library)**
      • **三者關系總結**
      • **版本兼容性注意事項**
      • **典型應用場景**
    • 匯總2
  • 2、Apple的M系列芯片和Nvidia顯卡驅動、CUDA、cuDNN對應關系
    • 匯總2.1
      • ?? 1. **核心對應關系**
      • 💾 2. **顯存管理的核心差異**
      • 🛠? 3. **安裝與配置方式**
      • ? 4. **性能對比**
      • 💎 5. **總結:使用建議**
    • 匯總2.2
      • **1. Nvidia顯卡驅動 → Metal框架 + 系統內置驅動**
      • **2. CUDA → Metal Performance Shaders (MPS) + ML Compute**
      • **3. cuDNN → Core ML + Neural Engine + Accelerate框架**
      • **4. PyTorch → PyTorch + MPS + Core ML**
      • **四者關系總結**
      • **關鍵注意事項**
      • **典型應用流程**
  • 3、window Nvidia和Mac M系列芯片分別的gpu結構層次(從硬件到pytorch)
    • 匯總3.1
      • 🖥? **一、Windows(NVIDIA GPU)技術棧**
      • 🍎 **二、Apple M系列芯片技術棧**
      • ? **三、關鍵差異對比**
      • 🛠? **四、開發建議**
        • **Windows場景(高性能需求)**
        • **macOS場景(輕量級/能效優先)**
      • 💎 **總結**
    • 匯總3.2
      • **一、Windows(以NVIDIA顯卡為例)**
        • **1. 硬件層**
        • **2. 驅動與底層框架**
        • **3. 深度學習框架(如 PyTorch)**
        • **4. 生態工具鏈**
      • **二、Mac M系列芯片(Apple Silicon)**
        • **1. 硬件層**
        • **2. 驅動與底層框架**
        • **3. 深度學習框架適配**
        • **4. 生態工具鏈**
      • **三、核心對比總結**
      • **四、使用建議**
  • 4、Apple的M系列芯片gpu結構層次(從硬件到pytorch)
    • 匯總4.1
      • ?? **一、硬件層:統一內存架構與GPU設計**
      • 🛠? **二、系統層:Metal API與MPS**
      • 🧠 **三、框架層:PyTorch MPS后端**
      • ? **四、應用層:性能表現與優化策略**
      • 💎 **總結:技術棧全景圖**
    • 匯總4.2
      • **一、硬件層:M系列GPU的物理架構**
        • 1. **統一內存架構(Unified Memory)**
        • 2. **GPU計算單元**
        • 3. **與Nvidia GPU的關鍵差異**
      • **二、系統層:Metal框架與驅動交互**
        • 1. **Metal框架(底層API)**
        • 2. **系統驅動與優化**
      • **三、中間層:高性能計算庫(MPS/ML Compute)**
        • 1. **Metal Performance Shaders (MPS)**
        • 2. **ML Compute**
      • **四、框架層:PyTorch在M系列芯片的運行路徑**
        • 1. **PyTorch的MPS后端架構**
        • 2. **與Core ML/神經引擎的協同**
        • 3. **限制與挑戰**
      • **五、層次結構總結:數據流與控制流**
      • **六、優化建議與最佳實踐**

0、驅動pytorch環境安裝驗證

1.window環境

Nvidia顯卡驅動、CUDA、cuDNN安裝參考:https://blog.csdn.net/weixin_44986037/article/details/132221693

驗證:

  1. TensorFlow
    pip install -i https://mirrors.aliyun.com/pypi/simple tensorflow

    #(2)查看cuda是否可用
    import tensorflow as tf
    print(tf.test.is_gpu_available())#如果結果是True,表示GPU可用
    
  2. pytorch
    pip3 install torch torchvision torchaudio

    import torch
    print(torch.__version__)
    print(torch.cuda.is_available())
    

    在這里插入圖片描述

2.Mac Apple M芯片環境

?? 1. 核心對應關系

NVIDIA生態組件Mac M系列芯片的替代方案說明
NVIDIA顯卡驅動macOS內置的GPU驅動(Metal API)M系列芯片的GPU驅動由蘋果直接集成在macOS中,無需用戶手動安裝或更新。
CUDAMetal API + MPS(Metal Performance Shaders)CUDA的并行計算功能由Metal框架實現,PyTorch的mps后端即基于Metal開發,提供類似CUDA的GPU加速接口。
cuDNNMPS Graph + ML Compute框架cuDNN的深度學習加速功能由蘋果的ML Compute(TensorFlow-macOS)和PyTorch的mps后端實現,優化了卷積、池化等操作。

💾 2. 顯存管理的核心差異

  • 統一內存架構:M系列芯片中CPU/GPU共享內存(如16GB內存即等效顯存),無需獨立顯存管理,避免了NVIDIA GPU的數據傳輸瓶頸。
  • 無需顯存拷貝:數據直接在統一內存中操作,減少cudaMemcpy類操作。
  • 優先M系列原生支持:無需配置NVIDIA生態,直接使用PyTorch/TensorFlow的MPS/ML Compute后端。

🛠? 3. 安裝與配置方式

  • 無需安裝驅動/CUDA/cuDNN
    只需通過Miniforge或Anaconda安裝PyTorch/TensorFlow的M系列適配版本:

    # PyTorch安裝(需1.12+)
    pip install torch torchvision torchaudio
    
  • 代碼啟用GPU加速
    PyTorch中使用mps設備:

    device = torch.device("mps" if torch.backends.mps.is_available() else "cpu")
    model.to(device)
    

    TensorFlow需使用tensorflow-macos并開啟ML Compute后端。

  • 驗證

    import torch# 檢查是否可以使用 Metal GPU
    print("Is Metal available?", torch.backends.mps.is_available())# 檢查 PyTorch 是否檢測到了 GPU
    device = torch.device("mps" if torch.backends.mps.is_available() else "cpu")
    print("Using device:", device)
    
    import torch
    print(f"PyTorch版本: {torch.__version__}")
    print(f"是否支持MPS: {torch.backends.mps.is_available()}")  # 應輸出True
    

驗證 GPU 可用性,運行以下 Python 代碼檢查 MPS 支持:

import torch# 1. 檢查 MPS 后端是否可用
print(f"MPS available: {torch.backends.mps.is_available()}")  # 應輸出 True
print(f"MPS built: {torch.backends.mps.is_built()}")         # 應輸出 True# 2. 測試 GPU 設備
device = torch.device("mps")
x = torch.randn(10000, 10000).to(device)  # 創建大張量并移至 MPS
y = x * x                                 # 執行 GPU 計算
print(f"張量計算完成: {y.mean().item()}")   # 輸出計算結果# 3. 驗證顯存分配
z = torch.ones(10000, 10000, device=device)
print(f"顯存占用: {z.element_size() * z.nelement() / 1024**2:.2f} MB") 

預期輸出:

MPS available: True
MPS built: True
張量計算完成: 0.9999998807907104
顯存占用: 762.94 MB

再就是在python代碼里將對應的cuda代碼修改為mps類別,主要包括以下這些:torch.cuda.is_available() #檢查cuda是否可用
device=torch.device('cuda:0' if (torch.cuda.is_available()) else 'cpu') #cuda非空閑時使用cpu
相應修改為:torch.backends.mps.is_available() #檢查mps是否可用
device=torch.device('mps' if (torch.backends.mps.is_available()) else 'cpu') #mps非空閑時使用cpu

獲取訓練設備(通用)
我們希望能夠在 加速器 上訓練我們的模型,例如 CUDA、MPS、MTIA 或 XPU。如果當前加速器可用,我們將使用它。否則,我們使用 CPU。

device = torch.accelerator.current_accelerator().type if torch.accelerator.is_available() else "cpu"
print(f"Using {device} device")

1、Nvidia顯卡驅動、CUDA、cuDNN關系

Nvidia顯卡驅動、CUDA和cuDNN是深度學習和GPU加速計算中緊密關聯的三個組件,它們的功能和關系如下:

匯總1

1. Nvidia顯卡驅動(Graphics Driver)

  • 作用
    顯卡驅動是連接操作系統(如Windows/Linux)和Nvidia顯卡硬件的底層軟件,負責管理GPU的基礎功能(如顯存分配、指令執行等)。
    沒有驅動,GPU無法被操作系統識別和使用

  • 關鍵特性

    • 提供對顯卡硬件的基礎支持,包括計算核心(CUDA Core)、顯存等資源的調度。
    • 需與顯卡型號兼容(如GeForce、RTX、Tesla系列),不同型號可能有特定驅動要求。
    • 可通過Nvidia官網單獨更新,驅動版本會影響對新CUDA功能的支持。

2. CUDA(Compute Unified Device Architecture)

  • 定位
    CUDA是Nvidia開發的并行計算平臺和編程模型,允許開發者使用C/C++、Python等語言編寫運行在GPU上的加速代碼。
    本質是一個軟件層,介于驅動和應用程序之間,屏蔽了底層硬件細節,簡化GPU編程。

  • 核心功能

    • 將CPU的串行計算任務分配到GPU的數千個并行核心(CUDA Core)上加速,適用于深度學習、科學計算、圖形渲染等場景。
    • 包含工具鏈(如編譯器nvcc)、庫(如CUDA數學庫)和運行時環境,支持動態內存管理、線程調度等。
  • 與驅動的關系

    • CUDA依賴顯卡驅動:安裝CUDA時,會自動檢查驅動版本是否兼容。
    • 每個CUDA版本對應最低驅動版本要求(如CUDA 12.0要求驅動版本≥525.89.02),需通過Nvidia官方文檔確認兼容性。

3. cuDNN(CUDA Deep Neural Network library)

  • 定位
    cuDNN是基于CUDA的深度學習加速庫,專門針對深度神經網絡(DNN)中的常見操作(如卷積、池化、歸一化、循環神經網絡等)提供高度優化的GPU實現。
    本質是CUDA之上的應用層庫,需與CUDA配合使用

  • 核心功能

    • 通過硬件感知的優化(如自動調優卷積算法)大幅提升DNN訓練和推理速度。
    • 是深度學習框架(如TensorFlow、PyTorch、Caffe)調用GPU加速的關鍵組件,框架通常會內置對cuDNN的支持。
  • 依賴關系

    • cuDNN依賴CUDA版本:每個cuDNN版本對應特定的CUDA版本(如cuDNN 8.9.6支持CUDA 12.2/12.1/12.0),需從Nvidia官網下載匹配的版本。
    • 不直接依賴顯卡驅動,但驅動需滿足對應CUDA版本的要求。

三者關系總結

組件功能層級依賴關系典型安裝順序
顯卡驅動硬件抽象層無(需與顯卡型號兼容)第一步安裝
CUDA計算平臺層依賴顯卡驅動(最低版本要求)第二步安裝
cuDNN應用加速庫層依賴CUDA版本最后安裝(按需)

版本兼容性注意事項

  1. 驅動與CUDA的兼容

    • 若驅動版本低于CUDA要求,需升級驅動(可通過Nvidia官網或GeForce Experience更新)。
    • 示例:CUDA 11.8要求驅動版本≥522.25,若驅動為510.x,則無法安裝CUDA 11.8。
  2. cuDNN與CUDA的兼容

    • 必須下載與CUDA版本完全匹配的cuDNN庫(如CUDA 12.0對應cuDNN 8.9.6),否則會導致程序運行錯誤(如“找不到庫文件”或“版本不匹配”)。
    • 深度學習框架(如PyTorch)通常會指定支持的CUDA和cuDNN版本,需參考框架文檔(如PyTorch安裝指南)。
  3. 跨版本兼容性

    • 高版本CUDA通常兼容低版本驅動(需滿足最低要求),但低版本CUDA可能不支持新顯卡(如RTX 40系列需驅動≥516.94)。
    • cuDNN一般向下兼容(如cuDNN 8.9.6可用于CUDA 12.0/12.1/12.2),但需以官方說明為準。

典型應用場景

當使用深度學習框架進行GPU加速時:

  1. 顯卡驅動確保GPU硬件可用;
  2. CUDA提供GPU計算的編程接口和運行時環境;
  3. cuDNN對框架中的神經網絡操作進行底層優化,三者缺一不可。

示例流程
安裝驅動 → 安裝CUDA Toolkit → 下載對應版本的cuDNN庫并復制到CUDA目錄 → 配置深度學習框架(如PyTorch)調用CUDA和cuDNN。

通過合理管理三者的版本兼容性,可充分發揮Nvidia GPU的加速性能,避免環境配置問題。

匯總2

Nvidia 顯卡驅動、CUDA Toolkit 和 cuDNN 是構建 GPU 加速計算環境(尤其是深度學習)的三個核心且緊密相關的組件。它們之間的關系可以用一個層級依賴功能分工的模型來描述:

  1. Nvidia 顯卡驅動 (Graphics Driver):

    • 角色: 最底層的基礎。它是操作系統與物理 NVIDIA GPU 硬件通信的橋梁。
    • 功能: 負責基本的圖形顯示功能(讓顯示器正常工作)、管理 GPU 資源(如顯存、核心)、提供底層硬件訪問接口。
    • 依賴關系: 沒有它,操作系統無法識別和使用 GPU。它是 CUDA Toolkit 能夠工作的前提
    • 版本: 通常需要足夠新以支持你打算安裝的 CUDA Toolkit 版本。nvidia-smi 命令顯示的驅動版本決定了該驅動支持的最高 CUDA 版本。驅動可以向下兼容支持更低的 CUDA 版本。
  2. CUDA Toolkit:

    • 角色: 建立在驅動程序之上的核心計算平臺和編程模型。
    • 功能:
      • 提供 CUDA C/C++ 編譯器 (nvcc)
      • 提供 CUDA 運行時 API 和驅動 API,讓開發者能夠編寫利用 GPU 進行通用并行計算(GPGPU)的程序。
      • 包含豐富的GPU加速庫,涵蓋線性代數、快速傅里葉變換、隨機數生成等基本計算領域。
      • 包含工具集(如性能分析器 nvprof/nsight systems,調試器 cuda-gdb)。
      • 提供頭文件和庫文件,供開發編譯使用。
    • 依賴關系: 必須安裝在滿足版本要求的 Nvidia 顯卡驅動之上。CUDA Toolkit 的安裝包通常包含一個最低版本要求的驅動,但強烈建議單獨安裝更新的官方驅動。
    • 版本: 深度學習框架通常對支持的 CUDA Toolkit 主版本有明確要求(如 PyTorch 2.0 支持 CUDA 11.7 和 11.8)。主版本(如 11.x, 12.x)的兼容性很重要。
  3. cuDNN (CUDA Deep Neural Network library):

    • 角色: 位于 CUDA Toolkit 之上的一個高度優化的深度學習 GPU 加速庫
    • 功能: 專門為深度神經網絡中的核心操作提供 GPU 加速實現:
      • 卷積 (Convolution)
      • 池化 (Pooling)
      • 激活函數 (Activation Functions)
      • 歸一化 (Normalization)
      • 張量變換 (Tensor Transform)
    • 依賴關系:
      • 必須嚴格依賴特定版本的 CUDA Toolkit。 cuDNN 是針對特定 CUDA 版本編譯優化的。例如,cuDNN v8.9.0 for CUDA 12.x 必須搭配 CUDA 12.0 或 12.1 等 12.x 版本使用,不能用于 CUDA 11.x。
      • 間接依賴 Nvidia 顯卡驅動(因為 CUDA 依賴驅動)。
    • 版本: 深度學習框架通常對支持的 cuDNN 版本也有明確要求,并且這個要求與其支持的 CUDA 版本緊密綁定。cuDNN 的版本號(如 8.x.x)獨立于 CUDA 版本號。

總結它們的關系:

  1. 層級結構: 硬件 (GPU) <- Nvidia 顯卡驅動 <- CUDA Toolkit <- cuDNN <- 深度學習框架 (TensorFlow, PyTorch等) <- 你的AI應用
  2. 功能分工:
    • 驅動讓系統認識并使用 GPU。
    • CUDA 提供通用的 GPU 并行計算能力(編程模型、編譯器、基礎庫)。
    • cuDNN 在 CUDA 的基礎上,針對深度神經網絡的關鍵操作提供了極致優化的實現。
  3. 依賴關系:
    • 驅動是 CUDA 的基礎依賴(版本需匹配)。
    • CUDA 是 cuDNN 的嚴格基礎依賴(主版本必須精確匹配)。
    • cuDNN 是深度學習框架在 NVIDIA GPU 上獲得高性能的關鍵依賴
  4. 版本兼容性: 這是配置環境時的核心挑戰。你需要確保:
    • 驅動版本 >= CUDA Toolkit 要求的最低版本(通常建議用較新的驅動)。
    • CUDA Toolkit 主版本 (e.g., 11.x, 12.x) 必須與深度學習框架要求的版本兼容。
    • cuDNN 版本必須精確匹配你所安裝的 CUDA Toolkit 的主版本(例如 CUDA 12.x 必須用 for CUDA 12.x 的 cuDNN),并且通常也需要滿足深度學習框架的要求。

類比:

  • 把 GPU 想象成一個強大的發動機(硬件)。
  • 顯卡驅動 就像發動機的啟動鑰匙和基本控制系統(讓發動機能轉起來)。
  • CUDA Toolkit 就像一套完整的汽車工程套件:方向盤、變速箱、油門剎車踏板、儀表盤、維修工具等(提供駕駛/控制發動機進行通用工作的能力)。
  • cuDNN 就像專門為賽車(深度學習)設計的頂級優化部件:高效渦輪增壓器、空氣動力學套件、賽道專用輪胎(在通用駕駛能力基礎上,針對賽車場景提供極致性能提升)。

安裝建議:

  1. 安裝或更新到最新穩定版Nvidia 顯卡驅動。(從 NVIDIA 官網下載)
  2. 根據你要使用的深度學習框架官方文檔的要求,確定需要的 CUDA Toolkit 主版本 (如 11.8, 12.1)。
  3. 安裝對應主版本的 CUDA Toolkit。(從 NVIDIA 官網下載,注意安裝時可以選擇不安裝其捆綁的驅動,如果已安裝更新驅動)。
  4. 根據深度學習框架的要求和你安裝的 CUDA 版本,下載并安裝對應的 cuDNN 版本。(從 NVIDIA 官網下載,需要注冊開發者賬號)。將 cuDNN 的文件(bin, include, lib)復制到 CUDA Toolkit 的對應目錄下。

驗證:

  • nvidia-smi: 檢查驅動是否正確安裝,顯示 GPU 狀態和驅動版本/CUDA 版本(這個 CUDA 版本是驅動支持的最高版本)。
  • nvcc --version: 檢查 CUDA 編譯器 (nvcc) 版本,確認 CUDA Toolkit 安裝。
  • 深度學習框架通常提供檢查 CUDA/cuDNN 是否可用的函數 (如 torch.cuda.is_available())。

理解這三者的關系和嚴格的版本依賴是成功配置 GPU 深度學習開發環境的關鍵一步。

2、Apple的M系列芯片和Nvidia顯卡驅動、CUDA、cuDNN對應關系

Nvidia顯卡驅動、CUDA、cuDNN分別對應mac Apple的M系列芯片什么?

匯總2.1

在蘋果M系列芯片(M1/M2/M3等)的Mac設備上,NVIDIA顯卡驅動、CUDA和cuDNN的生態并不適用,因為M系列芯片采用自研的ARM架構集成GPU,其加速框架與NVIDIA完全不同。以下是它們的對應關系及替代方案:


?? 1. 核心對應關系

NVIDIA生態組件Mac M系列芯片的替代方案說明
NVIDIA顯卡驅動macOS內置的GPU驅動(Metal API)M系列芯片的GPU驅動由蘋果直接集成在macOS中,無需用戶手動安裝或更新。
CUDAMetal API + MPS(Metal Performance Shaders)CUDA的并行計算功能由Metal框架實現,PyTorch的mps后端即基于Metal開發,提供類似CUDA的GPU加速接口。
cuDNNMPS Graph + ML Compute框架cuDNN的深度學習加速功能由蘋果的ML Compute(TensorFlow-macOS)和PyTorch的mps后端實現,優化了卷積、池化等操作。

💾 2. 顯存管理的核心差異

  • 統一內存架構:M系列芯片中CPU/GPU共享內存(如16GB內存即等效顯存),無需獨立顯存管理,避免了NVIDIA GPU的數據傳輸瓶頸。
  • 無需顯存拷貝:數據直接在統一內存中操作,減少cudaMemcpy類操作。

🛠? 3. 安裝與配置方式

  • 無需安裝驅動/CUDA/cuDNN
    只需通過Miniforge或Anaconda安裝PyTorch/TensorFlow的M系列適配版本:
    # PyTorch安裝(需1.12+)
    pip install torch torchvision torchaudio
    
  • 代碼啟用GPU加速
    PyTorch中使用mps設備:
    device = torch.device("mps" if torch.backends.mps.is_available() else "cpu")
    model.to(device)
    
    TensorFlow需使用tensorflow-macos并開啟ML Compute后端。

? 4. 性能對比

  • 加速效果:官方測試顯示,M1芯片相比CPU訓練平均提速5-7倍,接近NVIDIA中端GPU(如GTX 1650)水平。
  • 瓶頸:大規模模型(如LLM)受統一內存容量限制(如8GB內存可能不足),建議16GB以上機型使用。

💎 5. 總結:使用建議

  • 優先M系列原生支持:無需配置NVIDIA生態,直接使用PyTorch/TensorFlow的MPS/ML Compute后端。
  • 開發環境:推薦Miniforge(兼容ARM架構),避免x86環境問題。
  • 設備選擇
    • 輕量任務:MacBook Air(M2/M3,16GB+內存)
    • 專業負載:MacBook Pro/Mac Studio(M2 Max/Ultra,32GB+內存)。

💡 注意:若需使用NVIDIA顯卡(如外接eGPU),Mac自2019年后已停止官方驅動支持,僅老款Intel芯片Mac可通過Boot Camp運行Windows驅動。

匯總2.2

在Apple M系列芯片(如M1、M2、M3)的生態中,Nvidia顯卡驅動、CUDA、cuDNN、PyTorch的功能由以下組件替代:

1. Nvidia顯卡驅動 → Metal框架 + 系統內置驅動

  • Nvidia驅動的作用
    管理GPU硬件資源,提供基礎計算能力。

  • 蘋果的替代方案

    • Metal框架:蘋果自研的底層圖形和計算API,直接與M系列芯片的GPU交互,支持高效并行計算。
    • 系統內置驅動:macOS自動集成M系列芯片的GPU驅動,無需手動安裝,通過Metal隱式調用硬件資源。
  • 核心差異

    • 蘋果的GPU(如M3的10核GPU)與CPU、神經引擎等集成在同一SoC中,驅動與系統深度綁定,無需單獨更新。
    • Metal提供類似CUDA的底層控制能力,但編程接口更貼近圖形渲染,需通過MPS或第三方框架(如PyTorch)間接實現通用計算。

2. CUDA → Metal Performance Shaders (MPS) + ML Compute

  • CUDA的定位
    并行計算平臺和編程模型,允許開發者直接調用GPU加速。

  • 蘋果的替代方案

    • Metal Performance Shaders (MPS)
      基于Metal的高性能計算庫,專為機器學習設計,提供卷積、池化等神經網絡操作的優化實現,支持PyTorch、TensorFlow等框架作為后端加速。
      • 例如,PyTorch通過MPS后端將計算圖映射到M系列GPU,訓練速度比CPU提升7倍以上。
    • ML Compute
      蘋果提供的機器學習計算框架,支持在CPU和GPU上執行高效計算,可與Core ML結合優化模型推理。
  • 核心差異

    • 蘋果的計算生態更依賴框架集成(如PyTorch的MPS支持),而非獨立的編程模型。
    • MPS和ML Compute需通過Metal間接調用GPU,靈活性低于CUDA,但在特定場景(如圖像處理)優化更深入。

3. cuDNN → Core ML + Neural Engine + Accelerate框架

  • cuDNN的作用
    針對深度學習的高度優化庫,提供卷積、循環神經網絡等操作的硬件加速。

  • 蘋果的替代方案

    • Core ML
      蘋果的機器學習框架,支持將訓練好的模型轉換為Core ML格式,利用Metal和Neural Engine進行高效推理,尤其適合圖像、語音等任務。
      • 例如,Core ML可直接調用M4芯片的神經引擎,實現4K視頻實時物體分割。
    • Neural Engine(神經引擎)
      M系列芯片中的專用AI硬件,通過Core ML或ML Compute調用,提供高達38 TOPS的算力,專門處理Transformer、CNN等復雜模型。
    • Accelerate框架
      包含Basic Neural Network Subroutines (BNNS),支持在CPU上構建輕量級神經網絡,適用于簡單推理任務。
  • 核心差異

    • 蘋果的深度學習優化更依賴硬件(如Neural Engine)和框架集成(如Core ML),而非獨立庫。
    • 復雜模型需通過Core ML轉換并優化,且部分操作(如自定義算子)需通過MPS或Metal手動實現。

4. PyTorch → PyTorch + MPS + Core ML

  • PyTorch的定位
    基于CUDA的深度學習框架,依賴CUDA和cuDNN實現GPU加速。

  • 蘋果的替代方案

    • PyTorch原生支持MPS
      PyTorch從2.0版本開始原生支持MPS后端,通過torch.device("mps")指定使用M系列GPU加速,訓練速度比CPU提升約7倍。
      • 安裝命令:pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu(需安裝夜間版以獲得最新MPS支持)。
    • 與Core ML結合
      通過coremltools將PyTorch模型轉換為Core ML格式,利用Neural Engine進一步優化推理性能。例如,ChatGLM3-6B模型可通過MPS和Neural Engine實現高效本地運行。
    • 性能限制
      M系列芯片的GPU算力(如FP32性能)仍低于高端Nvidia顯卡,適合中小規模模型訓練和推理,復雜任務(如大語言模型)需依賴云GPU。
  • 核心差異

    • PyTorch在Mac上通過MPS調用GPU,無需CUDA和cuDNN,但需適配Metal和MPS的特性。
    • 自定義算子需通過MPS或Metal手動實現,開發門檻較高。

四者關系總結

組件功能層級蘋果對應方案典型應用場景
顯卡驅動硬件抽象層Metal框架 + 系統內置驅動管理GPU資源,提供底層計算接口
CUDA計算平臺層MPS + ML Compute并行計算、深度學習框架加速
cuDNN應用加速庫層Core ML + Neural Engine + Accelerate神經網絡優化、模型推理
PyTorch深度學習框架層PyTorch + MPS + Core ML模型訓練、推理、與蘋果生態集成

關鍵注意事項

  1. 生態差異

    • 蘋果的深度學習生態更封閉,依賴Core ML、MPS等官方工具,第三方框架(如PyTorch)需適配Metal和MPS。
    • 缺乏類似CUDA的開放編程模型,自定義算子需通過Metal或MPS手動實現,開發門檻較高。
  2. 性能權衡

    • M系列芯片的GPU和Neural Engine在能效比上表現優異,但絕對算力(如FP32性能)仍低于高端Nvidia顯卡,適合輕量級模型和移動端應用。
    • 復雜模型訓練(如大語言模型)仍需依賴云GPU,本地僅適合推理或微調。
  3. 版本兼容性

    • PyTorch需安裝適配MPS的版本(如夜間版),并確保macOS版本≥12.3。
    • Core ML模型需通過Xcode或coremltools轉換,且需與目標設備的Neural Engine版本兼容。

典型應用流程

  1. 模型開發

    • 使用PyTorch訓練模型,通過torch.device("mps")啟用GPU加速。
    • 導出模型為ONNX格式,再通過coremltools轉換為Core ML格式。
  2. 部署與加速

    • 在macOS或iOS應用中加載Core ML模型,自動調用Neural Engine加速推理(如實時圖像分類)。
    • 復雜計算(如自定義卷積)通過MPS編寫Metal Shader,集成到App中。
  3. 性能優化

    • 使用Instruments分析GPU和Neural Engine的利用率,調整模型結構或算子實現。
    • 利用MPS的自動調優功能(如動態緩存)提升計算效率。

通過合理使用蘋果的工具鏈和硬件特性,開發者可在M系列芯片上實現高效的機器學習應用,尤其適合注重隱私和能效的移動端場景。

3、window Nvidia和Mac M系列芯片分別的gpu結構層次(從硬件到pytorch)

window和macM系列芯片分別的gpu結構層次,從硬件到pytorch

匯總3.1

以下是Windows(搭載NVIDIA GPU)與Apple M系列芯片從硬件到PyTorch的GPU結構層次對比,通過分層解析揭示其核心差異與技術實現路徑:


🖥? 一、Windows(NVIDIA GPU)技術棧

層級核心組件功能與依賴關系
硬件層NVIDIA獨立GPU- 分離式顯存(GDDR6/GDDR6X)
- 專用Tensor Core/RT Core(如RTX 4090含16384 CUDA核心)
驅動層NVIDIA顯卡驅動- 管理GPU資源,提供CUDA支持
- 版本需匹配CUDA Toolkit(如Driver 535支持CUDA 12.2)
計算層CUDA Toolkit + cuDNN- CUDA:并行計算框架(nvcc編譯)
- cuDNN:深度學習加速庫(嚴格依賴CUDA版本)
框架層PyTorch with CUDA后端- 調用torch.cuda.is_available()啟用
- 自動利用cuDNN加速卷積/RNN等操作
應用層PyTorch模型訓練/推理- 數據需顯式遷移:.to("cuda")
- 支持多卡并行(DataParallel, DistributedDataParallel

代碼示例(Windows)

import torch
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = model.to(device)  # 數據與模型顯式遷移至GPU

🍎 二、Apple M系列芯片技術棧

層級核心組件功能與依賴關系
硬件層M系列集成GPU(SoC)- 統一內存架構(UMA),CPU/GPU共享內存池
- 多核設計(M3 Max達40核GPU)+ 16核神經引擎
驅動層macOS內置Metal驅動- 系統級GPU管理,無需手動安裝
- Metal API提供底層計算接口
計算層Metal Performance Shaders- MPS:將PyTorch操作編譯為Metal內核
- 動態優化內核適配不同M芯片
框架層PyTorch with MPS后端- 調用torch.backends.mps.is_available()啟用
- 語法兼容CUDA(.to("mps")
應用層PyTorch模型訓練/推理- 數據無需拷貝(UMA自動管理)
- 受內存容量限制(如48GB內存=最大“顯存”)

代碼示例(macOS)

import torch
device = torch.device("mps" if torch.backends.mps.is_available() else "cpu")
model = model.to(device)  # 遷移至MPS設備(無顯式數據拷貝)

? 三、關鍵差異對比

特性Windows + NVIDIAmacOS + M系列
顯存管理獨立顯存,需cudaMemcpy顯式拷貝數據統一內存,CPU/GPU零拷貝共享數據
安裝復雜度需手動安裝驅動+CUDA+cuDNN(版本嚴格匹配)無需額外安裝,系統原生支持
多卡并行原生支持多GPU訓練暫不支持多設備并行(單芯片內GPU核協同)
生態工具完善(Nsight, CUDA-GDB等)依賴Xcode Instruments基礎分析
極限性能高端顯卡(如RTX 4090)訓練速度更快M2 Ultra接近RTX 3090,但大模型受內存限制

🛠? 四、開發建議

Windows場景(高性能需求)
  1. 硬件選擇:RTX 4080/4090(16-24GB顯存)應對大模型
  2. 環境配置
    conda install pytorch torchvision cudatoolkit=11.8 -c pytorch
    
  3. 優化技巧
    • 使用torch.compile()加速模型(PyTorch 2.0+)
    • 混合精度訓練(amp.autocast()
macOS場景(輕量級/能效優先)
  1. 硬件選擇
    • 輕量任務:MacBook Air M2(16GB內存)
    • 專業負載:Mac Studio M2 Ultra(192GB內存)
  2. 環境配置
    pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/nightly/cpu
    
  3. 優化技巧
    • 最大化Batch Size利用UMA優勢
    • 避免自定義CUDA算子(需重寫Metal Shader)

💎 總結

  • 選Windows若:需要分布式訓練、超大模型(>70B參數)、CUDA生態工具鏈。
  • 選macOS若:追求靜音/能效比、移動開發、統一內存簡化編程(適合LLM微調/推理)。
  • 未來趨勢:Apple通過MLX框架(類似PyTorch的M芯片專用庫)進一步優化生態,但NVIDIA在絕對性能與生態成熟度上仍占優勢。

匯總3.2

以下是 Windows(基于NVIDIA顯卡)Mac M系列芯片(Apple Silicon) 的 GPU 結構層次對比,從硬件到 PyTorch 的軟件棧解析:

一、Windows(以NVIDIA顯卡為例)

1. 硬件層
  • GPU 芯片
    • 獨立顯卡(如 NVIDIA RTX 4090/3080 等),基于 CUDA 架構,包含大量 CUDA 核心、Tensor 核心(用于深度學習加速)和 RT 核心(光線追蹤)。
    • 關鍵特性:獨立顯存(VRAM),與 CPU 內存分離,通過 PCIe 總線通信。
2. 驅動與底層框架
  • 顯卡驅動
    • NVIDIA 官方驅動程序(如 GeForce Driver 或 Data Center Driver),負責操作系統與 GPU 的通信。
  • 計算框架
    • CUDA:NVIDIA 開發的并行計算架構,提供底層 API,允許開發者利用 GPU 進行通用計算(GPGPU)。
    • cuDNN:基于 CUDA 的深度學習庫,優化卷積、池化等神經網絡操作,需依賴 CUDA 運行。
3. 深度學習框架(如 PyTorch)
  • PyTorch 集成
    • 通過 CUDA API 調用 GPU,需安裝 PyTorch CUDA 版本(如 torch.cuda.is_available() 檢測支持)。
    • 流程:PyTorch 算子 → 調用 cuDNN/cuBLAS 等庫 → 通過 CUDA 驅動調度 GPU 核心執行計算。
4. 生態工具鏈
  • 支持 TensorRT(模型推理優化)、CUDA Toolkit(開發工具)、Nsight(調試分析)等。

二、Mac M系列芯片(Apple Silicon)

1. 硬件層
  • GPU 架構
    • 集成于 Apple M1/M2/M3 芯片的統一內存架構(Unified Memory),無獨立顯卡,GPU 核心與 CPU、NPU 共享內存。
    • 以 M3 Max 為例,含 128 核 Apple GPU,基于 Metal 架構,強調能效比和低延遲,但峰值算力低于高端 NVIDIA 顯卡。
2. 驅動與底層框架
  • 系統級支持
    • 無需單獨安裝顯卡驅動,macOS 內置 Metal 圖形框架,負責管理 GPU 資源(類似 Windows 的 DirectX,但更輕量)。
    • Metal Performance Shaders (MPS):Apple 提供的高性能計算庫,針對機器學習優化,支持矩陣運算、卷積等操作。
3. 深度學習框架適配
  • PyTorch 支持
    • 原生 Apple Silicon 版本:需安裝基于 CPU/GPU 通用框架的 PyTorch(通過 condapip 安裝時選擇 torch-nightly 或特定優化版本)。
    • 執行流程
      • PyTorch 算子 → 轉換為 Metal API 或通過 Torch-Metal 庫調用 MPS → 由 macOS 調度 GPU 核心執行。
      • 部分場景依賴 Core ML(蘋果機器學習框架)進行優化(如模型推理)。
    • 限制:不支持 CUDA/cuDNN,需依賴第三方庫(如 mpsutil)監控 GPU 使用,且復雜模型訓練性能可能低于 NVIDIA 顯卡。
4. 生態工具鏈
  • 支持 Core ML Tools(模型轉換)、Create ML(低代碼訓練),但深度學習開發生態不如 NVIDIA 完善(如缺少 TensorRT 等效工具)。

三、核心對比總結

維度Windows(NVIDIA)Mac M系列(Apple Silicon)
硬件架構獨立 GPU,CUDA 核心 + 獨立顯存集成 GPU,統一內存架構,Metal 核心
驅動與計算框架CUDA + cuDNN(需手動安裝驅動)Metal + MPS(系統內置,無獨立驅動)
PyTorch 支持原生 CUDA 支持,成熟穩定,支持 GPU 訓練/推理依賴 Metal/MPS,部分場景需特殊適配,訓練性能有限
開發門檻需配置 CUDA Toolkit、cuDNN 等開箱即用(PyTorch 自動適配),但生態工具較少
適用場景大規模深度學習訓練、科學計算、圖形渲染輕量級訓練、推理,或與 Core ML 結合的端側優化

四、使用建議

  1. Windows/NVIDIA 用戶
    • 適合需要高性能 GPU 訓練的場景(如 CV/NLP 大模型),需熟練掌握 CUDA 生態。
  2. Mac M系列用戶
    • 適合快速原型開發、輕量級推理或與 Apple 生態(如 iOS/macOS 應用)集成,建議使用 PyTorch Apple Silicon 版本或轉向 Core ML。
    • 若需高性能計算,可考慮搭配云服務器(如 AWS/GCP 的 NVIDIA 實例)。

通過以上對比,可清晰看到兩者在硬件架構和軟件棧上的本質差異,需根據具體需求選擇開發平臺。

4、Apple的M系列芯片gpu結構層次(從硬件到pytorch)

mac Apple的M系列芯片gpu結構層次,從硬件到pytorch

匯總4.1

Apple M系列芯片的GPU架構與PyTorch的整合是一個從硬件設計到軟件框架的深度協同體系。以下是其技術棧的完整層次解析:


?? 一、硬件層:統一內存架構與GPU設計

  1. 統一內存架構 (Unified Memory Architecture, UMA)
    • CPU、GPU、神經引擎共享物理內存池,消除傳統CPU-GPU間數據拷貝瓶頸,大幅降低延遲。
    • 顯存容量取決于整機內存(如16GB內存即等效顯存),支持更大Batch Size訓練。
  2. GPU核心架構
    • 多核設計:M1/M2基礎版為8核GPU,M1 Ultra達64核;M3系列升級至動態緩存技術,提升GPU利用率。
    • 浮點性能:M1 GPU達2.6 TFLOPS,M2 Ultra提升至約13.6 TFLOPS,接近中端NVIDIA GPU水平。
    • 專用單元:集成硬件加速的媒體引擎(ProRes編解碼)與神經引擎(16核,每秒11萬億次操作),優化AI任務。

🛠? 二、系統層:Metal API與MPS

  1. Metal 圖形/計算框架
    • 蘋果提供的底層API,直接管理GPU資源,支持并行計算與圖形渲染。
    • Metal 2引入機器學習加速能力,為PyTorch等框架提供基礎。
  2. Metal Performance Shaders (MPS)
    • 核心橋梁作用:將PyTorch張量操作映射為優化后的Metal內核(Kernel)。
    • 動態編譯優化:針對不同M系列GPU微調內核(如M1 Pro vs M3 Max),最大化硬件利用率。

🧠 三、框架層:PyTorch MPS后端

  1. PyTorch原生支持(v1.12+)
    • 通過torch.device("mps")啟用GPU加速,代碼兼容CUDA接口(如.to(device)遷移)。
    • 依賴特定組件:
      • macOS ≥ 12.3:確保Metal API完整性。
      • ARM64 Python環境:需通過Miniforge等安裝適配M芯片的Python發行版。
  2. 安裝與配置流程
    # 創建ARM64 Conda環境
    conda create -n pytorch_arm python=3.10
    pip install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu
    
    • 驗證安裝:torch.backends.mps.is_available()返回True即成功。

? 四、應用層:性能表現與優化策略

  1. 性能實測對比

    任務類型加速效果測試條件
    訓練(ResNet50)最高提升20倍 vs CPUM1 Ultra, batch=128
    推理(AlexNet)0.126s → 0.005s(提升25倍)M1 Pro
    小模型訓練2倍提速(如CIFAR-10)M1 Pro GPU vs CPU
    • 瓶頸場景:大規模Transformer模型受內存容量限制(需≥32GB內存)。
  2. 開發建議

    • 批處理優化:利用UMA優勢增大Batch Size,但避免超出內存上限。
    • 模型適配:部分自定義算子(如kornia)需重寫Metal內核。
    • 設備選擇:輕量任務選M2 Air(16GB+);專業負載選M3 Max/Ultra(36GB+內存)。

💎 總結:技術棧全景圖

層級核心組件功能與優化點
硬件層UMA + GPU多核消除數據拷貝,高并行計算
系統層Metal API + MPS提供GPU指令映射與內核優化
框架層PyTorch MPS后端兼容CUDA語法,無縫遷移代碼
應用層模型訓練/推理實測最高20倍加速,需注意內存限制

💡 注意事項:M系列芯片的GPU加速雖強,但生態成熟度仍落后CUDA。推薦場景:本地原型設計/微調輕量級模型部署;需避免場景:大規模分布式訓練依賴特定CUDA庫的模型(如cuDNN優化層)。長遠看,蘋果正通過持續升級Metal與MLX框架(專為M芯片設計的深度學習庫)逐步縮小差距。

匯總4.2

Apple M系列芯片(如M1/M2/M3)的GPU架構與傳統獨立顯卡(如Nvidia)有顯著差異,其設計更注重與CPU、神經引擎等組件的協同優化。以下是從硬件到PyTorch的完整層次結構解析,幫助理解數據和計算如何在M系列芯片上流動:

一、硬件層:M系列GPU的物理架構

1. 統一內存架構(Unified Memory)
  • 核心特點
    M系列芯片的CPU、GPU、神經引擎、顯示引擎共享同一內存池(如16GB/32GB統一內存),無需像獨立顯卡那樣通過PCIe傳輸數據,延遲降低90%以上,帶寬提升至數百GB/s(如M3 Max的800GB/s)。
  • 對PyTorch的影響
    • Tensor在CPU和GPU之間遷移時無需復制數據,直接通過指針引用,提升數據流轉效率。
    • 內存帶寬成為計算瓶頸的場景減少(如矩陣乘法),但復雜模型的顯存占用仍受限于統一內存總量。
2. GPU計算單元
  • 架構設計
    采用分組渲染架構(Tiled Rendering Architecture),由多個**渲染后端(Render Backends)**組成,每個后端包含:
    • 執行單元(Execution Units, EUs):負責并行計算,支持FP16/FP32/INT8等數據類型(M3的GPU含10-40個EUs組)。
    • 紋理單元(Texture Units):優化圖像數據訪問,支持硬件加速的紋理采樣和過濾。
    • 幾何引擎(Geometry Engines):處理圖形渲染中的頂點和幾何變換(對深度學習非必需,但影響MPS的圖形相關算子)。
  • 專用AI硬件
    • 神經引擎(Neural Engine):獨立于GPU的專用AI加速器,含16-32個矩陣運算單元(如M3的38 TOPS算力),用于Core ML推理,不直接被PyTorch的MPS后端調用,但可通過模型轉換間接利用(如PyTorch模型→Core ML→神經引擎)。
3. 與Nvidia GPU的關鍵差異
  • 無獨立顯存:依賴統一內存,顯存容量即系統內存容量。
  • 計算單元更輕量:FP32算力約為Nvidia顯卡的1/5-1/3(如M3 Max的GPU FP32約15 TFLOPS,RTX 4090為80 TFLOPS),但FP16/INT8能效比更高。
  • 無CUDA核心:不支持CUDA指令集,需通過Metal API實現并行計算。

二、系統層:Metal框架與驅動交互

1. Metal框架(底層API)
  • 定位
    替代Nvidia的顯卡驅動+CUDA Runtime,是蘋果提供的底層圖形和計算API,直接控制GPU硬件資源。
  • 核心組件
    • MTLDevice:抽象GPU硬件,提供創建計算管道、內存分配等功能。
    • MTLCommandQueue:管理GPU任務隊列,將計算指令(如矩陣乘法)封裝為Command Buffer提交給GPU。
    • MTLComputePipelineState:定義計算著色器(Compute Shader),實現自定義并行計算邏輯(類似CUDA的Kernel)。
  • 對PyTorch的作用
    PyTorch的MPS后端通過Metal C API間接調用上述組件,將高層算子(如torch.nn.Conv2d)編譯為Metal Shader代碼執行。
2. 系統驅動與優化
  • 自動調優
    macOS內核通過Metal自動優化GPU任務調度,例如根據負載動態分配EUs數量,或啟用低功耗模式(犧牲部分性能換取能效)。
  • 硬件抽象
    開發者無需直接操作驅動,Metal已封裝底層硬件細節(如寄存器分配、緩存管理),但靈活性低于CUDA(如無法直接控制線程網格布局)。

三、中間層:高性能計算庫(MPS/ML Compute)

1. Metal Performance Shaders (MPS)
  • 定位
    蘋果官方提供的高性能計算庫,基于Metal封裝機器學習常用算子,相當于cuDNN在蘋果生態的替代品。
  • 核心模塊
    • MPSNeuralNetwork:包含卷積、池化、全連接、激活函數等算子,針對M系列GPU的分組渲染架構深度優化(如平鋪內存訪問模式)。
    • MPSImage:圖像處理算子(如圖像縮放、濾波),利用GPU的紋理單元加速。
  • 與PyTorch的集成
    PyTorch通過torch.backends.mps模塊調用MPS算子,例如:
    import torch
    x = torch.randn(2, 3, 224, 224, device="mps")
    conv = torch.nn.Conv2d(3, 64, 3, device="mps")
    # 底層會調用MPSNeuralNetworkConvolution算子
    
2. ML Compute
  • 定位
    蘋果提供的跨設備機器學習計算框架,支持在CPU、GPU、神經引擎上執行計算,可與Core ML結合優化模型推理。
  • 對PyTorch的作用
    當PyTorch模型轉換為Core ML格式后,ML Compute會自動選擇最優硬件(如GPU或神經引擎)執行計算,但PyTorch原生訓練仍依賴MPS。

四、框架層:PyTorch在M系列芯片的運行路徑

1. PyTorch的MPS后端架構
  • 算子調度流程
    1. 用戶定義Tensor并指定device="mps",數據存入統一內存。
    2. PyTorch解析計算圖,將算子映射到MPS庫(如nn.Conv2dMPSNeuralNetworkConvolution)。
    3. 若MPS不支持該算子(如LSTM),則回退至CPU或通過Metal自定義Compute Shader實現(需手動編寫或依賴社區貢獻)。
  • 性能關鍵
    • MPS算子的覆蓋率:目前支持約80%的常用算子,復雜算子(如Transformer的多頭注意力)需通過MPS組合實現或依賴CPU。
    • 算子融合:PyTorch通過MPS自動融合連續算子(如Conv+BN+ReLU),減少Metal Command Buffer的提交次數,提升效率。
2. 與Core ML/神經引擎的協同
  • 訓練-推理分離流程
    PyTorch訓練(MPS GPU加速) → 模型導出為ONNX → coremltools轉換為Core ML格式 → 部署時由Core ML調用神經引擎推理
    
    • 示例:在M3 Ultra上訓練ResNet-50,通過MPS加速訓練,導出模型后用Core ML在神經引擎上實現200 FPS的圖像分類。
3. 限制與挑戰
  • 算子支持缺口
    如自定義反卷積、復雜損失函數需通過Metal Compute Shader手動實現,開發門檻較高(需掌握Metal編程)。
  • 多卡訓練缺失
    M系列芯片僅支持單卡(SoC內集成的GPU),不支持多卡互聯,無法訓練超大規模模型。
  • 精度限制
    GPU默認使用FP16混合精度計算,部分場景需手動啟用FP32(如torch.set_default_dtype(torch.float32)),但會降低計算速度。

五、層次結構總結:數據流與控制流

graph TDA[PyTorch算子調用] --> B{是否支持MPS?}B -->|是| C[調用MPS庫]B -->|否| D[回退至CPU或自定義Metal Shader]C --> E[Metal框架生成Command Buffer]E --> F[GPU執行單元處理數據(統一內存)]F --> G[結果返回PyTorch Tensor]G --> H[可選:轉換為Core ML模型→神經引擎推理]

六、優化建議與最佳實踐

  1. 優先使用MPS支持的算子
    參考PyTorch MPS算子列表,避免使用冷門算子導致性能下降。

  2. 啟用混合精度訓練

    scaler = torch.cuda.amp.GradScaler()  # MPS兼容CUDA的混合精度接口
    with torch.cuda.amp.autocast():outputs = model(inputs)
    
  3. 模型量化與轉換
    將訓練好的PyTorch模型轉換為Core ML格式,利用神經引擎加速推理:

    import coremltools as ct
    mlmodel = ct.convert(pytorch_model, convert_to="mlprogram")
    
  4. 性能分析工具

    • Xcode Instruments:追蹤GPU任務耗時、內存帶寬利用率。
    • PyTorch Profiler:定位算子瓶頸,例如torch.profiler.profile(activities=[torch.profiler.ProfilerActivity.CPU, torch.profiler.ProfilerActivity.MPS])

通過理解這一層次結構,開發者可更高效地在M系列芯片上利用GPU加速PyTorch任務,尤其適合中小型模型的訓練和移動端推理場景。對于大規模計算需求,建議結合云GPU(如AWS的G5實例)與本地M系列芯片的混合架構。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/82417.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/82417.shtml
英文地址,請注明出處:http://en.pswp.cn/web/82417.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

OpenWrt 搭建 samba 服務器的方法并解決 Windows 不允許訪問匿名服務器(0x80004005的錯誤)的方法

文章目錄 一、安裝所需要的軟件二、配置自動掛載三、配置 Samba 服務器四、配置 Samba 訪問用戶和密碼&#xff08;可選&#xff09;新建 Samba 專門的用戶添加無密碼的 Samba 賬戶使用root賬戶 五、解決 Windows 無法匿名訪問Samba方案一 配置無密碼的Samba賬戶并啟用匿名訪問…

CentOS 7鏡像源替換

更換為阿里云鏡像源&#xff08;適用于 CentOS 7&#xff09; 1、備份原來的 repo 文件&#xff1a; mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2、下載阿里云的 CentOS 7 repo 文件&#xff1a; curl -o /etc/yum.repos.d/CentOS-Base…

功能結構整理

C# Sxer Sxer.Base&#xff1a;基礎子功能 Sxer.Base.Debug&#xff1a;打印 Sxer.Utility&#xff1a;工具類 Sxer.CustomFunction&#xff1a;獨立功能點開發 Unity

云計算Linux Rocky day02(安裝Linux系統、設備表示方式、Linux基本操作)

云計算Linux Rocky day02&#xff08;安裝Linux系統、設備表示方式、Linux基本操作&#xff09; 目錄 云計算Linux Rocky day02&#xff08;安裝Linux系統、設備表示方式、Linux基本操作&#xff09;1、虛擬機VMware安裝Rocky2、Linux命令行3、Linux Rocky修改字體大小和背景顏…

【論文閱讀】《PEACE: Empowering Geologic Map Holistic Understanding with MLLMs》

目錄 前言一、研究背景與問題1-1、地質圖的重要性1-2、現有MLLMs的不足 二、 主要貢獻2-1、GeoMap-Bench&#xff1a;首個地質圖理解評估基準2-2、GeoMap-Agent&#xff1a;首個地質圖專用AI代理2-3、實驗驗證與性能優勢 三、關鍵技術3-1、 數據構建與預處理3-2、分層信息提取&…

計算機網絡通信技術與協議(八)----關于IS-IS的基礎概念

關于IS&#xff0d;IS最早是ISO為CLNP&#xff08;Connectionless Network Protocol&#xff0c;無連接網絡協議&#xff09;而設計的一種動態路由協議。 目錄 這里提到了CLNP這個概念&#xff0c;在這里解釋一下&#xff1a; CLNS由以下三個協議構成&#xff1a; 那么為什…

網絡原理1

協議 在網絡通信中&#xff0c;協議是非常重要的概念。協議是在網絡通信過程中的約定。發送方和接收方需要提前商量好數據的格式&#xff0c;才能確保正確進行溝通。 應用層協議 應用層&#xff0c;對應著應用程序&#xff0c;是跟我們程序員打交道最多的一層。調用操作系統…

【運維】統信UOS操作系統aarch64自制OpenSSH 9.6p1 rpm包(含ssh-copy-id命令)修復漏洞

為修復如下OpenSSH漏洞&#xff0c;openssh從8.2升級至9.6&#xff0c;然而并未找到統信9.6的rpm源&#xff0c;所以自己動手制作&#xff0c;折騰了一天&#xff0c;在此記錄一下 準備工作 檢查版本 cat /etc/os-releaseuname -a如圖當前環境為aarch64架構&#xff0c;在其…

CI/CD 持續集成、持續交付、持續部署

CI/CD 是 持續集成&#xff08;Continuous Integration&#xff09; 和 持續交付/持續部署&#xff08;Continuous Delivery/Deployment&#xff09; 的縮寫&#xff0c;代表現代軟件開發中通過自動化流程快速、可靠地構建、測試和發布代碼的實踐。其核心目標是 減少人工干預、…

Spring Boot 應用中實現配置文件敏感信息加密解密方案

Spring Boot 應用中實現配置文件敏感信息加密解密方案 背景與挑戰 &#x1f6a9;一、設計目標 &#x1f3af;二、整體啟動流程 &#x1f504;三、方案實現詳解 ??3.1 配置解密入口&#xff1a;EnvironmentPostProcessor3.2 通用解密工具類&#xff1a;EncryptionTool 四、快速…

OpenCV CUDA模塊特征檢測------角點檢測的接口createMinEigenValCorner()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 該函數創建一個 基于最小特征值&#xff08;Minimum Eigenvalue&#xff09;的角點響應計算對象&#xff0c;這是另一種經典的角點檢測方法&…

性能優化 - 理論篇:CPU、內存、I/O診斷手段

文章目錄 Pre引言1. CPU 性能瓶頸1.1 top 命令 —— 多維度 CPU 使用率指標1.2 負載&#xff08;load&#xff09;——任務排隊情況1.3 vmstat 命令 —— CPU 繁忙與等待 2. 內存性能瓶頸2.1 操作系統層面的內存分布2.2 top 命令 —— VIRT / RES / SHR 三個關鍵列2.3 CPU 緩存…

GPIO的內部結構與功能解析

一、GPIO總體結構 總體構成 1.APB2(外設總線) APB2總線是微控制器內部連接CPU與外設&#xff08;如GPIO&#xff09;的總線&#xff0c;負責CPU對GPIO寄存器的讀寫訪問&#xff0c;支持低速外設通信 2.寄存器 控制GPIO的配置&#xff08;輸入/輸出模式、上拉/下拉等&#x…

汽車總線分析總結(CAN、LIN、FlexRay、MOST、車載以太網)

目錄 一、汽車總線技術概述 二、主流汽車總線技術對比分析 1. CAN總線&#xff08;Controller Area Network&#xff09; 2. LIN總線&#xff08;Local Interconnect Network&#xff09; 3. FlexRay總線 4. MOST總線&#xff08;Media Oriented Systems Transport&#x…

WordPress 6.5版本帶來的新功能

WordPress 6.5正式上線了&#xff01;WordPress團隊再一次為我們帶來了許多新的改進。在全球開發者的共同努力下&#xff0c;WordPress推出了許多新的功能&#xff0c;本文將對其進行詳細總結。 Hostease的虛擬主機現已支持一鍵安裝最新版本的WordPress。對于想要體驗WordPres…

【vue+ts】找不到模塊“./App.vue”或其相應的類型聲明

報錯&#xff1a;找不到模塊“./App.vue”或其相應的類型聲明。 原因&#xff1a;typescript只能理解.ts文件&#xff0c;無法理解.vue文件。 解決&#xff1a;在src/env.d.ts下添加&#xff1a; /// <reference types"vite/client" /> // 三斜線引用告訴編譯…

Nginx+Tomcat 負載均衡群集

目錄 一&#xff0c;部署Tomcat 1&#xff0c;案例概述 2&#xff0c;案例前置知識點 &#xff08;1&#xff09;Tomcat簡介 &#xff08;2&#xff09;應用場景 3&#xff0c;案例實施 3.1&#xff0c;實施準備 &#xff08;1&#xff09;關閉firewalld防火墻 &#…

Spring Boot Actuator未授權訪問漏洞修復

方案1&#xff1a;在網關的配置文件里增加以下配置 management:endpoints:web:exposure:include: []enabled-by-default: falseendpoint:health:show-details: ALWAYS 方案二&#xff1a;直接在nginx配置攔截actuator相關接口 location /actuator { return 403; …

動態規劃之網格圖模型(二)

文章目錄 動態規劃之網格圖模型&#xff08;二&#xff09;LeetCode 931. 下降路徑最小和思路Golang 代碼 LeetCode 2684. 矩陣中移動的最大次數思路Golang 代碼 LeetCode 2304. 網格中的最小路徑代價思路Golang 代碼 LeetCode 1289. 下降路徑最小和 II思路Golang 代碼 LeetCod…

React 編譯器

&#x1f916; 作者簡介&#xff1a;水煮白菜王&#xff0c;一位前端勸退師 &#x1f47b; &#x1f440; 文章專欄&#xff1a; 前端專欄 &#xff0c;記錄一下平時在博客寫作中&#xff0c;總結出的一些開發技巧和知識歸納總結?。 感謝支持&#x1f495;&#x1f495;&#…