Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sycl: update documentation #2129

Merged
merged 1 commit into from
Oct 10, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 77 additions & 5 deletions src/gpu/generic/sycl/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Some very large problem sizes currently return `unimplemented` due to an
* Few substantial 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

Expand All @@ -47,50 +92,77 @@ 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

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`