AMD Π²ΡΠΏΡΡΡΠΈΠ»Π° open-source Π΄ΡΠ°ΠΉΠ²Π΅Ρ GIM Π΄Π»Ρ SR-IOV Π½Π° Linux β ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½ GPU ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΠ Π±Π΅Π· ΠΏΠΎΡΠ΅ΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ

AMD ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ GIM (GPU-IOV Module) β ΡΠ΄ΡΠΎ-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π΄Π»Ρ Linux, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π³ΠΎ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ SR-IOV.
ΠΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅Π»ΠΈΡΡ ΡΠ΅ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ GPU ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ Π±Π΅Π· Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ SR-IOV
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ SR-IOV (Single Root I/O Virtualization) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΡΡΡΡΠΎΠΉΡΡΠ² Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ. ΠΠΌΠ΅ΡΡΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΌΡΠ»ΡΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ±ΡΠΎΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ², SR-IOV ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ΄Π΅Π»ΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ.
Π ΡΠ»ΡΡΠ°Π΅ Ρ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΠ°ΠΌΠΈ β ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Β«Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡΒ» GPU Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠΎΠΉ, ΡΡΠΎ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ Π΄Π»Ρ Π·Π°Π΄Π°Ρ, Π³Π΄Π΅ Π²Π°ΠΆΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ: ML, HPC, Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ.
Π§ΡΠΎ ΡΠΌΠ΅Π΅Ρ GIM
ΠΡΠ°ΠΉΠ²Π΅Ρ GIM Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ MIT. ΠΠΎΡΠΎΠ²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ ΡΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ Ubuntu 22.04.
Jetpack Compose ΠΈ Kotlin: ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ UItproger.ru
Π‘Π΅ΠΉΡΠ°Ρ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π»ΠΈΡΡ ΠΊΠ°ΡΡΡ Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ MxGPU β Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΡΠΎ AMD Instinct MI300X, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠΎΠ² ΠΈ ΠΠ-Π½Π°Π³ΡΡΠ·ΠΎΠΊ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ:
- ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ SR-IOV Π½Π° GPU
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ (VF)
- ΠΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΠΠ
- ΠΡΡΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠ°Π½ΠΈΠΉ ΠΈ ΡΠ±ΡΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (FLR)
- ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌ GPU (PF) ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ
Π Π°Π±ΠΎΡΠ°Π΅Ρ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Ρ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ°ΠΌΠΈ Π½Π° Π±Π°Π·Π΅ KVM.
ΠΠ»Π°Π½Ρ Π½Π° Π±ΡΠ΄ΡΡΠ΅Π΅
Π AMD ΡΠΎΠΎΠ±ΡΠΈΠ»ΠΈ, ΡΡΠΎ GIM ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½ ΠΈ ΠΏΠΎΠ΄ ΠΎΠ±ΡΡΠ½ΡΠ΅ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΡ.
ΠΡΠΎ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ SR-IOV Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ±Π»Π°ΠΊΠ°Ρ ΠΈ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°Ρ , Π½ΠΎ ΠΈ Π² ΡΠ°Π±ΠΎΡΠΈΡ ΡΡΠ°Π½ΡΠΈΡΡ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ GPU ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.

