Skip to content

lchang552/xetla

 
 

Repository files navigation

Intel® Xe Templates for Linear Algebra v0.3.1

Intel® Xe Templates for Linear Algebra (Intel® XeTLA) is a collection of SYCL/eSIMD templates that enable high-performance General Matrix Multiply (GEMM), Convolution (CONV), and related computations on Intel Xe GPU architecture. Intel® XeTLA offers reusable C++ templates for subgroup, workgroup, and kernel levels, allowing developers to optimize and specialize kernels based on data types, tiling policies, algorithms, fusion policies, and more.

One of the key features of Intel® XeTLA is its ability to abstract and hide details of Xe hardware implementations, particularly those related to matrix computations, such as the systolic array and other low level instructions. This ensures that SYCL/DPC++ developers can focus on leveraging the performance benefits of Intel® XeTLA without being burdened by hardware-specific instructions.

Compatibility

Hardware

Intel® Data Center GPU Max Series, Driver Version: 602

Software

Intel® XeTLA requires a C++20 host compiler.

Features

GEMM

  • Data type
    • Vector-engine-based: fp32
    • Matrix-engine-based: tf32, fp16, bf16
  • Memory layout
    • Matrix A: row-major, col-major
    • Matrix B: row-major, col-major
    • Matrix C: row-major
  • Epilogue
    • Bias_add
    • Relu
    • Gelu forward + backward

Documentation

  • Quick Start introduces how to build and run tests/examples.
  • API Reference provides a comprehensive reference of the library APIs.
  • Programming Guidelines explains programming model, functionalities, implementation details, and annotated examples.
  • Terminology describes terms used in the project.
  • Release Notes describes new features and known issues.

Project Structure

include/                       # Definitions of Intel® XeTLA APIs
    common/                    #    - Low level APIs that wrap the same functionality APIs from ESIMD
    experimental/              #    - Experimental features
    group/                     #    - Group level APIs 
    kernel/                    #    - Kernel level APIs
    subgroup/                  #    - Subgroup level APIs
    xetla.hpp                  #    - Unified and unique external head file

tests/                         # Tests to verify correctness of Intel® XeTLA APIs
    integration/               #    - Integration testes
    unit/                      #    - Unit tests
    utils/                     #    - Utils implement of unit and integration tests

examples/                      # Examples of Intel® XeTLA basic/fused kernels

tools/                         # Tools for code format, build environment...

media/                         # Documents

Contributing

Refer to Contributing Guidelines.

Limitations

Refer to Limitations.

Security

See Intel's Security Center for information on how to report a potential security issue or vulnerability.

See also: Security Policy

Copyright

Copyright (c) 2022-2023 Intel Corporation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

xetla-spirv-extension

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.2%
  • Other 0.8%