Blender and OpenCL ? Rendering, Phisics .. ?

Could the use of open cl in blender be possible and a good choice for blender ?

could open cl be used for phisycs and other areas of blender ?

I dont know the pros and cons of open cl .

what do the coders and developers think ?

lux development team began work on LuxRays which can be used for raytracing acceleration
more info directly on lux wiki


your avrage quad core computer has 4 cores on the cpu. @ 3000Mhz.
your avrage graphiccard has arpox. 100+cores @500-700Mhz.

In hands on fact, there’s a video on youtube demonstrating a dual quadcore macpro, (8 cores) rendering a molecule in 5 seconds. And a when rendering in OpenCL utilizing the GPU it takes 0.18 sec.

Im not on the dev team for blender. but I think if you know OpenCL. And can successfully implement the inline code to call OpenCL API , areas such as Smoke sim, All the physic sim, but mainly the huge numbercrunching particle system could benefit.

Maybe Blender Developers. should get a online meeting w/ the Lux Render guys that are currently on to the OpenCL task in atleast, 3 diffrent renderers. SmallLuxGPU is the currently most advanced.

Don’t know about ATI but I’m pretty sure any nvidia(non integrated at least) card has 'em GPGPU Cores at well over 1000Mhz. :wink:

my bad, the very lowest 8X00 series cards (8400, 8500) are 900 mhz, but the rest are all over that.

8X00 series is also the very lowest that supports GPGPU computing so, yeah… :smiley:

so ? you think it will be implemented in a future.

maybe not near.

I just took a random midrange gfx card. nVidia gtx 260. it has 585Mhz GPU clock cycle speed.

Im pretty sure you are looking at the memory access speed. and that is in the 0.9 - 1.9 Ghz range. but that’s for accessing the vram. Ofcourse speeds up speed suchs as reading textures. but the GPU often goes in the range of 500-700Mhz.

edit: what I mean it’s the clock cycle of the GPU that matters when doing OpenCL calcs.

I do belive it’s gonna be implemented. Where it can contribute. I mean it’s not likely going over GUI code for the buttons window and see what can be OpenCL implemented.

But atleast in the renderer. optimizing raytracer even further. and the Simulations. as I stated before.

for people interested in C++ and OpenCL. There’s two talented guys called rui maderia and memo atkens that have been experimenting with opencl visually mainly via the c++ framework openframework(oFx)
^^^^^ here you can find sourcecode to some of the experiments.

And if blender benefits of OpenCL it’s most under the hood. nothing visual. I suspect in the future, cloth sim, fluid sim and smoke sim can be huuuuugely improved in the 3d viewport when running simulations.

No, gpu clock is not shader clock(of shader unit aka. stream processor, gpgpu unit etc.)

example(click the specification tab):

there you have at the top of the spec list:

-Ammount of cuda cores(shader units)
-Graphics Clock (base GPU Clock speed)
-Processor Clock (Shader Clock speed)

and on this page you get to compare all important specs of 8X00 family:

Cheers. :slight_smile:

comparisons like that don’t mean much since the architectures and abilities of those cores are totally different.

sooner or later blender for sure will make more use of the gpu but opencl still is in its infancy and it is more effort to add support for it than many people think. i guess for many of blender’s subsystems almost complete rewrites would be necessary.

There you see! I wonder why some hardware sites hides the info about the CPU cycle, and only show GPU and memory access.

It actually does mean much the comparison.

It’s the mere fact, that the architecture of a GPU with x100 of cores solves problem like rendering that CAN be parallelized waaay faster than the CPU which makes OpenCL so beneficial.

I doubt totally “rewrite” of the code. Since much of blenders source already is C or C++ what I’ve heard and seen downloading the source.

It’s more a fact of setting up a good structure of declaring the vendor of hw found in the machine, and creating a flawless working kernel.

Then it’s more declaring the vars utilizing OpenCL in a diffrent way.

As I’ve seen it has been like that, But I should say to much. But I do plan on compiling some of the test samples I’ve downloaded which have working OpenCL kernels and see how it’s done.

Im currently under OSX on a iMac, w/ OpenCL. So I should give it a go ASAP: but have alot of work related stuf to sort out before I have spare time for C++ dev.

something that confuses me about opencl is that would there need to be 2 different versions of blender for those with it and those without so as to cut down on the file size of blender or would there be if statements checking the graphics card somehow to see if open cl can be used then diverting to code for it?

it will always be CPU only compatible. the filesize diff will be so small in the end. it’s just source code, and some opencl headerfiles.

so a separation will be unecessary.

perhaps you should check out the blender mailing lists a bit more, you would find some talk going on last month about opencl (currently focussed on nodes, but also some mentioning of smoke-sim)

will do, but I am more interested in if it is possible to use opencl with python scripts, any kind of generation script;ittleneos, piichans city generators would have a large boost with it. Just not so sure where to start.

afaik that’s not possible.

you could rewrite the code into C and then use Open CL.

why is it not possible, surely there are python bindings for it?

hmm… quick googlin’ brough up pyopencl, not sure if this helps, but hope so. :slight_smile: