|
Boost : |
Subject: Re: [boost] [compute] GPGPU Library - Request For Feedback
From: Karsten Ahnert (karsten.ahnert_at_[hidden])
Date: 2013-03-03 02:59:12
On 03/02/2013 11:25 PM, Kyle Lutz wrote:
> Hi everyone,
>
> A while back I posted a message asking for interest in a GPGPU computing
> library and the response seemed positive. I've been slowly working on it
> for the last few months and it has finally reached a usable state. I've
> made an initial release on GitHub (details below) and would like to get
> feedback from the community.
>
> The Boost Compute library provides a partial implementation of the C++
> standard library for GPUs and multi-core CPUs. It includes common
> containers (vector<T>, flat_set<T>) and standard algorithms (transform,
> sort, accumulate). It also features a number of extensions including
> parallel-computing focused algorithms (exclusive_scan, scatter, reduce)
> along with a number of fancy iterators (transform_iterator,
> permutation_iterator). The library is built around the OpenCL framework
> which allows it to be portable across many types of devices (GPUs, CPUs,
> and accelerator cards) from many different vendors (NVIDIA, Intel, AMD).
>
> The source code and documentation are available from the links below.
>
> Code: https://github.com/kylelutz/compute
> Documentation: http://kylelutz.github.com/compute
> Bug Tracker: https://github.com/kylelutz/compute/issues
>
> I've tested the library with GCC 4.7 and Clang 3.3 on both NVIDIA GPUs and
> Intel CPUs. However, I would not yet consider the library production-ready.
> Most of my time has been devoted to reaching a solid and well-tested API
> rather than on performance. Over time this will improve.
>
> Feel free to send any questions, comments or feedback.
It looks really interesting, similar to Thrust. How can one iterate over
two or more containers at once. In Thrust they have zip_iterators to do
this:
for_each( zip( first1 , first2 ) , zip( last1 , last2 ) , f , queue );
Is something similar possible with your library?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk