NVIDIA? OptiX 9.0? ????? ‘????? ??(cooperative vectors)’?? ??? ??? ??????. ? ??? ?? ???? ?? ??? AI ?????? ??? ? ?? ???, NVIDIA RTX ?? ??? ??? ??? ?? ???? ?? ?? ??? ??? ??? ?????. ?? ?? NVIDIA RTX Neural Shaders? RTX Neural Texture Compression(NTC) ?? AI ??? ??? ??? ? ?? ??, ??? ?????? ???? ???? ?? ??? ????? ????.
????? ?? API? OptiX? ??? DirectX,?NVAPI,?Slang, Vulkan??? ?? ???? ????. ?? ???? ?? API? ????? ???? ????? ?? ??? ????, OptiX API? ??? ??? ?? ?? ??? ??? ? ??? ?????.
? ?? ??????
?? ????(MLP)? ?? ??? ????? ?? ?? ?????. ??? ???, MLP? ??? ??? ?? ???? ??? ? ????. ????? ??? ? ?? ?? ????, ?? ?? ??? ?? ??? ??? ?? ? ???, ?? ??? ?????? ? ??? ??? ??? ?? ? ????..
MLP? ????? ?? ??, ?? ?? ?? ?? ???, ??? ?? ??? ?????. ? ???? ?? ??? ??? ?? ??? ????.

MLP? ? ??? ??? ??? ?? ? ?? ??? ????. ?? ?? ??? ?? ???? ??? ??? ?? ??? ??, ????? ??? ??? ??? ?????. ? ???? ??? ??? ?? ??? ?? ??-?? ??? ?? ??? ??? ??, ? ??? ??(affine transform)?? ? ? ????.
? ?? ??? ??? ???? ???? ??? ??? ??? ???? ???, ?? ? ??? ? ?? ??? ????? ?? MLP? ? ??? ??? ???? ??? ? ????. ??? MLP? ? ??? ??? ??? ??? ???? ???? ??? ?? ? ???? ???? ?????.
?? ?? MLP??? ? ??? ?? ??? ?? ?? ?? ???? ?? ?????. ?? ?? 1?? ? ? ???, ? ??? ?? ?? ??? ???? ?? ?? 2? ?? ????.

? ?????? ??????
????? ??? ?? ?? ? ??? NVIDIA ?? ??? ??? ?? ??? ???? ????. ????? CUDA? SIMT(Single Instruction, Multiple Threads) ????? ??? ?? ??(warp)? ???? ???? ??? ?? ??? ??? ? ????. ??? ?? ???? ????? ????? ? ???? ????? ???? ??? ?? ??? ?????? ??? ????. ??, ?? ??? ????? ??-?? ??? ???? ???, ?? ????? ? ???? ?? ??-?? ??? ??? ? ?? ??? ??? ??? ???? ??? ??? ????.
??? CUDA API? ?? ???? ????? ???? ??? ???? ??, ????? ?? ??? ???? ???? ???? ?? ?????. CUDA ??? ????? ?? ?? ?? ??? ?? ? ?? ???, Matrix Multiplication Background User’s Guide? ???? ???.
??? ??? ???? ?? ????? ??? ??? ?? ??? ???? API? ??????:
- ?? ???? ????? ????? ?? ?? ?? ??
- ??? ???? ? ?? ? ?? ??? ??
- ? ????? ?? ???? ????, ?? ??? ????? ????? ??? ???
????? ??? ?? ??? ???? ?? ??? ???? ??? ??? ? ???, ??? ??? ?? ??? ? ????. ?? ?? ??? ??? ?? ? ?? ???? ??? MLP ???? ????, ??? ??? ??? ???? ???. ??? ?? ???(Shader Execution Reordering, SER)? ???? ??? ??? ????? ?????.
MLP ??? ????? ???? ??-?? ???? ?????, ?? ? ?? ???? ??? MLP? ??? ??? ?, ????? ?? API? ? ???? ??? ?? ?? ??? ???? ?? ??-?? ??? ?? ??? ??? ???? ??? ? ????. ?? ? ?? ‘?????(cooperative)’? ????? — ?? ???? ??? ?? ??-?? ???? ??? ??-?? ???? ???? ??.
?? ???? = ?? ???? × ??? ???? + ???? ????
outputMatrix = inputMatrix × weightsMatrix + biasMatrix

??? ??? ??? ??? ?? ??? 32??? ??, ?? ? ???? ??? ? ?? ??? ???? ?? ???? ?????.
OptiX?? ?? ?? ????
????? ??? ????? ?? ???? ??? ???? ?? ????, ??? ?? ?? ???? ??? ? ????. OptiX??? ? ????? ??? OptixCoopVec??? ???? ??? ?????. OptiX??? ????? ??? MLP? ?? ???? ??? ???? ? ???, ??? ?? ???? ?????.
????? ?? API??? ??-?? ??? ?? ??? optixCoopVecMatMul ??? ?????, ? ??? ? ??? ??? ??? ?????. ??? ???? ?? ?? ??? ??? ???? ??? ?? ???, ???? ? ?? ?? ??? ?????. ??? ??? ????? ?? API? ???? ??? ?? ???? ??? ??? ? ????.
?? ?? = ?? ?? × ?? + ????
outputVector = inputVector × matrix + bias

????? ??? ?? RTX ??? ?? ??? GPU?? OptiX? ?? ?????. ?? ??? ?? ??? optixDeviceContextGetProperty
??? OPTIX_DEVICE_PROPERTY_COOP_VEC
??? ??? ??? ? ????. ????? ??? ???? ?? ????? ?? ?? ?? ??? ?????, ?? ? ??? ?? ??? ???? ???.
?? ??
? ????? OptiX ????? ??, ? MLP ?? ??? ??? ? ???? ????? ?? API? ?????. ??? ?? ??? OptiX SDK? ??? optixNeuralTexture
??? ???? ???. ? ??? NTC SDK? ????, NTC SDK? ???? ??(??)??, ???? ??? ??? ?? ???? ????, ??? ??? ?? ???? ??(?? ??)? ?????. ???? NTC SDK? ??? ???? ???? ????, ?? optixNeuralTexture
? ?? ??? ? ????.
????? ??? ???? ??? C++ ???? ????? ?????. ???? ??? ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ????? ?????. ?? ???? ???? ?? ????? ?? ???? ?? ? ????.
using T_OUT = OptixCoopVec< float , 16 / * output channels * / >; ... T_OUT texel = inferTexel<T_OUT> ( latents, weights, x, y, ... ); |
? ??? ???? OptixCoopVec<>? ?? ??? ?? ?? T_OUT
? ?? ??? ??? ??? ? ????.evalMLP
??? ?? ?? ?? ??? ?? ?? MLP? ???? ??? ?????. ?? ?? ????, ?? ??? ?? MLP? ??? ??? ??? ?, ? ???? ????? ????, ??? ???? ??? ?????.
template <class T_OUT> evalMLP( T_OUT& outLayer, latents, mlpWeights, x, y ) { using T_IN = OptixCoopVec<half, 48 /* input vec size */ >; using T_HID = OptixCoopVec<half, 64 /* hidden layer size */ >; T_IN networkInputs = prepareNetworkInputs_FP16<T_IN>(x, y, latents); T_HID hiddenOut1 = evalLayer<T_IN, T_HID>( networkInputs, mlpWeights, 0, scaleBiasOffset, hiddenOut1); T_HID hiddenOut2 = evalLayer<T_HID, T_HID>( hiddenOut1, mlpWeights, weightOffset1, scaleBiasOffset, hiddenOut2); T_HID hiddenOut3 = evalLayer<T_HID, T_HID>( hiddenOut2, mlpWeights, weightOffset2, scaleBiasOffset, hiddenOut3 ); outLayer = evalLayer<T_HID, T_OUT>( hiddenOut3, mlpWeights, weightOffset3, scaleBiasOffset, outLayer); return true; } |
? ??? ??? ??? ?? ??? ??? ??? ?? ??? ?????. ??? ??? ??? ?????:
template < class T_IN, class T_OUT> evalLayer( T_IN& inputArray, uint8_t * weights, uint32_t weightsOffsetInBytes, uint32_t& biasOffsetInBytes, T_OUT& outputArray ) { outputArray = optixCoopVecMatMul < T_OUT, T_IN, OPTIX_COOP_VEC_ELEM_TYPE_FLOAT8_E4M3, / / inputInterpretation MAT_LAYOUT, / / matrixLayout false, / / transpose T_OUT::size, / / N T_IN::size, / / K OPTIX_COOP_VEC_ELEM_TYPE_FLOAT8_E4M3, / / matrixElementType OPTIX_COOP_VEC_ELEM_TYPE_FLOAT16 / / biasElementType >( inputArray, / / inputVector weights, / / matrix base ptr weightsOffsetInBytes, / / matrix offset weights, / / bias base ptr, same as weights biasOffsetInBytes / / bias offset ); / / increment offset to the next layer biasOffsetInBytes + = T_OUT::size * sizeof( T_OUT::value_type ); outputArray = activate<T_OUT>( outputArray ); } |
?? ?? ?? ??? ??? optixCoopVecMatMul
? ??? ??? ??? ?????. ?? ??? ??? ?? ??? ???? ?? ?? ??? ??? ?? ???????. ?? ?? ???? ??? ???? ??? ?? ???? ?? ?????. ?? ?? ?? ??? ??? ??? ?????.
?? ??? ??? ????, evalLayer ??? ?? ? ??? ??? ??? ???(base) ???? ???? ???? ??? ?? ????? ?? ????. ???? ???, ? ???? ???? ?? ?? ???? ?? ???? ? ????? ????. ? ???? ??? ???? ??? ??, ? base ???? ?? ???(weightsOffsetInBytes
, biasOffsetInBytes
)? ??? ???? ?????.
?? ???? ??? ???? ?? ? ?? ??? ????. ??, NTC ???? ??? ??? ?? ? API? ?? ??? ??? ?? ??? ??? ??? ??? ??? ??? ?????. ??? ? ??? ???? ??? ?? ???? ????? ??? ? ?? ???. ? ?? ???, ?????? ?? API? ??? ??? ??? ???? ???? ??? ?? optixCoopVecMatMul
? ???? ???? ???? ???? ???? ?????. ????? base ???? ????? ?? ????(?? ???? ???), ?? ?? ???? ??(shuffle) ? ???(unshuffle) ??? ???? ??? ????? ???? ??????.
?????, ??? ??? ??? ?? ???????:
template< class T_IN> VecT activate(const T_IN& x, bool scaleActivation = true) { T_IN tmp = optixCoopVecFFMA( x, T_IN( 1.0f / 3.0f ), T_IN( 0.5f ) ); tmp = optixCoopVecMin( optixCoopVecMax( tmp, 0.0f ), 1.f ); / / clamp T_IN result = optixCoopVecMin( x, 3.0f ); result = optixCoopVecMul( result, tmp ); if ( scaleActivation ) result = optixCoopVecFFMA( result, T_IN(invStep), T_IN(bias) ); return result; } |
MLP? ??? ??? ? ??? ?? ?? ???? ??? ??? ?????, ?? ??? ???? ???? ????? ?? ???? ?? ?? ????, ?? ??? ????. ???? ????? ?? ??? ??? ???? ?? ?? ?? ?? ?? ??? ?? ?????. ????? ???? ??? ? ?? ?? ?? ??? ??????, MLP?? ?? ??? ??? ???? ??? ? ?? ???? ??? ????. ?? ?? tanh, log2, exp2, min, max, ffma ? ??? ??? ???? ?????.
?? ??? ??? ????? ?? ? ?? ?? ??? ?????, ?? ??? ?? ?? ????. ??? ??? ?? ??? ?? ?? ??? ??? ???? ? ?? ????. ?? ??, T_IN(0.5f)?? OptixCoopVec ???? ??? ?? ??? 0.5? ??? ??? optixCoopVecFFMA? ?? ??? ? ????. ? ?? ??? ??? NTC SDK?? ???? ?????, ???? ????? ??? ?? ?? ???? ??? ?? ????. ?? ?? ? ??? ReLU ???? ?? ?? ???, optixCoopVecMax? ???? ?????.
?? ???
????? ??? RTX ?? ???? RTX Neural Texture Compression (NTC) ??? ????, ? ? ??? NVIDIA RTX Kit? ??? ?????. RTX Kit? ??? ???? ?? ?? ???? ??? ? ??? ??? ?? ?? ????? ?????. RTX Kit? ??? ???? ???, ? ?????? ?? ??? ?? ??? ??? “Get Started with Neural Rendering Using NVIDIA RTX Kit” ??? ??????.

?? 5? ??? ??? ??? GeForce RTX 5080 GPU? 16GB ??? ???? ???? ?? ??? ??? ??????. ? ??? ??? ?? 100? ??? 8K UDIM ???? ??? ???, ? ???? 5?? ???? ???? ????. ???? ???? ???? ??? ??? ??, VRAM 32GB ??? ???? ??, ?? 5080 GPU? ??? ? ? ?? ?????.
??? NTC(Neural Texture Compression)? ???? ??? ??? ???? 3GB ??? ?????. ?? BC ?? ?????? ? ? ?? ?? ??? ?????. ??? ??? ?? ???? ??, ?????, ?????, BVH, ????? ??? ???? ??? ? ???, ??? ??? ???? ??? ?? ?? 5080 GPU?? ??? ???? ??????.
?? ???? RTX Neural Shading SDK? ?? ??? ? ???, ? SDK? ???? ?? ?? ??? ????? ?????, ?? ??? ??? ??????? ??? ???? ??? ?? ? ??? ??? ?? ?????. ????? ??? ??? ??? ?? ?? ??(Real-Time Neural Appearance Models)? ???? ? ??? ??? ? ? ????.
?? ?? ??
??? ??? ?? ?? ???? ???? ???:
- ?? ? ??? ??: Tensor Core? ?????
optixCoopVecMatMul
?? ? ?? ? ???? ????, ???? ?? ??????. ?? ? ?? ?? ???? ???? ?? ??? ??? ??, ???? ?? ??? ??? ? ?? ??? ?????. - ? ?? ??: ?? ??? ??? ? ?? ?? ??? ?? ? ????. SER(Single Execution Region)? ??? ???? ??(coalesce)??, ?? ??? ???
optixCoopVecMatMul
? ???? ?? ????. - ??? ????: ??? ??? ??? ??? ??? ? ??? ????. OptiX? ??? ??? ?? ??? ??? ????? ?????, ?? ???? ?? ????. ??? ?? ?????? ?????
optixCoopVecMatrixConvert
? ?????.
OptiX ?? ??? ??? ??
OptiX? ?????? ??? ??? ??? ????, ???? ???? ??? ??? ?? ?????. ??? ??? OptiX Programming Guide? ?????. ?? ???? ??? ???? ? ?? ?? ??? optixCoopVecReduceSumAccumulate
? optixCoopVecOuterProductAccumulate
? ?? ???? ??? ??? ??? ?? ?? ? ??? ?????.
????
?????? ??? NVIDIA OptiX?? ???? ??? ?? ? API?, OptiX ??? ???? ??? ??? ?? ? ?? ??? ??? ? ??? ???????. ??? ?? ? ?? ??? MLP(?? ????) ?? ???? ???? ????? ????, cooperative vector? ?? ?? ????? ??? ? ?? ????. ???? Tensor Core? ????? ?? ? ??? ? ???? ???? ??? ?????, ?????? ??? ???? ??? ??? ??? ?? ?? ??? ??? ??? ?? ???? ???? ??-?? ? ??? ??? ? ????.
?????? ??? NVIDIA OptiX SDK 9.0?? ?? ????, 2025? 4? ? Agility SDK ???? ?? DirectX?? ???? ????. Vulkan? Slang??? ??? ???? ??, ???? ?? ?? ????? ??? ?? ?? ???? ??? ? ????. API? ?? ??? ??? ???? SDK? ??? PDF ?? ??? OptiX Programming Guide?? ??? ? ????.
OptiX SDK?? RTX Neural Texture Compression? ?? ??? optixNeuralTexture
??? ???? ????. ? ????? ?????? ??? ??? ??? ?? ? ??? ?? ?? ???? ????? ????, ?? ?? BC5? BC6 ?? ?? ?? ? 20?, ??? ???? ?? ???? ?? ?? 80?? ??? ??? ??? ???? ???.
??? ?????? ??? ??? ??? ?? ???? ??? ??? ?????. ? ?? ??? ?? ??? ??? ???? ??? NVIDIA ??? ??? OptiX ???? ????? ??? ???.
?? ???
- GTC ??: ??? ? ???? ???? ?? ?? ????? ??
- GTC ??: ???? ?? ???? ???? NVIDIA Omniverse Replicator? AI ??? ????
- GTC ??: GPU ?? ????? ??? ?? NIM ???(Lablup ??)
- SDK: OptiX
- SDK: Neural VDB
- SDK: RTX NTC-??? ??? ??