harlan
harlan copied to clipboard
A language for GPU computing.
Running a kernel over a vector that looks like this: ``` (vector (vector 1) (iota 1000000) (vector 1 2 3)) ``` basically runs sequentially, since each dimension of the kernel...
Whether this means throwing a compile time error (easier), or running on the CPU at runtime (harder), we have to do _something_.
Ryan is interested in using Harlan as a backend for GPU computing in MonadPar (I think). To make this easier and faster, it'd be nice if Harlan had a JIT...
You can put a zero length vector as a kernel argument, which causes errors in OpenCL. We should either make this an error, or make our kernels evaluate to zero-length...
For example, it is possible that `x` in this example is not a perfectly rectangular, ``` (kernel ((row x) ((i row)) ...) ``` but if it _is_ rectangular (or, close...
CUDA and OpenCL don't seem to provide this already. Since we are generating our own code, there's a chance we could do this. This would be really handy for people...
We should add Scheme-style symbols. As long as we don't include things like `(string->symbol ...)`, it shouldn't cause too many problems. Basically, we'd create symbols by doing `'x`. Then we'd...
There are a few xfailed tests that are progress towards this issue, but none of them are complete..