- 论坛徽章:
- 24
|
"Boost.Compute is a GPU/parallel-computing library for C++ based on OpenCL.
The core library is a thin C++ wrapper over the OpenCL API and provides access to compute devices, contexts, command queues and memory buffers."
https://github.com/boostorg/compute
还有例子:
"The following example shows how to sort a vector of floats on the GPU: "
- #include <vector>
- #include <algorithm>
- #include <boost/compute.hpp>
- namespace compute = boost::compute;
- int main()
- {
- // get the default compute device
- compute::device gpu = compute::system::default_device();
- // create a compute context and command queue
- compute::context ctx(gpu);
- compute::command_queue queue(ctx, gpu);
- // generate random numbers on the host
- std::vector<float> host_vector(1000000);
- std::generate(host_vector.begin(), host_vector.end(), rand);
- // create vector on the device
- compute::vector<float> device_vector(1000000, ctx);
- // copy data to the device
- compute::copy(
- host_vector.begin(), host_vector.end(), device_vector.begin(), queue
- );
- // sort data on the device
- compute::sort(
- device_vector.begin(), device_vector.end(), queue
- );
- // copy data back to the host
- compute::copy(
- device_vector.begin(), device_vector.end(), host_vector.begin(), queue
- );
- return 0;
- }
复制代码 |
|