HPVM 2.0, αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ CPU, GPU, FPGA αž“αž·αž„αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™

αž‚αž˜αŸ’αžšαŸ„αž„ LLVM αž”αžΆαž“αž”αŸ’αžšαž€αžΆαžŸαž–αžΈαž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ HPVM 2.0 (Heterogeneous Parallel Virtual Machine) αžŠαŸ‚αž›αž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„αžŠαŸ‚αž›αž˜αžΆαž“αž‚αŸ„αž›αž”αŸ†αžŽαž„αžŸαž˜αŸ’αžšαž½αž›αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ αž“αž·αž„αž•αŸ’αžαž›αŸ‹αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αž€αžΎαžαž€αžΌαžŠαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ CPUs GPUs FPGAs αž“αž·αž„αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸƒαžŠαŸ‚αž“αŸ” αž€αžΌαžŠαž‚αž˜αŸ’αžšαŸ„αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αž€αŸ’αžšαŸ„αž˜αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽ Apache 2.0 αŸ”

αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž›αžαž»αžŸαž’αž˜αŸ’αž˜αžαžΆαž˜αžΆαž“αž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αžŠαŸ„αž™αžŸαžΆαžšαžœαžαŸ’αžαž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸƒαžŸαž˜αžΆαžŸαž—αžΆαž‚αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž‚αŸ†αžšαžΌαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž”αžΆαž“αž“αžΌαžœαž—αžΆαž–αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆ (αžŸαŸ’αž“αžΌαž›αžŸαŸŠαžΈαž—αžΈαž™αžΌ αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžœαŸ‰αž·αž…αž‘αŸαžš GPU αŸ”αž›αŸ”) αžŸαŸ†αžŽαž»αŸ†αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ αž“αž·αž„αž‹αžΆαž“αžΆαž“αž»αž€αŸ’αžšαž˜αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαŸ” αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αžΈαž˜αž½αž™αŸ—αž”αŸ’αžšαžΎαž€αžΆαžšαžšαž½αž˜αž•αŸ’αžŸαŸ†αžšαž”αžŸαŸ‹αžœαžΆαž•αŸ’αž‘αžΆαž›αŸ‹αž“αŸƒαžŸαž˜αžΆαžŸαž’αžΆαžαž»αž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ” αž‚αŸ†αž“αž·αžαž…αž˜αŸ’αž”αž„αž“αŸƒαž‚αž˜αŸ’αžšαŸ„αž„ HPVM αž‚αžΊαžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΎαžαŸ†αžŽαžΆαž„αž”αž„αŸ’αžšαž½αž”αž”αž„αŸ’αžšαž½αž˜αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαž“αŸ…αž–αŸαž›αž…αž„αž€αŸ’αžšαž„ αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž—αŸαž‘αž•αŸ’αžŸαŸαž„αŸ—αž“αŸƒαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž› αžšαž½αž˜αž‘αžΆαŸ†αž„ GPUs αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžœαŸ‰αž·αž…αž‘αŸαžš αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αž αž»αžŸαŸ’αž“αžΌαž› FPGA αž“αž·αž„ αž”αž“αŸ’αž‘αŸ‡αžŸαŸ€αž‚αŸ’αžœαžΈαž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“αž―αž€αž‘αŸαžŸαž•αŸ’αžŸαŸαž„αŸ—αŸ”

αž˜αž·αž“αžŠαžΌαž…αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž‘αŸ HPVM αž”αžΆαž“αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž“αžΌαžœαžŸαž˜αžαŸ’αžαž—αžΆαž–αž”αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž‚αžŽαž“αžΆαžαž»αžŸαž’αž˜αŸ’αž˜αžαžΆ - αž—αžΆαžŸαžΆαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αž€αžΆαžšαžαŸ†αžŽαžΆαž„αž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜αž―αž€αžšαžΆαž‡αŸ’αž™αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„ (IR) αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžŸαŸ†αžŽαž»αŸ†αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž“αž·αž˜αŸ’αž˜αž·αž (V-ISA) αž“αž·αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ–

  • αžαŸ†αžŽαžΆαž„αž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜ HPVM αž–αž„αŸ’αžšαžΈαž€αž€αžΆαžšαžαŸ†αžŽαžΆαž„αž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜ LLVM αž“αŸƒαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αŸ’αžšαžΆαž αŸ’αžœαž›αŸ†αž αžΌαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αžαžΆαž˜αž‹αžΆαž“αžΆαž“αž»αž€αŸ’αžšαž˜ αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž™αž€αž—αžΆαž–αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαž“αŸ…αž€αž˜αŸ’αžšαž·αžαž—αžΆαžšαž€αž·αž…αŸ’αž… αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αž”αŸ†αž–αž„αŸ‹αŸ” αžαŸ†αžŽαžΆαž„αž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜ HPVM αž€αŸαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžœαŸ‰αž·αž…αž‘αŸαžš αž“αž·αž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž•αž„αžŠαŸ‚αžšαŸ” αž‚αŸ„αž›αž”αŸ†αžŽαž„αžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαŸ†αžŽαžΆαž„αž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜αž‚αžΊαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž€αžΌαžŠαž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– αž“αž·αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαŸ”
  • αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžŸαŸ†αžŽαž»αŸ†αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž“αž·αž˜αŸ’αž˜αž·αž (V-ISA) αžŸαž„αŸ’αžαŸαž”αž›αž€αŸ’αžαžŽαŸˆαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αž€αž˜αŸ’αžšαž·αžαž‘αžΆαž” αž“αž·αž„αž”αž„αŸ’αžšαž½αž”αž”αž„αŸ’αžšαž½αž˜αž‘αž˜αŸ’αžšαž„αŸ‹αž•αŸ’αžŸαŸαž„αŸ—αž“αŸƒαž—αžΆαž–αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆ αž“αž·αž„αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ„αž™αž”αŸ’αžšαžΎαžαŸ‚αž‚αŸ†αžšαžΌαž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž›αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž€αŸ’αžšαžΆαž αŸ’αžœαž›αŸ†αž αžΌαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” V-ISA αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžŸαž˜αŸ’αžšαŸαž…αž”αžΆαž“αž“αžΌαžœαž—αžΆαž–αž…αž›αŸαžαžšαžœαžΆαž„αž§αž”αž€αžšαžŽαŸαž•αŸ’αžŸαŸαž„αŸ—αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‚αžŽαž“αžΆαž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž› αž“αž·αž„αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αž˜αž·αž“αž±αŸ’αž™αž”αžΆαžαŸ‹αž”αž„αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎαž’αžΆαžαž»αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαŸ†αžŽαž–αžΌαž‡αŸ” Virtual ISA αž€αŸαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αžαž›αŸ‹αž€αžΌαžŠαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž”αžΆαž“αž‡αžΆαžŸαž€αž›αžŠαŸ‚αž›αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž”αŸ’αžšαžΎ CPUs, GPUs, FPGAs αž“αž·αž„αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“αž•αŸ’αžŸαŸαž„αŸ—αŸ”
  • αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž€αŸ†αžŽαžαŸ‹αž€αžΆαž›αžœαž·αž—αžΆαž‚αžŠαŸ‚αž›αž’αžΆαž…αž”αžαŸ‹αž”αŸ‚αž“αž”αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‚αžŽαž“αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž‘αžΆαŸ†αž„αž•αŸ’αž’αŸ‚αž€αž›αžΎαž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ (αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž€αŸ’αžšαžΆαž αŸ’αžœ) αž“αž·αž„αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαž…αž„αž€αŸ’αžšαž„αžαŸ’αž“αžΆαŸ†αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αžΈαž˜αž½αž™αŸ—αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž§αž”αž€αžšαžŽαŸαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž‚αŸ„αž›αžŠαŸ…αžŽαžΆαž˜αž½αž™αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ”

αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž”αž„αŸ’αž€αžΎαžαž€αžΌαžŠαžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αž‚αž˜αŸ’αžšαŸ„αž„αž˜αžΆαž“αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚αžαŸ’αž“αžΆαŸ†αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžŠαŸ„αž™αž”αŸ’αžšαžΎ ISA αž“αž·αž˜αŸ’αž˜αž·αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŠαŸ„αž™αž”αŸ’αžšαžΎ NVIDIA GPUs (cuDNN αž“αž·αž„ OpenCL), αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžœαŸ‰αž·αž…αž‘αŸαžš Intel AVX, FPGAs αž“αž·αž„ multi-core x86 CPUs αŸ” αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αž€αž”αŸ’αžšαŸ‚ HPVM αž‚αžΊαž’αžΆαž…αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‘αŸ…αž“αžΉαž„αž€αžΌαžŠ OpenCL αžŠαŸ‚αž›αžŸαžšαžŸαŸαžšαžŠαŸ„αž™αžŠαŸƒαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ GPU αž“αž·αž„αž§αž”αž€αžšαžŽαŸαž‚αžŽαž“αžΆαžœαŸ‰αž·αž…αž‘αŸαžšαŸ”

αž€αžΆαžšαž…αŸ’αž“αŸƒαž”αŸ’αžšαžŒαž·αžαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αžšαž”αžŸαŸ‹ HPVM 2.0αŸ–

  • αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αžαž“αŸƒαž—αžΆαžŸαžΆ Hetero-C++ αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž“αžΎαž‘αžΎαž„ αžŠαŸ‚αž›αž‡αž½αž™αžŸαž˜αŸ’αžšαž½αž›αž—αžΆαž–αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαž“αŸƒαž€αžΌαžŠαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ…αž€αŸ’αž“αž»αž„ C/C++ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αž„αž€αŸ’αžšαž„αž“αŸ…αž€αŸ’αž“αž»αž„ HPVM αŸ” Hetero-C++ αž€αŸ†αžŽαžαŸ‹αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž›αž€αž˜αŸ’αžšαž·αžαž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αž€αž·αž…αŸ’αž…αž€αžΆαžšαž‹αžΆαž“αžΆαž“αž»αž€αŸ’αžšαž˜αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž•αŸ‚αž“αž‘αžΈαž‘αŸ…αž“αžΉαž„αž€αŸ’αžšαžΆαž αŸ’αžœαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™ HPVM αŸ”
  • αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαžΆαž„αž€αŸ’αžšαŸ„αž™ FPGA αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αžαž›αŸ‹αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΌαžŠαž“αŸ…αž›αžΎ Intel FPGAs αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž· Intel FPGA SDK αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ OpenCL αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαŸ”
  • αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒ DSE (Design Space Exploration) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ αžŠαŸ‚αž›αžšαž½αž˜αž˜αžΆαž“αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„ αž“αž·αž„αž™αž“αŸ’αžαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαž”αž‰αŸ’αž αžΆαžŸαŸ’αž‘αŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαŸαž‘αž·αž€αžΆαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αŸ” αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒαž˜αžΆαž“αž‚αŸ†αžšαžΌαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŠαŸ‚αž›αžαŸ’αžšαŸ€αž˜αžšαž½αž…αž‡αžΆαžŸαŸ’αžšαŸαž…αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ FPGAs αž–αžΈ Intel αž“αž·αž„αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αž—αŸ’αž‡αžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž§αž”αž€αžšαžŽαŸαžŽαžΆαž˜αž½αž™αžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸ„αž™ HPVM αŸ” αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž‘αžΆαŸ†αž„αž€αž˜αŸ’αžšαž·αžαž€αŸ’αžšαžΆαž αŸ’αžœαž·αž€αž›αŸ†αž αžΌαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ HPVM αž“αž·αž„ LLVM αŸ”
  • αžŸαž˜αžΆαžŸαž’αžΆαžαž» LLVM αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž‘αŸ…αž€αŸ†αžŽαŸ‚ 13.0 αŸ”
  • αž€αžΌαžŠαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαŸ€αž”αž…αŸ†αž‘αžΎαž„αžœαž·αž‰αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαž»αž€αžšαž€αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž€αžΌαžŠ αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ αž“αž·αž„αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ”
  • αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„ αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžαŸ’αž˜αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαž˜αžΆαžŸαž’αžΆαžαž» HPVM αž•αŸ’αžŸαŸαž„αŸ—αŸ”

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

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹