ΠΡΠΎΠ΅ΠΊΡΡΡ LLVM ΠΎΠ±ΡΠ²ΠΈ ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° HPVM 2.0 (Heterogeneous Parallel Virtual Machine), ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ, Π½Π°ΡΠΎΡΠ΅Π½ ΠΊΡΠΌ ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ΡΠΎ Π·Π° Ρ Π΅ΡΠ΅ΡΠΎΠ³Π΅Π½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ Π·Π° CPU, GPU, FPGA ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»ΠΈ. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·Π° Apache 2.0.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ΡΠΎ Π·Π° ΡΠ°Π·Π½ΠΎΡΠΎΠ΄Π½ΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠ΅ ΡΡΠ»ΠΎΠΆΠ½ΡΠ²Π° ΠΎΡ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π² Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΡΠΌ (CPU ΡΠ΄ΡΠ°, Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, GPU ΠΈ Ρ.Π½.), ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°Π±ΠΎΡΠΈ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΉΠ΅ΡΠ°ΡΡ ΠΈΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°. ΠΡΡΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ. ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΈΠ΄Π΅Ρ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° HPVM Π΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ½ΠΈΡΠΈΡΠΈΡΠ°Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ Ρ Π°ΡΠ΄ΡΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ GPU, Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄ΡΠ΅Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ, FPGA ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»Π½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅.
ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ Π΄ΡΡΠ³ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, HPVM ΡΠ΅ ΠΎΠΏΠΈΡΠ° Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ° ΡΡΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π·Π½ΠΎΡΠΎΠ΄Π½ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ - Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ (IR), Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° Π½Π°Π±ΠΎΡ ΠΎΡ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ (V-ISA) ΠΈ Π³ΡΠ°ΡΠΈΠΊ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅:
- ΠΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° HPVM ΡΠ°Π·ΡΠΈΡΡΠ²Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ Π½Π° LLVM ΡΡΠ΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΉΠ΅ΡΠ°ΡΡ ΠΈΡΠ½Π° Π³ΡΠ°ΡΠΈΠΊΠ° Π½Π° ΠΏΠΎΡΠΎΠΊΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ Π·Π° ΡΠ»Π°Π²ΡΠ½Π΅ Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΡΠΌ Π½Π° Π½ΠΈΠ²Π° Π½Π° Π·Π°Π΄Π°ΡΠ°, Π΄Π°Π½Π½ΠΈ ΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ. ΠΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° HPVM Π²ΠΊΠ»ΡΡΠ²Π° ΡΡΡΠΎ Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΌΠ΅Ρ. ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ΅Π» Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π΅ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π° Ρ Π΅ΡΠ΅ΡΠΎΠ³Π΅Π½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ.
- ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈΡ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ (V-ISA) Π°Π±ΡΡΡΠ°Ρ ΠΈΡΠ° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ ΠΈ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΎΡΠΌΠΈ Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΡΠΌ ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ°ΠΌΠΎ ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΡΠΌ β Π³ΡΠ°ΡΠΈΠΊΠ°ΡΠ° Π½Π° ΠΏΠΎΡΠΎΠΊΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ. V-ISA Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΡΠ΅ ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅ Π·Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π½Π΅ Π³ΡΠ±ΠΈΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ ΠΎΡ Ρ Π΅ΡΠ΅ΡΠΎΠ³Π΅Π½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. Virtual ISA ΠΌΠΎΠΆΠ΅ ΡΡΡΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° CPU, GPU, FPGA ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»ΠΈ.
- ΠΠΎΠ»ΠΈΡΠΈΠΊΠΈΡΠ΅ Π·Π° Π³ΡΠ²ΠΊΠ°Π²ΠΎ ΠΏΠ»Π°Π½ΠΈΡΠ°Π½Π΅ Π·Π° ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅Π»Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΠΊΠ°ΠΊΡΠΎ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° (ΡΡΡΡΠΊΡΡΡΠ° Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ°), ΡΠ°ΠΊΠ° ΠΈ ΡΡΠ΅Π· ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈ Π²ΡΠ·Π»ΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΡΠΊΠΎ ΠΎΡ ΡΠ΅Π»Π΅Π²ΠΈΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π½Π°Π»ΠΈΡΠ½ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ΄, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΈ Π΄Π° ΠΏΡΠ΅Π²Π΅ΠΆΠ΄Π°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ½ΠΈ Π²ΡΠ·Π»ΠΈ, Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ISA Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° NVIDIA GPU (cuDNN ΠΈ OpenCL), Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π° Intel AVX, FPGA ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄ΡΠ΅Π½ΠΈ x86 ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ. ΠΡΠ±Π΅Π»ΡΠ·Π²Π° ΡΠ΅, ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠ΅Π²ΠΎΠ΄Π°ΡΠΈΡΠ΅ Π½Π° HPVM Π΅ ΡΡΠ°Π²Π½ΠΈΠΌΠ° Ρ ΡΡΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ OpenCL ΠΊΠΎΠ΄ Π·Π° GPU ΠΈ Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈ Π½Π° HPVM 2.0:
- ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π΅ Π΅Π·ΠΈΠΊΠΎΠ² ΡΡΠΎΠ½ΡΠ΅Π½Π΄ Π½Π° Hetero-C++, ΠΊΠΎΠΉΡΠΎ ΠΎΠΏΡΠΎΡΡΡΠ²Π° ΡΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π² C/C++ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π² HPVM. Hetero-C++ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π·Π° ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΡΠΌ Π½Π° Π½ΠΈΠ²ΠΎ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΉΠ΅ΡΠ°ΡΡ ΠΈΡΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Ρ Π² HPVM Π³ΡΠ°ΡΠΈΠΊΠΈ Π½Π° Π½ΠΈΡΠΊΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ FPGA Π±Π΅ΠΊΠ΅Π½Π΄, Π·Π° Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ Π½Π° Intel FPGA. ΠΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Intel FPGA SDK Π·Π° OpenCL.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΡΠ°ΠΌΠΊΠ°ΡΠ° DSE (Design Space Exploration), ΠΊΠΎΡΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΠ½ΠΈ ΠΌΠ΅ΡΡΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΉΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° Π΄Π°Π΄Π΅Π½Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°. Π Π°ΠΌΠΊΠ°ΡΠ° ΡΡΠ΄ΡΡΠΆΠ° Π³ΠΎΡΠΎΠ² ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π·Π° FPGA ΠΎΡ Intel ΠΈ ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²Π°ΡΠΈΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΎΡ HPVM. ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°Ρ ΠΊΠ°ΠΊΡΠΎ Π½Π° HPVM, ΡΠ°ΠΊΠ° ΠΈ Π½Π° LLVM Π½ΠΈΠ²Π° Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ° Π½Π° ΠΏΠΎΡΠΎΠΊΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ.
- ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π½Π° LLVM ΡΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π΄ΠΎ Π²Π΅ΡΡΠΈΡ 13.0.
- ΠΠΎΠ΄ΡΡ Π΅ ΡΠ΅ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½, Π·Π° Π΄Π° ΡΠ»Π΅ΡΠ½ΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡΡΠ° Π² ΠΊΠΎΠ΄ΠΎΠ²Π°ΡΠ° Π±Π°Π·Π°, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅ ΠΈ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ.
- ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π·Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π°, Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ HPVM ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru