Changelog#
[0.4.1] - 2026-10-18#
Changed#
Update default kernel configuration for tiles of 1024 elements
Compile the CUDA kernels without the grid-stride loop:
@wp.kernel(grid_stride=False)
Fixed#
Fix
AsinhandAtanhto preserve the sign of zero (-0.0input returns-0.0)
[0.4.0] - 2026-10-01#
Added#
Add
Abs,Acos,Acosh,Add,Asin,Asinh,Atan,Atanh,AvgPool1D,AvgPool2D,BatchNorm,BitwiseAnd,BitwiseNot,BitwiseOr,BitwiseXor,Ceil,CELU,Clip,Cos,Cosh,Div,Dropout,Erf,Exp,Floor,GELU,GlobalAvgPool,GlobalMaxPool,GroupNorm,GRU,HardSigmoid,HardSwish,Identity,InstanceNorm,LayerNorm,Log,LogSoftmax,LSTM,Max,MaxPool1D,MaxPool2D,Min,Mish,Mul,Neg,Pow,PReLU,Reciprocal,RMSNorm,RNN,Round,Shrink,Sign,Sin,Sinh,Softmax,Sqrt,Sub,Swish,TanandThresholdmodulesAdd
Bufferclass and module buffers (non-learnable state arrays, such as running statistics)Add training/evaluation modes to modules (
trainingproperty, andtrain()andeval()methods)Add the
requires_gradconstructor argument to modules that own parameters and/or cached output arrays, to control whether those arrays require gradientsAdd the
initialize_parametersconstructor argument to layers that own parameters, to control whether those parameters are initialized with their default/initial valuesAdd
copy()utility to copy (possibly non-contiguous) arrays with gradient propagation
Changed#
Update the minimum required Warp version to 1.15.0
Update default kernel configuration for tile dimensions
Update
OnnxRuntimeONNX inference runtime to use the implemented modules as ONNX operators. Mark thebatch_sizeandinput_batch_axesconstructor arguments as deprecated in favor ofOnnxRuntime.prepare()method, and theinput_names,output_namesand_shapesattributes as deprecated in favor ofOnnxRuntime.inputsandOnnxRuntime.outputsproperties
Changed (breaking changes)#
Rename
SoftPlusandSoftSignactivations toSoftplusandSoftsignrespectivelyMove
Tanhactivation definition to operators
Fixed#
Fix crash when calling a module after moving it to another device (the cached arrays were not reallocated)
Fix optimizers’ CUDA graph capture and kernel-sharing bugs: first
step()/clip_by_total_norm()call, gradient clipping, and per-optimizereps/max_normhandlingFix numerical issues of activations:
ReLUdid not propagate NaN inputs,Sigmoidyielded NaN gradients for large negative inputs, andSoftplusoverflowed (with NaN gradients) for large positive inputsFix NaN gradients of
GRUCellandLSTMCellfor saturated gates (large negative pre-activations)Fix wrong gradients of
LSTMCellwith respect to its hidden state outputFix
kernel_config()resetting the unspecified values toNone(instead of keeping the enclosing/default ones)
[0.3.1] - 2026-07-28#
Changed#
Update the ONNX inference runtime to include opt-in support for gradient propagation
[0.3.0] - 2026-07-03#
Added#
Add graph-capturable
OnnxRuntimeONNX inference runtime
[0.2.0] - 2026-05-23#
Added#
Add
Flattenlayer
[0.1.0] - 2026-04-08#
Added#
Initial release