Hacker Newsnew | past | comments | ask | show | jobs | submit | kylelutz's commentslogin

I'm working on an open-source C++ library for GPGPU/parallel-computing based on OpenCL called Boost.Compute.

Check it out here: https://github.com/kylelutz/compute


Boost.Compute (https://github.com/kylelutz/compute) is a C++ GPGPU based on OpenCL.

We're always looking for more contributors with knowledge of C++ and an interest in GPU computing.


If you're using C++, check out Boost.Compute [1]. It provides a high-level STL-like API for OpenCL (without preventing you from directly using the low-level OpenCL APIs). It simplifies common tasks such as copying data to/from the device and also provides a number of built-in algorithms (e.g. sorting/reducing/transforming, etc).

[1] https://github.com/kylelutz/compute


Would you be interested in trying to adapt some of your approaches into a C++ GPGPU library (https://github.com/kylelutz/compute)?


Hey that's pretty cool, and would probably make OpenCL usable by mere mortals. One improvement that I see you could borrow from vector is getting rid of this explicit copying business. Take a look at the array implementation in our runtime library.

https://github.com/vectorlang/vector/blob/master/rtlib/vecto...

Basically, the VectorArray class contains both the host array pointer and the device array pointer. There are also two boolean flags, h_dirty and d_dirty. When you modify array elements on the host, h_dirty is set to one. Then, when you run a kernel, the data is copied to the device if h_dirty is set, h_dirty is cleared, and d_dirty is set. When you try to read an array element again on the CPU, the data is copied from device to host if d_dirty is set, and d_dirty is then cleared.


Industrial Perception is hiring: http://www.industrial-perception.com/careers.html


Boost.Compute (https://github.com/kylelutz/compute) - A C++ GPU Computing Library for OpenCL

It's cool because it offers C++ developers an easy path to running code on GPUs and multi-core CPUs via an STL-like API. It's similar to NVIDIA's Thrust library but supports all OpenCL compatible devices (including AMD GPUs and Intel CPUs/accelerators).

Documentation is here: http://kylelutz.github.io/compute/

P.S. It's still under active development and we're looking for more contributors with an interest in parallel computing and C++. Send me an e-mail if you're interested!


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: