- Notifications
You must be signed in to change notification settings - Fork73
A code generator for array-based code on CPUs and GPUs
License
inducer/loopy
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Loopy lets you easily generate the tedious, complicated code that is necessaryto get good performance out of GPUs and multi-core CPUs.Loopy's core idea is that a computation should be described simply and thentransformed into a version that gets high performance. This transformationtakes 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, andFast-Multipole-type computations.
It is not (and does not want to be) a general-purpose programming language.
Loopy is licensed under the liberalMIT license and free for commercial, academic,and private use. All of Loopy's dependencies can be automatically installed fromthe package index after using:
pip install loopy
In addition, Loopy is compatible with and enhancespyopencl.
---
Places on the web related to Loopy:
- Python Package Index (download releases)
- Documentation (read how things work)
- Github (get latest source code, file bugs)
- Homepage
- Benchmarks
About
A code generator for array-based code on CPUs and GPUs