Build für On-Device-Training

Voraussetzungen

  • Python 3.x
  • CMake

Build-Anweisungen für die Trainingsphase

  1. Repository klonen

     git clone --recursive https://github.com/Microsoft/onnxruntime.git
     cd onnxruntime
    
  2. ONNX Runtime für On-Device Training erstellen

    a. Für Windows

     .\build.bat --config RelWithDebInfo --cmake_generator "Visual Studio 17 2022" --build_shared_lib --parallel --enable_training_apis
    

    b. Für Linux

     ./build.sh --config RelWithDebInfo --build_shared_lib --parallel --enable_training_apis
    

    c. Für Android

    Siehe die Android Build-Anweisungen und füge das Build-Flag --enable_training_apis hinzu.

    d. Für MacOS

    Siehe die macOS Inferenz Build-Anweisungen und füge das Build-Flag --enable_training_apis hinzu.

    e. Für iOS

    Siehe die iOS Build-Anweisungen und füge das Build-Flag --enable_training_apis hinzu.

    f. Für Web

    Siehe die Web Build-Anweisungen.

Hinweis

  • Um die C#-Bindings zu erstellen, füge das Flag --build_nuget zum obigen Build-Befehl hinzu.

  • Um das Python-Wheel zu erstellen
    • füge das Flag --build_wheel zum obigen Build-Befehl hinzu.
    • installiere das Wheel mit python -m pip install build/Linux/RelWithDebInfo/dist/*.whl
  • Das config-Flag kann eines von Debug, RelWithDebInfo, Release, MinSizeRel sein. Verwende das, das zu deinem Anwendungsfall passt.

  • Das Flag --enable_training_apis kann in Verbindung mit dem Flag --minimal_build verwendet werden.

  • Die Offline-Phase zur Generierung der Trainingsartefakte kann nur mit Python (unter Verwendung des Flags --build_wheel) durchgeführt werden.

  • Die obigen Build-Befehle erstellen nur für den CPU-Ausführungsanbieter. Um für den CUDA-Ausführungsanbieter zu erstellen, füge diese Flags hinzu:
    • --use_cuda
    • --cuda_home {Verzeichnis zu deinem CUDA Home, zum Beispiel /usr/local/cuda/}
    • --cudnn_home {Verzeichnis zu deinem CUDA Home, zum Beispiel /usr/local/cuda/}
    • --cuda_version={Version zum Beispiel 11.8}

Build für Training großer Modelle

Inhalt

Linux

./build.sh --config RelWithDebInfo --build_shared_lib --parallel --enable_training

GPU / CUDA

Voraussetzungen

Der Standard-NVIDIA-GPU-Build erfordert, dass CUDA-Runtime-Bibliotheken auf dem System installiert sind

Build-Anweisungen

  1. Checkout dieses Code-Repositorys mit

     git clone https://github.com/microsoft/onnxruntime
     cd onnxruntime
    
  2. Umgebungsvariablen setzen: Pfade für Speicherorte auf deinem Build-Rechner anpassen
     export CUDA_HOME=<location for CUDA libs> # e.g. /usr/local/cuda
     export CUDNN_HOME=<location for cuDNN libs> # e.g. /usr/local/cuda
     export CUDACXX=<location for NVCC> #e.g. /usr/local/cuda/bin/nvcc
    
  3. Erstelle das ONNX Runtime Python-Wheel

    ./build.sh --config=RelWithDebInfo --enable_training --build_wheel --use_cuda --cuda_home {location of cuda libs eg. /usr/local/cuda/} --cudnn_home {location of cudnn libs eg./usr/local/cuda/} --cuda_version={version for eg. 11.8}
    
  4. Installiere die .whl-Datei in ./build/Linux/RelWithDebInfo/dist für ONNX Runtime Training.

     python -m pip install build/Linux/RelWithDebInfo/dist/*.whl
    

Das war's! Sobald der Build abgeschlossen ist, solltest du die ONNX Runtime-Bibliotheken und ausführbaren Dateien in deinen Projekten verwenden können. Beachte, dass diese Schritte allgemein gehalten sind und je nach deiner spezifischen Umgebung und Anforderungen angepasst werden müssen. Für weitere Informationen kannst du Hilfe in der ONNX Runtime GitHub-Community erhalten.

GPU / ROCm

Voraussetzungen

Der Standard-AMD-GPU-Build erfordert, dass das ROCm-Software-Toolkit auf dem System installiert ist

Build-Anweisungen

  1. Checkout dieses Code-Repositorys mit

     git clone https://github.com/microsoft/onnxruntime
     cd onnxruntime
    
  2. Erstelle das ONNX Runtime Python-Wheel

    ./build.sh --config Release --enable_training --build_wheel --parallel --skip_tests --use_rocm --rocm_home /opt/rocm
    
  3. Installiere die .whl-Datei in ./build/Linux/RelWithDebInfo/dist für ONNX Runtime Training.

     python -m pip install build/Linux/RelWithDebInfo/dist/*.whl
    

DNNL und MKLML

Build-Anweisungen

Linux

./build.sh --enable_training --use_dnnl

Windows

.\build.bat --enable_training --use_dnnl

Füge --build_wheel hinzu, um das ONNX Runtime Wheel zu erstellen.

Dies erzeugt eine .whl-Datei in build/Linux/RelWithDebInfo/dist für ONNX Runtime Training.