LibTorch

PyTorch stáhnete na této stránce odkaz . Můžete zvolit mezi platformou CUDA (Compute Unified Device Architecture) a CPU.

  • CUDA běží na GPU — ideální pro velké modely a rychlejší trénování.
  • CPU běží na procesoru — vhodné pro menší modely a systémy bez GPU.
Stažení PyTorch

Doporučení: Soubory je vhodné zkopírovat na C:/ nebo jiný lokální disk kvůli snadnějšímu přístupu a kompatibilitě. Poté složku přejmenujte na čitelný název, např. libtorch.

V Properties, v části C/C++ → General → Additional Include Directories, zadejte následující cesty:

C:\libtorch\include
C:\libtorch\include\torch\csrc\api\include
Include cesty LibTorch

V C/C++ → Language → Conformance Mode, nastavte hodnotu na No (/permissive). Tím se vypne striktní dodržování standardu a předejde se problémům s nejednoznačnými jmennými prostory v některých knihovnách.

V C/C++ → Language → C++ Language Standard, zvolte C++17 nebo novější verzi. To je nutné, aby moderní knihovny jako LibTorch šly správně zkompilovat.

Jazyková nastavení LibTorch

V Linker → General → Additional Library Directories, zadejte následující cestu:

C:\libtorch\lib
Knihovny LibTorch

V Linker → Input → Additional Dependencies, přidejte následující knihovny z cesty C:\\libtorch\\lib :

torch.lib
torch_cpu.lib
c10.lib
Knihovny LibTorch

V Build Events → Pre-Build Event → Command Line, zadejte následující příkaz:

xcopy /Y /C /I /Q "C:\libtorch\lib\*.dll" "$(OutDir)"
Příkaz před sestavením

NEBO: Můžete je zkopírovat i ručně :D

Pokud při použití LibTorch ve Visual Studiu funkce torch::cuda::is_available() vrací false, i když máte nainstalovaný CUDA Toolkit a funkční GPU, je potřeba vynutit zahrnutí CUDA sekce do výsledného binárního souboru.

/INCLUDE:"?warp_size@cuda@at@@YAHXZ"

Přidejte následující parametr do vlastností projektu v sekci Linker → Command Line → Additional Options. Tento příkaz zajistí, že linker nezahodí CUDA inicializační kód a LibTorch správně detekuje GPU.

  • Bez této volby Visual Studio často odstraní nevyužité CUDA symboly při linkování.
  • Výsledkem je, že CUDA část knihovny torch_cuda.lib se nikdy nenačte.
  • Funkce torch::cuda::is_available() pak vždy vrací false, i když GPU funguje.

Lepší řešení: Pokud používáte CMake, použijte oficiální způsob pomocí find_package(Torch REQUIRED). Tento přístup automaticky propojí potřebné knihovny a vyhnete se ručnímu zadávání /INCLUDE parametru.