แž‚แž˜แŸ’แžšแŸ„แž„ LLVM แž”แžถแž“แžŽแŸ‚แž“แžถแŸ† HPVM 1.0 แžŠแŸ‚แž›แž‡แžถแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž…แž„แž€แŸ’แžšแž„แžŸแž˜แŸ’แžšแžถแž”แŸ‹ CPU, GPU, FPGA แž“แžทแž„แžงแž”แž€แžšแžŽแŸแž”แž„แŸ’แž€แžพแž“แž›แŸ’แž”แžฟแž“

แžขแŸ’แž“แž€แžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž“แŸƒแž‚แž˜แŸ’แžšแŸ„แž„ LLVM แž”แžถแž“แž…แŸแž‰แž•แŸ’แžŸแžถแž™แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž…แž„แž€แŸ’แžšแž„ HPVM 1.0 (Heterogeneous Parallel Virtual Machine) แžŠแŸ‚แž›แž˜แžถแž“แž‚แŸ„แž›แž”แŸ†แžŽแž„แžŸแž˜แŸ’แžšแžฝแž›แž€แžถแžšแžŸแžšแžŸแŸแžšแž€แž˜แŸ’แž˜แžœแžทแž’แžธแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แŸ’แžšแž–แŸแž“แŸ’แž’แž•แŸ’แžŸแŸแž„แŸ—แž‚แŸ’แž“แžถ แž“แžทแž„แž•แŸ’แžแž›แŸ‹แžงแž”แž€แžšแžŽแŸแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แž„แŸ’แž€แžพแžแž€แžผแžŠแžŸแž˜แŸ’แžšแžถแž”แŸ‹ CPUs, GPUs, FPGAs แž“แžทแž„แžงแž”แž€แžšแžŽแŸแž”แž„แŸ’แž€แžพแž“แž›แŸ’แž”แžฟแž“แž•แŸ’แž“แŸ‚แž€แžšแžนแž„แž‡แžถแž€แŸ‹แž›แžถแž€แŸ‹แžŠแŸ‚แž“ (แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹ FGPAs แž“แžทแž„แžงแž”แž€แžšแžŽแŸแž”แž„แŸ’แž€แžพแž“แž›แŸ’แž”แžฟแž“แž˜แžทแž“แžแŸ’แžšแžผแžœแž”แžถแž“แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™ 1.0 แž‘แŸ) แŸ” แž€แžผแžŠแž‚แž˜แŸ’แžšแŸ„แž„แžแŸ’แžšแžผแžœแž”แžถแž“แž…แŸ‚แž€แž…แžถแž™แž€แŸ’แžšแŸ„แž˜แžขแžถแž‡แŸ’แž‰แžถแž”แŸแžŽแŸ’แžŽ Apache 2.0 แŸ”

แž‚แŸ†แž“แžทแžแž…แž˜แŸ’แž”แž„แž“แŸƒ HPVM แž‚แžบแžŠแžพแž˜แŸ’แž”แžธแž•แŸ’แžแž›แŸ‹แž“แžผแžœแžแŸ†แžŽแžถแž„แž”แž„แŸ’แžšแžฝแž”แž”แž„แŸ’แžšแžฝแž˜แž“แŸƒแž€แž˜แŸ’แž˜แžœแžทแž’แžธแžŠแŸ‚แž›แžขแžถแž…แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž”แžถแž“แžŸแŸ’แžšแž”แž‚แŸ’แž“แžถแž“แŸ…แž–แŸแž›แž…แž„แž€แŸ’แžšแž„ แžŠแŸ‚แž›แžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแžŠแŸ„แž™แž”แŸ’แžšแžพแž”แŸ’แžšแž—แŸแž‘แž•แŸ’แžŸแŸแž„แŸ—แž“แŸƒแž•แŸ’แž“แŸ‚แž€แžšแžนแž„แžŠแŸ‚แž›แž‚แžถแŸ†แž‘แŸ’แžšแž€แžปแŸ†แž–แŸ’แž™แžผแž‘แŸแžšแž”แŸ‰แžถแžšแŸ‰แžถแžกแŸ‚แž› แžšแžฝแž˜แž‘แžถแŸ†แž„ GPUs แž€แžถแžšแžŽแŸ‚แž“แžถแŸ†แžœแŸ‰แžทแž…แž‘แŸแžš แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž–แž แžปแžŸแŸ’แž“แžผแž› FPGA แž“แžทแž„ แž”แž“แŸ’แž‘แŸ‡แžŸแŸ€แž‚แŸ’แžœแžธแž”แž„แŸ’แž€แžพแž“แž›แŸ’แž”แžฟแž“แžฏแž€แž‘แŸแžŸแž•แŸ’แžŸแŸแž„แŸ—แŸ” แž˜แžทแž“แžŠแžผแž…แž”แŸ’แžšแž–แŸแž“แŸ’แž’แž•แŸ’แžŸแŸแž„แž‘แŸ€แžแž‘แŸ HPVM แž”แžถแž“แž–แŸ’แž™แžถแž™แžถแž˜แž”แž‰แŸ’แž…แžผแž›แž‚แŸ’แž“แžถแž“แžผแžœแžŸแž˜แžแŸ’แžแž—แžถแž–แž”แžธแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžšแŸ€แž”แž…แŸ†แž€แžถแžšแž‚แžŽแž“แžถแžแžปแžŸแž’แž˜แŸ’แž˜แžแžถแŸ– แž—แžถแžŸแžถ แž“แžทแž„แž•แŸ’แž“แŸ‚แž€แžšแžนแž„ - แžแŸ†แžŽแžถแž„แž€แž˜แŸ’แžšแžทแžแž˜แž’แŸ’แž™แž˜แžฏแž€แžšแžถแž‡แŸ’แž™ แžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แžŸแŸ†แžŽแžปแŸ†แž€แžถแžšแžŽแŸ‚แž“แžถแŸ†แž“แžทแž˜แŸ’แž˜แžทแž (ISA) แž“แžทแž„แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แž–แŸแž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแŸ”

แžแŸ†แžŽแžถแž„แž€แž˜แŸ’แžšแžทแžแž˜แž’แŸ’แž™แž˜แžฏแž€แžšแžถแž‡แŸ’แž™แž“แŸƒแž‚แŸ„แž›แžŠแŸ… (IR) แžšแž”แžŸแŸ‹ HPVM แž”แž„แŸ’แž€แžพแžแž“แŸ…แž›แžพแž€แžถแžšแž”แž„แŸ’แž แžถแž‰แž€แžถแžšแžŽแŸ‚แž“แžถแŸ†แž€แž˜แŸ’แžšแžทแžแž˜แž’แŸ’แž™แž˜ LLVM 9.0 แž แžพแž™แž–แž„แŸ’แžšแžธแž€แžœแžถแž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แŸ’แžšแžถแž แŸ’แžœแž›แŸ†แž แžผแžšแž‘แžทแž“แŸ’แž“แž“แŸแž™แžแžถแž˜แž‹แžถแž“แžถแž“แžปแž€แŸ’แžšแž˜ แžŠแžพแž˜แŸ’แž”แžธแž…แžถแž”แŸ‹แž™แž€แž€แžทแž…แŸ’แž…แž€แžถแžš แž‘แžทแž“แŸ’แž“แž“แŸแž™ แž“แžทแž„แž€แž˜แŸ’แžšแžทแžแž”แŸ†แž–แž„แŸ‹แžŸแŸ’แžšแž”แž‚แŸ’แž“แžถแŸ” แžแŸ†แžŽแžถแž„แž€แž˜แŸ’แžšแžทแžแž˜แž’แŸ’แž™แž˜ HPVM แž€แŸแžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž€แžถแžšแžŽแŸ‚แž“แžถแŸ†แžœแŸ‰แžทแž…แž‘แŸแžš แž“แžทแž„แžขแž„แŸ’แž‚แž…แž„แž…แžถแŸ†แžŠแŸ‚แž›แž”แžถแž“แž…แŸ‚แž€แžšแŸ†แž›แŸ‚แž€แž•แž„แžŠแŸ‚แžšแŸ” แž‚แŸ„แž›แž”แŸ†แžŽแž„แžŸแŸ†แžแžถแž“แŸ‹แž“แŸƒแž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžแŸ†แžŽแžถแž„แž€แž˜แŸ’แžšแžทแžแž˜แž’แŸ’แž™แž˜แž‚แžบแž€แžถแžšแž”แž„แŸ’แž€แžพแžแž€แžผแžŠแž”แŸ’แžšแž€แž”แžŠแŸ„แž™แž”แŸ’แžšแžŸแžทแž‘แŸ’แž’แž—แžถแž– แž“แžทแž„แž€แžถแžšแž”แž„แŸ’แž€แžพแž“แž”แŸ’แžšแžŸแžทแž‘แŸ’แž’แž—แžถแž–แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แŸ’แžšแž–แŸแž“แŸ’แž’แž•แŸ’แžŸแŸแž„แŸ—แž‚แŸ’แž“แžถแŸ”

แžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แžŸแŸ†แžŽแžปแŸ†แž€แžถแžšแžŽแŸ‚แž“แžถแŸ†แž“แžทแž˜แŸ’แž˜แžทแž (ISA) แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แž…แž›แŸแžแžšแžœแžถแž„แž”แŸ’แžšแž—แŸแž‘แž•แŸ’แžŸแŸแž„แž‚แŸ’แž“แžถแž“แŸƒแž•แŸ’แž“แŸ‚แž€แžšแžนแž„แž€แžปแŸ†แž–แŸ’แž™แžผแž‘แŸแžšแž”แŸ‰แžถแžšแŸ‰แžถแžกแŸ‚แž› แž“แžทแž„แž’แŸ’แžœแžพแžฑแŸ’แž™แžœแžถแžขแžถแž…แž’แŸ’แžœแžพแž‘แŸ…แž”แžถแž“แž˜แžทแž“แžฑแŸ’แž™แž”แžถแžแŸ‹แž”แž„แŸ‹แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž“แŸ…แž–แŸแž›แž”แŸ’แžšแžพแž’แžถแžแžปแž•แŸ’แžŸแŸแž„แž‚แŸ’แž“แžถแž“แŸƒแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžแŸ†แžŽแž–แžผแž‡แŸ” Virtual ISA แž€แŸแžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแžŠแžพแž˜แŸ’แž”แžธแž•แŸ’แžแž›แŸ‹แž€แžผแžŠแž€แž˜แŸ’แž˜แžœแžทแž’แžธแžŠแŸ‚แž›แžขแžถแž…แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž”แžถแž“แž‡แžถแžŸแž€แž›แžŠแŸ‚แž›แžขแžถแž…แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŠแŸ„แž™แž”แŸ’แžšแžพ CPUs, GPUs, FPGAs แž“แžทแž„แžงแž”แž€แžšแžŽแŸแž”แž„แŸ’แž€แžพแž“แž›แŸ’แž”แžฟแž“แž•แŸ’แžŸแŸแž„แŸ—แŸ”

แž“แŸ…แžŠแŸ†แžŽแžถแž€แŸ‹แž€แžถแž›แž“แŸƒแž€แžถแžšแžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž”แž…แŸ’แž…แžปแž”แŸ’แž”แž“แŸ’แž“ HPVM แž•แŸ’แžแž›แŸ‹แž“แžผแžœแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž”แž„แŸ’แž€แžพแžแž€แžผแžŠแžŠแŸ‚แž›แž˜แžถแž“แžŸแž˜แžแŸ’แžแž—แžถแž–แž”แž€แž”แŸ’แžšแŸ‚แžแŸ’แž“แžถแŸ†แž„แž€แž˜แŸ’แž˜แžœแžทแž’แžธแžŠแŸ‚แž›แž”แžถแž“แž€แŸ†แžŽแžแŸ‹แžŠแŸ„แž™แž”แŸ’แžšแžพ ISA แž“แžทแž˜แŸ’แž˜แžทแžแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแžŠแŸ„แž™แž”แŸ’แžšแžพ NVIDIA GPUs (cuDNN แž“แžทแž„ OpenCL) แž€แžถแžšแžŽแŸ‚แž“แžถแŸ†แžœแŸ‰แžทแž…แž‘แŸแžš Intel AVX แž“แžทแž„แžŸแŸŠแžธแž—แžธแž™แžผ multi-core x86 แŸ” แž“แŸ…แž–แŸแž›แžŠแŸ†แžŽแžพแžšแž€แžถแžš HPVM แžขแž“แžปแžœแžแŸ’แžแž‚แŸ„แž›แž€แžถแžšแžŽแŸแž€แŸ†แžŽแžแŸ‹แž–แŸแž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž‚แžŽแž“แžถแžŠแŸ‚แž›แžขแžถแž…แž”แžแŸ‹แž”แŸ‚แž“แž”แžถแž“ แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แžขแž“แžปแžœแžแŸ’แžแž‘แžถแŸ†แž„แž•แŸ’แžขแŸ‚แž€แž›แžพแž–แŸแžแŸŒแž˜แžถแž“แž€แž˜แŸ’แž˜แžœแžทแž’แžธ (แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แž€แŸ’แžšแžถแž แŸ’แžœ) แž“แžทแž„แžแžถแž˜แžšแž™แŸˆแž€แžถแžšแž…แž„แž€แŸ’แžšแž„แžแŸ’แž“แžถแŸ†แž„แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž“แžธแž˜แžฝแž™แŸ—แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž›แžพแžงแž”แž€แžšแžŽแŸแž€แžปแŸ†แž–แŸ’แž™แžผแž‘แŸแžšแž‚แŸ„แž›แžŠแŸ…แžŽแžถแž˜แžฝแž™แžŠแŸ‚แž›แž˜แžถแž“แž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแž–แŸแž“แŸ’แž’แŸ”

แžœแžถแžแŸ’แžšแžผแžœแž”แžถแž“แž€แžแŸ‹แžŸแž˜แŸ’แž‚แžถแž›แŸ‹แžแžถแž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ HPVM แžขแžถแž…แžŸแž˜แŸ’แžšแŸแž…แž”แžถแž“แž“แžผแžœแž€แžถแžšแž€แžพแž“แžกแžพแž„แž‚แžฝแžšแžฑแŸ’แž™แž€แžแŸ‹แžŸแž˜แŸ’แž‚แžถแž›แŸ‹แž“แŸƒแž•แž›แžทแžแž—แžถแž–แŸ” แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แž”แž€แž”แŸ’แžšแŸ‚ HPVM แž‚แžบแžขแžถแž…แž”แŸ’แžšแŸ€แž”แž’แŸ€แž”แž‘แŸ…แž“แžนแž„แž€แžผแžŠ OpenCL แžŠแŸ‚แž›แžŸแžšแžŸแŸแžšแžŠแŸ„แž™แžŠแŸƒแžŸแž˜แŸ’แžšแžถแž”แŸ‹ GPU แž“แžทแž„แžงแž”แž€แžšแžŽแŸแž‚แžŽแž“แžถแžœแŸ‰แžทแž…แž‘แŸแžšแŸ”

แž”แžพแž”แŸ’แžšแŸ€แž”แž’แŸ€แž”แž‘แŸ…แž“แžนแž„แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž€แžถแžšแž˜แžพแž›แž‡แžถแž˜แžปแž“แžŠแŸ†แž”แžผแž„ HPVM 1.0 แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแž–แžทแž‡แž‚แžŽแžทแžแž›แžธแž“แŸแžขแŸŠแŸ‚แžš แž•แŸ’แž“แŸ‚แž€แžแžถแž„แž˜แžปแžแžŸแž˜แŸ’แžšแžถแž”แŸ‹ Pytorg แž“แžทแž„ Keras แž€แžถแžšแž”แŸ‰แžถแž“แŸ‹แžŸแŸ’แž˜แžถแž“แžšแž”แžŸแŸ‹แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžš convolution แž“แžทแž„แž€แŸ’แžšแž”แžแŸแžŽแŸ’แžŒแž€แžถแžšแž›แŸƒแžแž˜แŸ’แžšแžผแžœแž”แŸ’แžšแž แžถแž€แŸ‹แž”แŸ’แžšแž แŸ‚แž›แžŠแŸ‚แž›แž‡แŸ’แžšแžพแžŸแžšแžพแžŸแž€แžถแžšแž”แŸ‰แžถแž“แŸ‹แžŸแŸ’แž˜แžถแž“แžŠแŸแž›แŸ’แžขแž”แŸ’แžšแžŸแžพแžšแžŠแŸ„แž™แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžš tensor แž‡แžถแž€แŸ‹แž›แžถแž€แŸ‹ แž แžพแž™แž‡แŸ’แžšแžพแžŸแžšแžพแžŸแž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžŠแŸ‚แž›แž•แŸ’แžแž›แŸ‹แž“แžผแžœแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž›แŸ’แžขแž”แŸ†แž•แžปแžแŸ”

แž”แŸ’แžšแž—แž–: opennet.ru

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹