OpenCL Port for Thea Presto (wip)

Check out our technology advances and new features.
User avatar
giannis
Thea Developer
Thea Developer
Posts: 7988
Joined: Sun Jul 06, 2008 8:25 pm
Location: Athens, Greece
Has thanked: 11 times
Been thanked: 6 times

Thu Sep 25, 2014 2:47 pm

Dear friends,

perhaps many of you remember the first days when we were decided to go for a GPU engine. The question back in those days was whether someone would go with OpenCL or CUDA. Supporting all kind of hardware was quite important for us but we simply could not ignore that OpenCL was not that mature. CUDA has been our dearest friend deploying Presto first there but we always want to push Presto running on all available hardware (this is of course why our next stop was the CPU port).

But OpenCL has a strange beauty that made us keep visiting and visiting this topic again and again. Finally, after making a big dive, we managed to port Presto on OpenCL. It wasn't easy but we can disclose now that this has already finished since last May! Nevertheless, porting the engine is the first part only, the other being to be able to run it consistently and produce results robustly. And here is where we are right now; trying to make the whole Presto engine - that has advanced and become increasingly complex over the past months - to pass and run stable through the OpenCL vendors. And of course, performance considerations and optimizations arise after that. Overall, an inspiring yet very challenging task. :)

With this tech preview, we want to let our users know that we have not forgotten numerous related requests that we got in the past, regarding this topic. And we will continue on this path. At this point though, we cannot give a date as to when the OpenCL port will be publicly available; this is in many cases outside our control. I prefer to be ultra pessimistic here and say that, worst case, it may take long long time before we publish a stable & complete Presto on OpenCL; please consider this as a very work in progress. But we wanted to inform our users that we are aware of the need and we are always pushing the hardware to the limits.

Best wishes


In the screenshots below, you can see 3 distinct examples of our work-in-progress technology, i.e. Thea Presto OpenCL driver, along with the already established technology. These examples, are all shown during interactive rendering (which is somewhat more challenging) running in parallel with the other Presto CPU and/or CUDA drivers.
  • In the first screenshot, an AMD CPU runs using the OpenCL driver (in general, not really needed since we have the optimized Presto CPU driver).
  • In the second screenshot, an AMD GPU (FirePro W7000) runs in parallel using OpenCL on a Xeon machine with a Titan graphics card.
  • In the third screenshot, the Xeon Phi runs using the OpenCL driver again on a Xeon machine with a Titan graphics card.
Disclaimer: the screenshots indications below are only representative. They should not be used for any hardware comparisons, since the APIs are quite different in terms of maturity and overall optimization level. Even in that case, any speed difference is with respect to Thea Presto framework only.
thea_cpuopencl_gpucuda_interactive.jpg
AMD Opteron CPU running under Presto OpenCL driver along with 2 NVidia GTX670 GPUs under Presto CUDA driver.
firepro-xeon-titan.jpg
Intel Xeon running under Presto CPU driver, NVidia Titan under Presto CUDA driver and AMD FirePro under Presto OpenCL driver.
meccano-titanblack-xeon-xeonphi.jpg
Intel Xeon running under Presto CPU driver, NVidia Titan under Presto CUDA driver and Intel Xeon Phi under Presto OpenCL driver.
Science may limit knowledge but should never limit imagination - Bertrand Russell
raybender
Licensed User v1.5
Licensed User v1.5
Posts: 86
Joined: Thu Apr 19, 2012 10:54 am
Has thanked: 0
Been thanked: 0

Thu Sep 25, 2014 3:33 pm

good news giannis!

you can render on XEONPHI cards with thea ? have i missed that news or is it new also ?
------
AlexBroeckel

PS.: LIKE MY WORK ? http://www.facebook.com/AlexBroeckelIllustration
User avatar
giannis
Thea Developer
Thea Developer
Posts: 7988
Joined: Sun Jul 06, 2008 8:25 pm
Location: Athens, Greece
Has thanked: 11 times
Been thanked: 6 times

Thu Sep 25, 2014 3:44 pm

raybender wrote:have i missed that news or is it new also ?
It is new, through the OpenCL port. :)
Science may limit knowledge but should never limit imagination - Bertrand Russell
User avatar
blackice
Thea A Team
Thea A Team
Posts: 1081
Joined: Sat May 16, 2009 4:19 pm
Location: ITALY
Has thanked: 2 times
Been thanked: 7 times
Contact:

Thu Sep 25, 2014 4:09 pm

this is a real hybrid computing! :clap: :clap:
>B.
http://www.ngonstudio.com
-----------------------------------------------------------------------------------------------------------
I am not an artist. I am an image maker. [ Thomas Hoepker ]
User avatar
warnotte
Posts: 2218
Joined: Sat Jul 25, 2009 10:18 pm
Location: Belgium
Has thanked: 2 times
Been thanked: 31 times
Contact:

Thu Sep 25, 2014 5:02 pm

Nice technical "exploit" Giannis. :clap:
User avatar
nigec
Thea Beta Tester
Thea Beta Tester
Posts: 9730
Joined: Wed Jul 01, 2009 9:47 pm
Location: UK
Has thanked: 30 times
Been thanked: 26 times
Contact:

Thu Sep 25, 2014 5:25 pm

Impressive stuff mate :thumbup:
I like it when you go quiet lol
"Life is what happens to you while you're busy making other plans."
Most Recent Batch Creator
Doing3D
Licensed User v1.5
Licensed User v1.5
Posts: 218
Joined: Sat Feb 18, 2012 2:11 am
Has thanked: 0
Been thanked: 0
Contact:

Fri Sep 26, 2014 4:59 am

That's very cool. Is there any hint that OpenCL is maturing? I know CUDA has been around a long time, seems that the consortium who develop OpenCL would try and bring it up to par with CUDA, or at least be aware of developer complaints about it.
User avatar
giannis
Thea Developer
Thea Developer
Posts: 7988
Joined: Sun Jul 06, 2008 8:25 pm
Location: Athens, Greece
Has thanked: 11 times
Been thanked: 6 times

Fri Sep 26, 2014 6:01 am

OpenCL has been around for years now, I would say that the specifications behind it are quite mature. But as always with open standards it takes much more to reach a consistent status in practical terms.

Best wishes
Science may limit knowledge but should never limit imagination - Bertrand Russell
User avatar
SandroS
Licensed User v1.5
Licensed User v1.5
Posts: 3062
Joined: Wed May 20, 2009 8:20 am
Has thanked: 1 time
Been thanked: 33 times
Contact:

Fri Sep 26, 2014 7:07 am

this is hugely impressive Giannis :clap:

CPU, Cuda, OpenCL and Xeon PHI all rendering together - an industry first for sure :ugeek:

do we know yet how a Xeon PHI compares to, say, a Titan?
User avatar
eph
Licensed User v1.5
Licensed User v1.5
Posts: 366
Joined: Sat May 16, 2009 9:27 am
Location: Europe
Has thanked: 0
Been thanked: 0

Fri Sep 26, 2014 8:31 am

Giannis + team, you keep on impressing us :D

How would you say the current OpenCL port compares to CUDA speed? Does it have the potential to equal / surpass it in terms of performance?

Curious to see this evolve! 8-)
Work: iMac Intel i7 3.4 GHz (8GB RAM), AMD Radeon HD 6970M (2GB RAM), OS X 10.9.5 (FR)
Home: Dell Intel i7 3.6 GHz (16GB RAM), GeForce GTX 750 Ti (4GB RAM), Windows 8.1 64bit (EN)
Locked