Hi!
I've played around with GPU computing using OpenCL and thought about an
integration in VOLK. Actually, I have implemented a proof of concept [0]
and as example a kernel, which multiplies two NxN matrices.
The result of running volk_profile using my GeForce GT 730M looks like this:
[blub build]$ ./apps/volk_profile -i 10 -v 1000000
Using VOLK machine: avx2_64_mmx_orc_opencl
Using OpenCL device: GeForce GT 730M
RUN_VOLK_TESTS: volk_32f_x2_matrix_nxn_multiply_puppet_32f(1000000,10)
generic completed in 28482ms
a_opencl completed in 13364.3ms
Best aligned arch: a_opencl
Best unaligned arch: generic
Writing "/home/blub/.volk/volk_config"...
The greatest effort is implementing a good algorithm to select the
desired OpenCL device during the VOLK init (such as the selection of the
correct machine). Everything else is already provided by the framework.
I am posting this just as a proof of concept, but probably it is worth
to think about doing this properly. Perhaps this could be a good GSoC
project?
Greetings
Stefan
[0] https://github.com/stwunsch/volk/tree/opencl_example
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
No comments:
Post a Comment