cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

Raistmer
Adept II

OpenCL + Brook+ - is it possible?

Is it possible to use GPU from single application both via OpenCL and Brook+ provided no memory buffers shared between OpenCL and Brook+ kernel invocations?
0 Likes
6 Replies
Raistmer
Adept II

No one still tried it?
AFAIK current OpenCL lack of images/texture fetches support. Brook+ has it (but has no read/write arrays). It would be nice to use GPU via OpenCL device for some parts of code and to use GPU via Brook+ interface for other parts of code. If those parts have no common GPU memory buffers, should it be possible to maintain 2 different GPU device descriptions (for OpenCL and for Brook+ runtime) inside single process/thread or app should use different threads or even should consist of different cooperating processes to implement such approach?
0 Likes

I realize it's a pain but can't you just do this using only CAL/IL?

Some kernels are pixel shader and some are compute shader, you should be able to mix and match.

0 Likes
Raistmer
Adept II

I already have Brook+ portion. I can rather easy port another parts via OpenCL. But CAL/IL.... just another technology to learn + no hope to easy get cross-platform build. I would say it too costly for now to make such attempt.
Maybe I will try to get OpenCL/Brook+ build. If it's possible to keep two independent descriptions of same GPU device for single thread see no reasons why it should fail...
0 Likes

You already have all the CAL/IL kernels if you have coded the Brook+ and OpenCL kernels.... so you just need to learn the "CAL" part (which can also be taken from the above, with some adjustments)..

..Brook+ is not cross-platform anyways.

0 Likes

well image/texture support is planned for OpenCL. so you can just wait.

0 Likes
Raistmer
Adept II

Answering on my own question: yes, it's possible.
It's possible to build app that uses both OpenCL SDK 2.01 and Brook+ 1.4 beta.

EDIT: but then one could get "Stream Write : Failed to Initiate DMA " in brook part.
If no data returned to host memory in brook part all works fine....
EDIT2: not all data writes back to host fail. Only "async" ones.
0 Likes