diff options
| author | Yong He <yonghe@outlook.com> | 2023-03-01 13:19:33 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-01 13:19:33 -0800 |
| commit | 6f31eae79d5b4297d0099c5779a9806a786cf9f8 (patch) | |
| tree | c2d6360994ee5730accab6236ed351ba682153a8 /docs/user-guide/07-autodiff.md | |
| parent | 6c26aa1f7e3e28e3053dffe686baa8e0499c624d (diff) | |
Implement derivatives for HLSL intrinsics. (#2684)
* Implement derivatives for HLSL intrinsics.
* Vector intrinsics.
* Add all intrinsics.
---------
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'docs/user-guide/07-autodiff.md')
| -rw-r--r-- | docs/user-guide/07-autodiff.md | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/docs/user-guide/07-autodiff.md b/docs/user-guide/07-autodiff.md index 5ca073983..244ebb47b 100644 --- a/docs/user-guide/07-autodiff.md +++ b/docs/user-guide/07-autodiff.md @@ -477,12 +477,17 @@ void back_prop( The following builtin functions are backward differentiable and both their forward-derivative and backward-propagation functions are already defined in the builtin library: -- Arithmetic functions: `abs`, `max`, `min`, `sqrt` -- Trigonometric functions: `sin`, `cos`, `tan` -- Exponential and logarithmic functions: `exp`, `pow`, `log`, `log2` -- Vector: `dot`, `cross` +- Arithmetic functions: `abs`, `max`, `min`, `sqrt`, `rcp`, `rsqrt`, `fma`, `mad`, `fmod`, `frac`, `radians`, `degrees` +- Interpolation and clamping functions: `lerp`, `smoothstep`, `clamp`, `saturate` +- Trigonometric functions: `sin`, `cos`, `sincos`, `tan`, `asin`, `acos`, `atan`, `atan2` +- Hyperbolic functions: `sinh`, `cosh`, `tanh` +- Exponential and logarithmic functions: `exp`, `exp2`, `pow`, `log`, `log2`, `log10` +- Vector functions: `dot`, `cross`, `length`, `distance`, `normalize`, `reflect`, `refract` - Matrix transform: `mul(matrix, vector)`, `mul(vector, matrix)`, `mul(matrix, matrix)`, `transpose` +Derivatives for the following legacy HLSL intrinsic functions are not implemented: +- `dst`, `lit`, + ## Excluding Parameters From Differentiation Sometimes we do not wish a parameter to be considered differentiable despite it has a differentiable type. We can use the `no_diff` modifier on the parameter to inform the compiler to treat the parameter as non-differentiable and skip generating differentiation code for the parameter. The syntax is: |
