All Projects → inducer → Loopy

inducer / Loopy

Licence: mit
A code generator for array-based code on CPUs and GPUs

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Loopy

Pyopencl
OpenCL integration for Python, plus shiny features
Stars: ✭ 790 (+115.26%)
Mutual labels:  array, multidimensional-arrays, opencl, cuda, scientific-computing, performance
Arrayfire
ArrayFire: a general purpose GPU library.
Stars: ✭ 3,693 (+906.27%)
Mutual labels:  opencl, cuda, scientific-computing, performance
Pycuda
CUDA integration for Python, plus shiny features
Stars: ✭ 1,112 (+203%)
Mutual labels:  array, multidimensional-arrays, cuda, scientific-computing
Vexcl
VexCL is a C++ vector expression template library for OpenCL/CUDA/OpenMP
Stars: ✭ 626 (+70.57%)
Mutual labels:  opencl, cuda, scientific-computing
Arraymancer
A fast, ergonomic and portable tensor library in Nim with a deep learning focus for CPU, GPU and embedded devices via OpenMP, Cuda and OpenCL backends
Stars: ✭ 793 (+116.08%)
Mutual labels:  multidimensional-arrays, opencl, cuda
Amgcl
C++ library for solving large sparse linear systems with algebraic multigrid method
Stars: ✭ 390 (+6.27%)
Mutual labels:  opencl, cuda, scientific-computing
pystella
A code generator for grid-based PDE solving on CPUs and GPUs
Stars: ✭ 18 (-95.1%)
Mutual labels:  opencl, scientific-computing, code-generation
qm
QM model-based design tool and code generator based on UML state machines
Stars: ✭ 54 (-85.29%)
Mutual labels:  code-generator, code-generation
hipacc
A domain-specific language and compiler for image processing
Stars: ✭ 72 (-80.38%)
Mutual labels:  opencl, cuda
php-code-generator
PHP code generator library
Stars: ✭ 144 (-60.76%)
Mutual labels:  code-generator, code-generation
Xmlschemaclassgenerator
Generate C# classes from XML Schema files
Stars: ✭ 277 (-24.52%)
Mutual labels:  code-generation, code-generator
autogenu-jupyter
An automatic code generator for nonlinear model predictive control (NMPC) and the continuation/GMRES method (C/GMRES) based numerical solvers for NMPC
Stars: ✭ 89 (-75.75%)
Mutual labels:  code-generator, code-generation
molicode
molicode
Stars: ✭ 75 (-79.56%)
Mutual labels:  code-generator, code-generation
crowdsource-video-experiments-on-android
Crowdsourcing video experiments (such as collaborative benchmarking and optimization of DNN algorithms) using Collective Knowledge Framework across diverse Android devices provided by volunteers. Results are continuously aggregated in the open repository:
Stars: ✭ 29 (-92.1%)
Mutual labels:  opencl, cuda
SoliditySHA3Miner
All-in-one mixed multi-GPU (nVidia, AMD, Intel) & CPU miner solves proof of work to mine supported EIP918 tokens in a single instance (with API).
Stars: ✭ 28 (-92.37%)
Mutual labels:  opencl, cuda
Blitz
Blitz++ Multi-Dimensional Array Library for C++
Stars: ✭ 257 (-29.97%)
Mutual labels:  array, scientific-computing
monolish
monolish: MONOlithic LInear equation Solvers for Highly-parallel architecture
Stars: ✭ 166 (-54.77%)
Mutual labels:  cuda, scientific-computing
Efdesigner
Entity Framework visual design surface and code-first code generation for EF6, Core and beyond
Stars: ✭ 256 (-30.25%)
Mutual labels:  code-generation, code-generator
Fpp
Functional PHP Preprocessor - Generate Immutable Data Types
Stars: ✭ 282 (-23.16%)
Mutual labels:  code-generation, code-generator
Arrayfire Python
Python bindings for ArrayFire: A general purpose GPU library.
Stars: ✭ 358 (-2.45%)
Mutual labels:  opencl, cuda

Loopy: Transformation-Based Generation of High-Performance CPU/GPU Code

.. image:: https://gitlab.tiker.net/inducer/loopy/badges/main/pipeline.svg :alt: Gitlab Build Status :target: https://gitlab.tiker.net/inducer/loopy/commits/main .. image:: https://github.com/inducer/loopy/workflows/CI/badge.svg?branch=main&event=push :alt: Github Build Status :target: https://github.com/inducer/loopy/actions?query=branch%3Amain+workflow%3ACI+event%3Apush .. image:: https://badge.fury.io/py/loopy.png :alt: Python Package Index Release Page :target: https://pypi.org/project/loopy/

Loopy lets you easily generate the tedious, complicated code that is necessary to get good performance out of GPUs and multi-core CPUs. Loopy's core idea is that a computation should be described simply and then transformed into a version that gets high performance. This transformation takes place under user control, from within Python.

It can capture the following types of optimizations:

  • Vector and multi-core parallelism in the OpenCL/CUDA model
  • Data layout transformations (structure of arrays to array of structures)
  • Loop unrolling
  • Loop tiling with efficient handling of boundary cases
  • Prefetching/copy optimizations
  • Instruction level parallelism
  • and many more

Loopy targets array-type computations, such as the following:

  • dense linear algebra,
  • convolutions,
  • n-body interactions,
  • PDE solvers, such as finite element, finite difference, and Fast-Multipole-type computations

It is not (and does not want to be) a general-purpose programming language.

Loopy is licensed under the liberal MIT license <https://en.wikipedia.org/wiki/MIT_License>_ and free for commercial, academic, and private use. All of Loopy's dependencies can be automatically installed from the package index after using::

pip install loopy

In addition, Loopy is compatible with and enhances pyopencl <https://mathema.tician.de/software/pyopencl>_.


Places on the web related to Loopy:

  • Python package index <https://pypi.org/project/loopy>_ (download releases)
  • Documentation <https://documen.tician.de/loopy>_ (read how things work)
  • Github <https://github.com/inducer/loopy>_ (get latest source code, file bugs)
  • Homepage <https://mathema.tician.de/software/loopy>_
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].