ΠΠ½Π΄ΠΆΠ΅ΠΉ Π―Π½ΠΈΠΊ (Andrzej Janik) ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈ Π²Π΅ΡΡΠΈΡ ZLUDA 5, ΠΎΡΠ²ΠΎΡΠ΅Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° CUDA. Π¦Π΅Π»ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π΅ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ CUDA ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ GPU, ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΡ GPU NVIDIA, Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, Π±Π»ΠΈΠ·ΠΊΠ° Π΄ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½ΠΈ Π±Π΅Π· ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ ΡΠ»ΠΎΠ΅Π²Π΅. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π΅Π·ΠΈΠΊΠ° Rust ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΠ΅ MIT ΠΈ Apache 2.0.
ZLUDA 5 ΡΡΠ°Π½Π° Π²ΡΠΎΡΠΎΡΠΎ Π·Π½Π°ΡΠΈΠΌΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΊΠΎΠ΅ΡΠΎ Π±Π΅ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΎ ΡΠ»Π΅Π΄ ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π°ΡΠ° Π±Π°Π·Π° ΠΎΡ ΠΊΠΎΠ΄Π°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΠ½Π΄ΠΆΠ΅ΠΉ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° AMD. ΠΡ 2022 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΠ½Π΄ΠΆΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠΈ Π² AMD Π²ΡΡΡ Ρ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ»ΠΎΠΉ Π·Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ ΠΌΠ΅ΠΆΠ΄Ρ GPU AMD ΠΈ CUDA, Π½ΠΎ ΠΏΡΠ΅Π· 2024 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΏΡΠΎΠ΅ΠΊΡΡΡ Π±Π΅ΡΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½. Π ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΡΡΠ»ΠΎΠ²ΠΈΡΡΠ° Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ° ΠΈ ΡΠ»Π΅Π΄ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ ΠΎΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π» Π½Π° AMD, ΠΠ½Π΄ΠΆΠ΅ΠΉ ΠΎΡΠ²ΠΎΡΠΈ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈΡΠ΅, ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π² AMD ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° CUDA ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΡΡ Ρ ΡΡΠ΅ΠΊΠ° ROCm ΠΈ runtime HIP (Heterogeneous-computing Interface for Portability).
ΠΠΈΠ½Π°Π»Π°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π° ΠΠ½Π΄ΠΆΠ΅ΠΉ Π±Π΅ΡΠ΅ ΠΏΡΠΈΠ½ΡΠ΄Π΅Π½ Π΄Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π΅ ΠΊΠΎΠ΄Π° ΠΎΡ ΠΎΡΠ²ΠΎΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ ΡΠ»Π΅Π΄ ΠΏΠΈΡΠΌΠΎ ΠΎΡ ΡΡΠΈΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Ρ Π°, ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ, Π΄Π°Π΄Π΅Π½ΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΊΠΎΡΠ΅ΡΠΏΠΎΠ½Π΄Π΅Π½ΡΠΈΡ ΠΏΠΎ ΠΈΠΌΠ΅ΠΉΠ», Π½ΡΠΌΠ° ΡΡΠΈΠ΄ΠΈΡΠ΅ΡΠΊΠ° ΡΠΈΠ»Π°. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΠ½Π΄ΠΆΠ΅ΠΉ Π·Π°ΠΏΠΎΡΠ½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° ZLUDA, ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π°ΡΠ° Π±Π°Π·Π°, ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π»Π° ΠΏΡΠ΅Π΄ΠΈ Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΠ½Π΄ΠΆΠ΅ΠΉ Π² AMD. Π ΡΠ΅Π³Π°ΡΠ½ΠΈΡ ΡΠΈ Π²ΠΈΠ΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π΅ ΡΡΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½Π° Π²ΡΡΡ Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ CUDA Π·Π° ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π΄Π°ΡΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅. ΠΡΠΎΠ΅ΠΊΡΡΡ Π·Π°ΡΠ΅Π³Π° Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π΄ΠΎ ΡΠ°Π±ΠΎΡΠ° Π½Π° GPU AMD, Π½ΠΎ Π² Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π΅ Π°Π΄Π°ΠΏΡΠΈΡΠ°Π½ ΠΈ Π·Π° GPU Intel.
ΠΠ»ΡΡΠΎΠ²ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½Π°ΡΠ°Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ΅ΠΉΠΌΡΡΡΠΊΠΈΡΠ΅ llm.c, Llama.cpp ΠΈ PyTorch Π²ΡΡΡ Ρ ZLUDA Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Π΅Π·ΠΈΠΊΠΎΠ²ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ CUDA ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° GPU NVIDIA.
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ Π½Π°ΡΠ°Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ cuBLAS, cuBLASLt ΠΈ nvml Π·Π° ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΡΠ»ΠΎΠΉ zluda_trace Π·Π° ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ CUDA. Π‘ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° zluda_trace ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ Π΄Π° ΠΎΡΠΊΡΠΈΠ²Π°ΡΠ΅ Π½Π΅Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ Π² ZLUDA, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅ΡΠ°Ρ Π½Π° Π½ΠΎΡΠΌΠ°Π»Π½ΠΎΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
- ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½Π° ΡΡΠΈΠ»ΠΈΡΠ° zoc (ZLUDA offline ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ), ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ NVIDIA PTX Π² ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ AMD RDNA (ΠΏΠΎ-ΡΠ°Π½ΠΎ ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π±Π΅ΡΠ΅ Π½Π°Π»ΠΈΡΠ½Π° ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ).
- Π Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ PTX Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½ΠΈΡΠ΅ Π½Π° GPU ΡΠ΄ΡΠ°. ΠΠ΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΡΡΠΎΠ΅ΠΌΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ PTX (Parallel Thread Execution) Π² ΠΌΠ°ΡΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ GPU.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
