diff --git a/src/gpu/generic/sycl/README.md b/src/gpu/generic/sycl/README.md index 20dc87041b3..e7ff444462d 100644 --- a/src/gpu/generic/sycl/README.md +++ b/src/gpu/generic/sycl/README.md @@ -33,11 +33,56 @@ one, the environment variable can be set to `cuda:*`. # Supported Primitives +General limitations: + +* Currently blocked formats are not supported by any implementations unless + explicitly listed +* There's a limit of maximum 5 post-ops for the implementations +* The maximum supported size of any dimension of any input/output tensor of a + primitive is `INT32_MAX` + ## Batch Normalization The implementation supports both forward and backward directions. * Supported formats: `NCDHW`, `NDHWC`, `NCHW`, `NHWC`, `NCW`, `NWC`, `NC` +* Supported data types: + * Forward direction: `f32`, `bf16`, `f16`, `s8` + * Backward direction: `f32`, `bf16`, `f16` + +## Binary + +* Supported formats: plain formats, `Ab32a`, `aBc32b` +* Supported data types: `f32`, `bf16`, `f16`, `s8`, `u8`, `s32` + +## Convolution + +The implementation supports forward data, backward data, and backward weights +directions. + +* Supported input/output formats: plain formats +* Supported weights formats: `goiw`, `goihw`, `goidhw`, `oiw`, `oihw`, `oidhw` +* Supported data types: `f32`, `bf16`, `f16`, `s32`, `s8`, `u8` +* Limitations + * Some very large problem sizes currently return `unimplemented` due to an + issue with long execution times + +## Concat + +* Supported formats: plain formats +* Supported data types: `f32`, `bf16`, `f16`, `s8`, `s32` + +## Deconvolution + +The implementation supports forward and backward data and backward weights +directions. + +* Supported input/output formats: plain formats +* Supported weights formats: `goiw`, `goihw`, `goidhw`, `oiw`, `oihw`, `oidhw` +* Supported data types: `f32`, `bf16`, `f16`, `s32`, `s8`, `u8` +* Limitations + * Some problems with large input/output tensors currently return `unimplemented` + due to an issue with long execution times ## Eltwise @@ -47,31 +92,51 @@ The implementation supports both forward and backward directions. `gelu_tanh`, `hardsigmoid`, `hardswish`, `linear`, `log`, `logistic`, `mish`, `pow`, `relu`, `round`, `soft_relu`, `sqrt`, `square`,`swish` and `tanh` * Supported formats: `NCDHW`, `NDHWC`, `NCHW`, `NHWC`, `NCW`, `NWC`, `NC`, `N` +* Supported data types: `f32`, `bf16`, `f16`, `s32`, `s8`, `u8` + +## Layer Normalization + +The implementation supports both forward and backward directions. + +* Supported formats: `NCDHW`, `NDHWC`, `NCHW`, `NHWC`, `NCW`, `NWC`, `NC` +* Supported input/output data types for forward direction: `f32`, `bf16`, `f16`, + `s8`, `u8` +* Supported input/output data types for backward direction: `f32`, `bf16` +* Supported scale/shift data types: `f32`, `bf16`, `f16` ## LRN The implementation supports both forward and backward directions. * Supported formats: `NCDHW`, `NDHWC`, `NCHW`, `NHWC`, `NCW`, `NWC`, `NC` +* Supported data types: `f32`, `bf16`, `f16` + +## Matmul + +* Supported formats: plain formats +* Supported input/output data types: `f32`, `bf16`, `f16`, `s8`, `u8`, `s32` +* Limitations + * Runtime dims is not supported + * PReLU post-op is not supported ## Pooling The implementation supports both forward and backward directions. * Supported formats: `NCDHW`, `NDHWC`, `NCHW`, `NHWC`, `NCW`, `NWC` +* Supported data types for forward direction: `f32`, `bf16`, `f16`, `s8`, `u8` +* Supported data types for backward direction: `f32`, `bf16`, `f16` ## PReLU The implementation supports both forward and backward propagations. * Supported formats: `NCDHW`, `NDHWC`, `NCHW`, `NHWC`, `NCW`, `NWC`, `NC` - -* Forward pass supports `f32`, `f16`, `bf16`, `s8` and `u8` data types -* Backward pass supports `f32` and `bf16` data types +* Supported data types `f32`, `f16`, `bf16`, `s8` and `u8` data types ## Reorder -* Format support limitations: blocked formats are not supported +* Supported formats: plain formats * Supported data types: `f32`, `bf16`, `f16`, `s8`, `u8` ## Resampling @@ -79,18 +144,25 @@ The implementation supports both forward and backward propagations. The implementation supports both forward and backward directions. * Supported formats: `NCDHW`, `NDHWC`, `NCHW`, `NHWC`, `NCW`, `NWC` +* Supported data types: `f32`, `bf16`, `f16`, `s32`, `s8`, `u8` ## Softmax/LogSoftmax The implementation supports both forward and backward directions. * Supported formats: `NCDHW`, `NDHWC`, `NCHW`, `NHWC`, `NCW`, `NWC`, `NC` +* Supported data types for forward direction: `f32`, `bf16`, `f16`, `s8`, `u8` +* Supported data types for backward direction: `f32`, `bf16`, `f16` ## Shuffle The implementation supports both forward and backward propagations. * Supported formats: `NCDHW`, `NDHWC`, `NCHW`, `NHWC`, `NCW`, `NWC`, `NC` - * Forward pass supports `f32`, `f16`, `bf16` and `s8` data types. * Backward pass supports `f32` and `bf16` data types. + +## Sum + +* Supported formats: plain formats with up to 7 dimensions +* Supported data types: `f32`, `bf16`, `f16`, `s8`, `u8`