Coder Social home page Coder Social logo

gimmik's Introduction

GiMMiK

Generator of Matrix Multiplication Kernels - GiMMiK - is a tool for generation of high performance matrix multiplication kernel code for various accelerator platforms. Currently C, CUDA, ISPC, HIP and OpenCL are supported.

What does GiMMiK do?

Consider matrix multiplication of the form

C = α∙A×B + β∙C

GiMMiK generates fully unrolled kernels, highly specialised to a given operator matrix. The generated code is fully unrolled - each kernel computes a single column of the output matrix. GiMMiK was designed to perform well in a Block by Panel type of matrix multiplication where the operator matrix is small. GiMMiK also removes any sparsity form the operator matrix as well as attempts to reduce common sub-expressions.

How do I install GiMMiK?

Clone the git repository and use setup.py to install the GiMMiK package. You will need the following dependencies:

Once obtained, you can install GiMMiK by running

python setup.py install

to perform a system-wide install. Alternatively, run

python setup.py install --user

to install the package locally.

How do I use GiMMiK?

Once installed, you are ready to use GiMMiK.

from gimmik import generate_mm

...

# Generate a CUDA kernel for C = 2*mat*B
src = generate_mm(mat, np.float32, platform='cuda', alpha=2.0, beta=0.0)

...

Who uses GiMMiK?

GiMMiK was develop to improve performance of the PyFR framework.

gimmik's People

Contributors

bartwozniak avatar freddiewitherden avatar petebachant avatar pv101 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.