+- +-
Say hello if visiting :) by Gecko
11 Jan 2023, 07:43:05 pm

Seti is down again by Mike
09 Aug 2017, 10:02:44 am

Some considerations regarding OpenCL MultiBeam app tuning from algorithm view by Raistmer
11 Dec 2016, 06:30:56 am

Loading APU to the limit: performance considerations by Mike
05 Nov 2016, 06:49:26 am

Better sleep on Windows - new round by Raistmer
26 Aug 2016, 02:02:31 pm

Author Topic: Ocelot  (Read 9585 times)

Offline Frizz

  • Volunteer Developer
  • Knight who says 'Ni!'
  • *****
  • Posts: 541
Ocelot
« on: 14 Dec 2011, 06:48:13 am »
This technology sounds interesting. Has somebody already tried it?

"Ocelot is a modular dynamic compilation framework for heterogeneous system, providing various backend targets for CUDA programs and analysis modules for the PTX virtual instruction set. Ocelot currently allows CUDA programs to be executed on NVIDIA GPUs, AMD GPUs, and x86-CPUs at full speed without recompilation."

[EDIT] I more and more get the impression that NVIDIA wants to kill off support for OpenCL - and push CUDA. Will be interesting to see what happens when Apple swings (back) from AMD to NVIDIA.
« Last Edit: 14 Dec 2011, 06:54:58 am by Frizz »
Please stop using this 1366x768 glare displays: http://www.facebook.com/home.php?sk=group_153240404724993

Offline Jason G

  • Construction Fraggle
  • Knight who says 'Ni!'
  • *****
  • Posts: 8980
Re: Ocelot
« Reply #1 on: 14 Dec 2011, 10:33:30 am »
Ocelot looks interesting.  Where difficulties come into play with heterogenous type applications, is the design tends to be quite high level by nature, so can be tricky to factor in microarchitectural optimisations where they are needed.  It'll be interesting to see how such toolsuites evolve to deal with that effectively, in order to make programs not just work, but work efficiently on the diverse range of hardware they are meant to support.

[EDIT] I more and more get the impression that NVIDIA wants to kill off support for OpenCL - and push CUDA. Will be interesting to see what happens when Apple swings (back) from AMD to NVIDIA.

I'm not so sure about that, as they've but a lot of work into the underlying driver & library frameworks to get this far, and are a major contributor to the Khronos Group.  Cuda's definitely more mature, and some aspects of OpenCL are still to mature, and so are subject to rapid change.  But at the same time elements of the underlying infrastructure are seemingly converging to the point that Cuda & OpenCL share more than the visual semantic difference would suggest. 

Jason
« Last Edit: 14 Dec 2011, 10:46:48 am by Jason G »

Offline Frizz

  • Volunteer Developer
  • Knight who says 'Ni!'
  • *****
  • Posts: 541
Re: Ocelot
« Reply #2 on: 14 Dec 2011, 05:15:06 pm »
afaik NVIDIA OpenCL 1.1 drivers are still pre-release.

AMD is about to release 1.2

That's (one of) the reasons why I assume NVIDIA focues on CUDA rather than on OpenCL.
Please stop using this 1366x768 glare displays: http://www.facebook.com/home.php?sk=group_153240404724993

Offline Jason G

  • Construction Fraggle
  • Knight who says 'Ni!'
  • *****
  • Posts: 8980
Re: Ocelot
« Reply #3 on: 14 Dec 2011, 06:17:47 pm »
That's (one of) the reasons why I assume NVIDIA focues on CUDA rather than on OpenCL.

Sure, they're 'Cuda cores' after all, but I reckon that priority focus is different to wanting to 'kill off support for' what is supposed to be a cross-vendor language.  As it stands, as far as I've been told, Raistmer's code only uses OpenCL 1.0 features at the moment, with existing feature deprecation & apparently driver bugs being bigger issues than added language extensions being unavailable.   I guess if he finds something useful in 1.1 or 1.2 then it might become more pressing an issue. 

 I myself have been scratching for a way to implement GPU callbacks in Cuda like OpenCL 1.1 has, and only recently came across the separate Cupti api in later SDKs. So it goes both ways with feature migration, making the technologies complementary rather than diametrically opposed.

Jason

Offline Raistmer

  • Working Code Wizard
  • Volunteer Developer
  • Knight who says 'Ni!'
  • *****
  • Posts: 14349
Re: Ocelot
« Reply #4 on: 15 Dec 2011, 06:07:07 am »
I read OpenCL 1.1 spec completely recently and found that these callbacks more resemble interrupt handlers than anything else.
They should be so small that even "heavy OS services"calls are no-no. No blocking OCL calls from callback also. (So to assign flag readback in callback not possible until there is another callback and, ultimately, event-waiting or blocking read in main thread). Looks like the single useful move could be to change blocking read to non-blocking read and then blocking on event, just as workaround. Will see if these callbacks will be useful in some other area.

P.S. I found much more useful feature in OCL 1.1 than callbacks IMHO: subbuffers and rectangular subbufer read. This can be directly applied to my way of gaussian handling, should be optimization step (when current driver issues will be resolved).

Offline Jason G

  • Construction Fraggle
  • Knight who says 'Ni!'
  • *****
  • Posts: 8980
Re: Ocelot
« Reply #5 on: 15 Dec 2011, 09:21:46 am »
Yep, looks like some handy stuff.  Hopefully the technology changes will settle down for a little while & becomes stable.

 

Welcome, Guest.
Please login or register.
 
 
 
Forgot your password?
Members
Total Members: 97
Latest: ToeBee
New This Month: 0
New This Week: 0
New Today: 0
Stats
Total Posts: 59559
Total Topics: 1672
Most Online Today: 67
Most Online Ever: 983
(20 Jan 2020, 03:17:55 pm)
Users Online
Members: 0
Guests: 25
Total: 25
Powered by EzPortal