https://github.com/no-defun-allowed/oclcl-petalisp
A OpenCL backend for Petalisp which is somewhat faster than ye-olde-oclcl-petalisp
https://github.com/no-defun-allowed/oclcl-petalisp
Last synced: 2 months ago
JSON representation
A OpenCL backend for Petalisp which is somewhat faster than ye-olde-oclcl-petalisp
- Host: GitHub
- URL: https://github.com/no-defun-allowed/oclcl-petalisp
- Owner: no-defun-allowed
- License: agpl-3.0
- Created: 2019-11-03T06:19:08.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-12-26T04:59:46.000Z (over 3 years ago)
- Last Synced: 2025-01-31T05:47:21.390Z (4 months ago)
- Language: Common Lisp
- Homepage:
- Size: 49.8 KB
- Stars: 6
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
# OpenCL (oclcl) on Petalisp
This is a slow but functioning backend for [Petalisp](https://github.com/marcoheisig/Petalisp)
that can utilise a graphics card to theoretically run Petalisp code which deals only in real
numerical arrays faster than on a CPU.## Dependencies
These can, and probably should, be obtained from Quicklisp:
- [Petalisp](https://github.com/marcoheisig/Petalisp) for some really weird reason
- [oclcl](https://github.com/guicho271828/eazy-opencl) for generating OpenCL codeThis cannot be obtained from Quicklisp:
- [eazy-opencl](https://github.com/guicho271828/eazy-opencl) for running OpenCL code
Cloning eazy-opencl into `~/quicklisp/local-projects` will allow you to load it with Quicklisp.
## Bugs
- I have witnessed a few "random" memory faults over many computations, which is scary.
This might have to do with how eazy-opencl deals with device memory, and how it depends on
finalisers which a garbage collector with little work to do will seldom run. It is also
unclear how to manually free said device memory.
- ~~Reduction is supposed to occur over a binary tree, instead of linearly like CL:REDUCE.
In "concrete" terms, this means we should compute `f(f(x1, x2), f(x3, x4))` instead of
`f(f(f(x1, x2), x3), x4)`, for a function `f` and values `x1` through `x4`.~~ haha no
🦎REDUCTIONS🦎ARE🦎GONE🦎🦎🦎