Skip to content
This repository has been archived by the owner on Jun 28, 2024. It is now read-only.
forked from ROCm/hipBLASLt

hipBLASLt is a library that provides general matrix-matrix operations with a flexible API and extends functionalities beyond a traditional BLAS library

License

Notifications You must be signed in to change notification settings

are-we-gfx1100-yet/hipBLASLt

This branch is 1513 commits behind ROCm/hipBLASLt:develop.

Folders and files

NameName
Last commit message
Last commit date
Dec 14, 2022
Apr 20, 2023
Jun 19, 2023
Dec 14, 2022
Dec 14, 2022
Dec 23, 2022
Jun 19, 2023
Jun 19, 2023
Jun 26, 2023
Nov 22, 2022
Mar 22, 2023
Mar 22, 2023
Jun 2, 2023
Jun 2, 2023
Dec 14, 2022
Jun 2, 2023
Dec 14, 2022

Repository files navigation

hipBLASLt

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. The GEMM operation of hipBLASLt is performed by hipblasLtMatmul API.

The equation is as below:

D = A c t i v a t i o n ( a l p h a o p ( A ) o p ( B ) + b e t a o p ( C ) + b i a s ) s c a l e D v e c t o r

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. Bias vector and scaleD vector match matrix D rows and broadcast to all D columns.

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

Run the steps below to build documentation locally.

cd docs

pip3 install -r .sphinx/requirements.txt

python3 -m sphinx -T -E -b html -d _build/doctrees -D language=en . _build/html

Hardware Requirements

  • gfx90a card

Software Requirements

  • Git
  • CMake 3.16.8 or later
  • python3.7 or later
  • python3.7-venv or later
  • AMD ROCm 5.5 or later

Required ROCM library

  • hipBLAS (for the header file)

Quickstart hipBLASLt build and install

Install script

You can build hipBLASLt using the install.sh script

# Clone hipBLASLt using git
git clone https://github.com/ROCmSoftwarePlatform/hipBLASLt

# Go to hipBLASLt directory
cd hipBLASLt

# Run install.sh script
# Command line options:
#   -h|--help         - prints help message
#   -i|--install      - install after build
#   -d|--dependencies - install build dependencies
#   -c|--clients      - build library clients too (combines with -i & -d)
#   -g|--debug        - build with debug flag
./install.sh -idc

Unit tests

To build unit tests, hipBLASLt has to be built with --clients.
All unit tests are in path build/release/clients/staging/.
Please check these links for more information.
hipblaslt-test
hipblaslt-bench
example_XXX

Support

Please use the issue tracker for bugs and feature requests.

License

The license file can be found in the main repository.

About

hipBLASLt is a library that provides general matrix-matrix operations with a flexible API and extends functionalities beyond a traditional BLAS library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 46.3%
  • Python 38.3%
  • Assembly 12.5%
  • CMake 2.1%
  • Shell 0.6%
  • C 0.2%