Skip to content
Merged
Show file tree
Hide file tree
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
23 changes: 12 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,27 @@
# hipBLASLt
hipBLASLt is a library that provides general matrix-matrix operations.
hipBLASLt is created using the HIP programming language and optimized for AMD's latest discrete GPUs.
hipBLASLt provides flexible APIs to let users set attributes for solution selection.\
hipBLASLt is an equivalent math library to CUDA's cuBLASLt which is a lightweight library dedicated to GEneral Matrix-to-matrix Multiply (GEMM) operations with new flexible APIs.
hipBLASLt is a library that provides general matrix-matrix operations with a flexible API and extends funtionalities beyond traditional BLAS library.
hipBLASLt is exposed APIs in HIP programming language with an underlying optimized generator as a backend kernel provider.

This library adds flexibility in matrix data layouts, input types, compute types, and also in choosing the algorithmic implementations and heuristics through parameter programmability.
After a set of options for the intended GEMM operation are identified by the user, these options can be used repeatedly for different inputs.
It is designed to be used from C and C++ code. The GEMM operation of hipBLASLt is performed by hipblasLtMatmul().\
The equation is listed here:
The GEMM operation of hipBLASLt is performed by hipblasLtMatmul API.

The equation is as below:
```math
D = Activation(alpha \cdot op(A) \cdot op(B) + beta \cdot op(C) + bias)
```
Where op(A)/op(B) refers to in-place operations such as transpose/non-transpose, and alpha, beta are scalars.\
Acitivation function support relu and gelu.\
Where op(A)/op(B) refers to in-place operations such as transpose/non-transpose, and alpha, beta are scalars.
Acitivation function supports Gelu, Relu.

Here are data type supported list:
| A | B | C | D | Compute(Scale) |
| :---: | :---: | :---: | :---: | :---: |
| fp32 | fp32 | fp32 | fp32 | fp32 |
| fp16 | fp16 | fp16 | fp16 | fp32 |
| bf16 | bf16 | bf16 | bf16 | fp32 |

## Documentation (TBD)
TBD
## Documentation
Refer to doc folder

## Requirements
* Git
Expand All @@ -30,7 +31,7 @@ TBD
* AMD [ROCm] 5.5 or later

## Required ROCM library
* hipBLAS
* hipBLAS (for the header file)

## Quickstart hipBLASLt build and install

Expand Down
13 changes: 6 additions & 7 deletions docs/source/intro.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,23 @@ Introduction
General Description
===================

hipBLASLt is created using the HIP programming language and optimized for AMD's latest discrete GPUs.
hipBLASLt is an equivalent math library to CUDA's cuBLASLt which is a lightweight library dedicated to GEneral Matrix-to-matrix Multiply (GEMM) operations with a new flexible API.
hipBLASLt is a library that provides general matrix-matrix operations with a flexible API and extends funtionalities beyond traditional BLAS library.
hipBLASLt is exposed APIs in HIP programming language with an underlying optimized generator as a backend kernel provider.

This library adds flexibility in matrix data layouts, input types, compute types, and also in choosing the algorithmic implementations and heuristics through parameter programmability.
After a set of options for the intended GEMM operation are identified by the user, these options can be used repeatedly for different inputs. It is designed to be used from C and C++ code.
After a set of options for the intended GEMM operation are identified by the user, these options can be used repeatedly for different inputs.

The GEMM operation of hipBLASLt is performed by :ref:`hipblasltmatmul`. The equation is listed here:

.. math::

D = Activation(alpha \cdot op(A) \cdot op(B) + beta \cdot op(C) + bias)

where :math:`op(A)/op(B)` refers to in-place operations such as transpose/non-transpose, and alpha, beta are scalars.
Acitivation function supports Gelu, Relu.

The code is open and hosted here: https://github.com/ROCmSoftwarePlatform/hipBLASLt

hipBLASLt exports an interface that does not require the client to change, regardless of the chosen backend.
hipBLASLt currently support rocBLASLt (core implementation of hipBLASLt) as backend. hipBLASLt will support cuBLASLt as backends in the coming release.


hipBLASLt Logging
=================
The hipBLASLt logging mechanism can be enabled by setting the following environment variables before launching the target application:
Expand Down