ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Intel ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° Π²ΡΠΏΡΡΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠ° oidn 2.0 (Open Image Denoise), ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΡΠΈΠ»ΡΡΡΠΎΠ² Π΄Π»Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΠΌΠΎΠ² Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΡ , ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π»ΡΡΠ΅ΠΉ. Open Image Denoise ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° oneAPI Rendering Toolkit, Π½Π°ΡΠ΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π°ΡΡΠ½ΡΡ ΡΠ°ΡΡΡΡΠΎΠ² (SDVis (Software Defined Visualization), Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π»ΡΡΠ΅ΠΉ Embree, ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΎΡΠΎΡΠ΅Π°Π»ΠΈΡΡΠΈΡΠ½ΠΎΠΉ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ GLuRay, ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π»ΡΡΠ΅ΠΉ OSPRay ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΠ°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ OpenSWR. ΠΠΎΠ΄ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘++ ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0.
Π¦Π΅Π»ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ , ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΠΈ ΠΏΡΠΎΡΡΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΡΠΌΠΎΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π»ΡΡΠ΅ΠΉ. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΈΠ»ΡΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΠΎΠΊΡΠ°ΡΡΠ½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π»ΡΡΠ΅ΠΉ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΡΠΎΠ³ΠΎΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°, ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌΡΠΉ Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ Π·Π°ΡΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π΄Π΅ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°.
Open Image Denoise ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΎΡΡΠ΅ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ ΡΡΠΌΠ°, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠ΅Π³ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ΅ Π»ΡΡΠ΅ΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΠΎΠ½ΡΠ΅-ΠΠ°ΡΠ»ΠΎ (MCRT). ΠΠ»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°Ρ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π»ΡΡΠ΅ΠΉ, ΠΈΠ½Π°ΡΠ΅ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π·Π°ΠΌΠ΅ΡΠ½ΡΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ ΡΡΠΌΠ°.
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Open Image Denoise ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ² ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΏΡΠΈ ΡΠ°ΡΡΡΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Ρ. Π ΠΈΡΠΎΠ³Π΅, ΠΌΠΎΠΆΠ½ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π·Π°ΡΡΠΌΠ»ΡΠ½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ Π·Π°ΡΠ΅ΠΌ Π΄ΠΎΠ²Π΅ΡΡΠΈ Π΅Π³ΠΎ Π΄ΠΎ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π±ΡΡΡΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΌΠΎΠ². ΠΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π°ΠΆΠ΅ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π»ΡΡΠ΅ΠΉ c ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠΌΠΎΠ² Π½Π° Π»Π΅ΡΡ.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠ°Ρ ΡΡΡΡΠΎΠΉΡΡΠ², ΠΎΡ Π½ΠΎΡΡΠ±ΡΠΊΠΎΠ² ΠΈ ΠΠ, Π΄ΠΎ ΡΠ·Π»ΠΎΠ² Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ°Ρ . Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ CPU Intel Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ SSE4, AVX2, AVX-512 ΠΈ XMX (Xe Matrix Extensions), ΡΠΈΠΏΠΎΠ² Apple Silicon ΠΈ ΡΠΈΡΡΠ΅ΠΌ Ρ GPU Intel Xe (ΡΠ΅ΡΠΈΠΈ Arc, Flex ΠΈ Max), NVIDIA (Π½Π° Π±Π°Π·Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ Volta, Turing, Ampere, Ada Lovelace ΠΈ Hopper) ΠΈ AMD (Π½Π° Π±Π°Π·Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ RDNA2 (Navi 21) ΠΈ RDNA3 (Navi 3x)). Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΡΠ²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° SSE4.1.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π²ΡΠΏΡΡΠΊΠ΅ 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