αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ Intel αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™ Open Image Denoise 2.0 Image Denoise Library

αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ Intel αž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž“αŸƒαž‚αž˜αŸ’αžšαŸ„αž„ oidn 2.0 (Open Image Denoise) αžŠαŸ‚αž›αž’αž—αž·αžœαžŒαŸ’αžαž”αžŽαŸ’αžαž»αŸ†αž“αŸƒαžαž˜αŸ’αžšαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž›αž»αž”αžŸαŸ†αž‘αŸαž„αžšαŸ†αžαžΆαž“αž–αžΈαžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αž…αŸ†αžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αž„αŸ’αž αžΆαž‰αž€αžΆαžšαžαžΆαž˜αžŠαžΆαž“αž€αžΆαŸ†αžšαžŸαŸ’αž˜αžΈαŸ” Open Image Denoise αž€αŸ†αž–αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž‡αžΆαž•αŸ’αž“αŸ‚αž€αž“αŸƒαž‚αž˜αŸ’αžšαŸ„αž„αž’αŸ†αž‡αžΆαž„ OneAPI Rendering Toolkit αžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ†αžŽαž„αž’αž—αž·αžœαžŒαŸ’αžαž§αž”αž€αžšαžŽαŸαž˜αžΎαž›αžƒαžΎαž‰αž•αŸ’αž“αŸ‚αž€αž‘αž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‚αžŽαž“αžΆαž”αŸ‚αž”αžœαž·αž‘αŸ’αž™αžΆαžŸαžΆαžŸαŸ’αžαŸ’αžš (SDVis (Software Defined Visualization) αžšαž½αž˜αž‘αžΆαŸ†αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ Embree ray tracing system αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αž„αŸ’αž αžΆαž‰αžšαžΌαž”αž—αžΆαž–αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ GLuRay OSPRay αž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™ ray tracing platform αž“αž·αž„ OpenSWR software rasterization system αž€αžΌαžŠαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž€αŸ’αž“αž»αž„ C++ αž“αž·αž„αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž—αž€αŸ’αžšαŸ„αž˜αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽ Apache 2.0 αŸ”

αž‚αŸ„αž›αžŠαŸ…αžšαž”αžŸαŸ‹αž‚αž˜αŸ’αžšαŸ„αž„αž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž˜αž»αžαž„αžΆαžš denoising αžŠαŸ‚αž›αž˜αžΆαž“αž‚αž»αžŽαž—αžΆαž–αžαŸ’αž–αžŸαŸ‹ αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– αž“αž·αž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ’αžšαžΎ αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž‚αž»αžŽαž—αžΆαž–αž“αŸƒαž›αž‘αŸ’αž’αž•αž›αžαžΆαž˜αžŠαžΆαž“αž€αžΆαŸ†αžšαžŸαŸ’αž˜αžΈαŸ” αžαž˜αŸ’αžšαž„αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαž‘αžΎαž„αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž›αž‘αŸ’αž’αž•αž›αž“αŸƒαžœαžŠαŸ’αžαžαžΆαž˜αžŠαžΆαž“αž€αžΆαŸ†αžšαžŸαŸ’αž˜αžΈαžαŸ’αž›αžΈ αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“αž€αž˜αŸ’αžšαž·αžαž…αž»αž„αž€αŸ’αžšαŸ„αž™αž“αŸƒαž‚αž»αžŽαž—αžΆαž–αžŠαŸ‚αž›αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‘αŸ…αž“αžΉαž„αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαžαŸ’αž›αŸƒαž‡αžΆαž„ αž“αž·αž„αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž–αŸαž›αžœαŸαž›αžΆαž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž›αž˜αŸ’αž’αž·αžαŸ”

Open Image Denoise αž›αž»αž”αž”αŸ†αž”αžΆαžαŸ‹αžŸαŸ†αž›αŸαž„αžšαŸ†αžαžΆαž“αžŠαŸ„αž™αž…αŸƒαžŠαž“αŸ’αž™ αžŠαžΌαž…αž‡αžΆαž–αžΈαž€αžΆαžšαžαžΆαž˜αžŠαžΆαž“αž€αžΆαŸ†αžšαžŸαŸ’αž˜αžΈ Monte Carlo RT (MCRT) αž‡αžΆαžŠαžΎαž˜αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαžŸαž˜αŸ’αžšαŸαž…αž”αžΆαž“αž“αžΌαžœαž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αžŠαŸ‚αž›αž˜αžΆαž“αž‚αž»αžŽαž—αžΆαž–αžαŸ’αž–αžŸαŸ‹αž€αŸ’αž“αž»αž„αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αŸ‚αž”αž“αŸαŸ‡ αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαžαžΆαž˜αžŠαžΆαž“αž€αžΆαŸ†αžšαžŸαŸ’αž˜αžΈαž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αŸ† αž”αžΎαž˜αž·αž“αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž‘αŸαžœαžαŸ’αžαž»αž”αž»αžšαžΆαžŽαžŠαŸ‚αž›αž’αžΆαž…αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž”αžΆαž“αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž“αŸƒαžŸαŸ†αž‘αŸαž„αžšαŸ†αžαžΆαž“αž“αžΉαž„αž›αŸαž…αž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αžšαžΌαž”αž—αžΆαž–αž›αž‘αŸ’αž’αž•αž›αŸ”

αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ Open Image Denoise αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž…αŸ†αž“αž½αž“αž“αŸƒαž€αžΆαžšαž‚αžŽαž“αžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž“αŸ…αž–αŸαž›αž‚αžŽαž“αžΆαž—αžΈαž€αžŸαŸ‚αž›αž“αžΈαž˜αž½αž™αŸ—αžŠαŸ„αž™αž›αŸ†αžŠαžΆαž”αŸ‹αž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸƒαžšαŸ‰αž·αž…αž‘αŸαžšαŸ” αž‡αžΆαž›αž‘αŸ’αž’αž•αž› αž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž‚αŸ’αž˜αžΆαž“αžŸαž˜αŸ’αž›αŸαž„αžšαŸ†αžαžΆαž“αž–αžΈαžŠαŸ†αž”αžΌαž„αž”αžΆαž“αž›αžΏαž“αž‡αžΆαž„αž˜αž»αž“ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž“αžΆαŸ†αžœαžΆαž‘αŸ…αž‡αžΆαž‚αž»αžŽαž—αžΆαž–αžŠαŸ‚αž›αž’αžΆαž…αž‘αž‘αž½αž›αž™αž€αž”αžΆαž“αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αžŸαŸ†αž›αŸαž„αžšαŸ†αžαžΆαž“αž›αžΏαž“αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαžŸαž˜αžŸαŸ’αžšαž” αž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαž‘αžΎαž„αž’αžΆαž…αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžαžΆαž˜αžŠαžΆαž“αž€αžΆαŸ†αžšαžŸαŸ’αž˜αžΈαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαžŠαž€αžŸαŸ†αž›αŸαž„αžšαŸ†αžαžΆαž“αž“αŸ…αž–αŸαž›αž αŸ„αŸ‡αž αžΎαžšαŸ”

αž”αžŽαŸ’αžŽαžΆαž›αŸαž™β€‹αž’αžΆαž…β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αŸ’αžšαžΎβ€‹αž“αŸ…β€‹αž›αžΎβ€‹αžαŸ’αž“αžΆαž€αŸ‹β€‹αž•αŸ’αžŸαŸαž„αŸ—β€‹αž“αŸƒβ€‹αž§αž”αž€αžšαžŽαŸ αž–αžΈβ€‹αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšβ€‹αž™αž½αžšαžŠαŸƒ αž“αž·αž„β€‹αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšβ€‹αžŠαž›αŸ‹β€‹αžαŸ’αž“αžΆαŸ†αž„β€‹αž€αŸ’αž“αž»αž„β€‹αž…αž„αŸ’αž€αŸ„αž˜αŸ” αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž“αžΆαž€αŸ‹αž•αŸ’αžŸαŸαž„αŸ—αž“αŸƒαžŸαŸŠαžΈαž—αžΈαž™αžΌ Intel 64 αž”αŸŠαžΈαž αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† SSE4, AVX2, AVX-512 αž“αž·αž„ XMX (Xe Matrix Extensions) αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž” Apple Silicon αž“αž·αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž˜αžΆαž“ Intel Xe GPUs (Arc, Flex αž“αž·αž„ Max series) αŸ” NVIDIA (αž•αŸ’αž’αŸ‚αž€αž›αžΎαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ Volta, Turing, Ampere, Ada Lovelace αž“αž·αž„ Hopper) αž“αž·αž„ AMD (αž•αŸ’αž’αŸ‚αž€αž›αžΎαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ RDNA2 (Navi 21) αž“αž·αž„ RDNA3 (Navi 3x)) αŸ” αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ SSE4.1 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž‡αžΆαžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž’αž”αŸ’αž”αž”αžšαž˜αžΆαŸ”

αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ Intel αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™ Open Image Denoise 2.0 Image Denoise Library
αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ Intel αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™ Open Image Denoise 2.0 Image Denoise Library

αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ Open Image Denoise 2.0αŸ–

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ускорСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ подавлСния ΡˆΡƒΠΌΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ GPU. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° выноса вычислСний Π½Π° сторону GPU ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ систСм SYCL, CUDA ΠΈ HIP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с GPU Π½Π° Π±Π°Π·Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Intel Xe, AMD RDNA2, AMD RDNA3, NVIDIA Volta, NVIDIA Turing, NVIDIA Ampere, NVIDIA Ada Lovelace ΠΈ NVIDIA Hopper.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ API для управлСния Π±ΡƒΡ„Π΅Ρ€ΠΎΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ с хоста ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ внСшниС Π±ΡƒΡ„Π΅Ρ€Ρ‹ ΠΈΠ· графичСских API, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Vulkan ΠΈ Direct3D 12.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° асинхронного Ρ€Π΅ΠΆΠΈΠΌΠ° выполнСния (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ oidnExecuteFilterAsync ΠΈ oidnSyncDevice).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ API для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ запросов ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π² систСмС физичСским устройствам.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция oidnNewDeviceByID для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ устройства Π½Π° основС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° физичСского устройства, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, UUID ΠΈΠ»ΠΈ адрСса PCI.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ пСрСносимости с SYCL, CUDA ΠΈ HIP.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ устройств (systemMemorySupported, managedMemorySupported, externalMemoryTypes).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ для задания уровня качСства Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ².

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

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