Jump to content
3DCoat Forums

OpenCL support for Mac?


jwiede
 Share

Recommended Posts

  • Advanced Member

Since 3DC relies more and more on GPGPU-type computations, the Mac is falling further and further behind in terms of overall 3DCoat performance due to the lack of OpenCL support. Apple has made it clear OpenCL is their "chosen" option for GPGPU usage on MacOS (and both ATI and Nvidia will support OpenCL on Mac, where even Nvidia barely supports CUDA on Mac).

I'd just like to be able to use 3DCoat on Mac and receive the same level of performance as it offers on Windows (with CUDA). I'm actually much less concerned about 64-bit support on Mac as I am about (the lack of) OpenCL support.

  • Like 1
Link to comment
Share on other sites

  • Reputable Contributor

Since 3DC relies more and more on GPGPU-type computations, the Mac is falling further and further behind in terms of overall 3DCoat performance due to the lack of OpenCL support. Apple has made it clear OpenCL is their "chosen" option for GPGPU usage on MacOS (and both ATI and Nvidia will support OpenCL on Mac, where even Nvidia barely supports CUDA on Mac).

I'd just like to be able to use 3DCoat on Mac and receive the same level of performance as it offers on Windows (with CUDA). I'm actually much less concerned about 64-bit support on Mac as I am about (the lack of) OpenCL support.

I had an ATI card when OpenCL was first adopted...and I decided that I'm not going to hold my breath waiting for applications to adopt it...that may be years down the road, as it is still in it's infantile stages. CUDA is much more mature and viewed as an industry standard. ATI...well, they've had STREAM for a few years and yet very few software titles have gotten onboard. Why is that? I tend to think Software vendors see more stability and market reach with NVidia's offering, and that ATI is far more focused in the games market.

So, if you want GPU acceleration NOW and in the near future on a MAC...you already have a feasible option....that's Bootcamp. Maybe Andrew will chime in, but I have to think he feels there are bigger fish to fry, and OpenCL support is going to be a major undertaking, just to satisfy the wishes of a small percentage of the 3DC userbase. OpenCL likely has a lot of issues to iron out before it becomes more widely adopted. If you want to hold your breath, waiting on OpenCL...good luck with that.

  • Like 1
Link to comment
Share on other sites

  • Advanced Member

As there's a Mac version of 3DCoat sold at the same price, features, etc. as the PC version, I think it's reasonable to expect it to offer those features in a usable manner, and as V3 is "all about voxel" it'd be nice if they were as usable on Mac as PC. While I certainly appreciate Ptex support, I would honestly have preferred OpenCL support (particularly since translating kernels isn't that difficult, IME), to help improve the overall Mac voxel situation. There are both ATI and Nvidia OpenCL drivers for Mac as of Snow Leopard, so using OpenCL would benefit most of the Mac userbase. Apple has also made it very clear that OpenCL is the OS standard GPGPU API on Mac just as OpenGL is the OS standard GPU API for Mac.

I doubt anyone with ATI hardware, PC or Mac, feels that "mature" CUDA support is offering them much benefit with 3DCoat. By supporting OpenCL, 3DCoat gets a solution for both PC and Mac, Nvidia and ATI GPU hardware. While I'm sure Nvidia loves to see CUDA-only programs, sticking with CUDA effectively limits 3DCoat's potential market.

I've developed kernels for both APIs, and in terms of the kernel code itself the CUDA and OCL versions turned out very similar (similar to HLSL vs GLSL, as a rough parallel). The majority of difference lies in how the host side wraps dispatch of kernels, and in how kernels access host memory. I won't step up and say the translation would be trivial, as I haven't seen what 3DCoat's CUDA kernels are doing, but most computationally-intensive kernels I've run into reduce to fairly straightforward translations to go in either direction (CUDA to OpenCL or vice versa).

Further, there would also be some additional benefits by having OpenCL implementations for PC & Mac, of course. OpenCL kernels can also run (and often, run pretty well) on CPUs, and the OpenCL APIs provides both fine-grained (device and below) and broader (task-scale) parallelism support, so in heterogenous many-core environments OpenCL offers far more flexible dispatch options than CUDA. Someone with a modern 2x quad-core system would probably appreciate the ability to throw CPU cores at kernel processing in voxel-heavy cases where the GPU is struggling, and every little GPGPU cycle counts.

  • Like 1
Link to comment
Share on other sites

  • Reputable Contributor

As there's a Mac version of 3DCoat sold at the same price, features, etc. as the PC version, I think it's reasonable to expect it to offer those features in a usable manner, and as V3 is "all about voxel" it'd be nice if they were as usable on Mac as PC. While I certainly appreciate Ptex support, I would honestly have preferred OpenCL support (particularly since translating kernels isn't that difficult, IME), to help improve the overall Mac voxel situation. There are both ATI and Nvidia OpenCL drivers for Mac as of Snow Leopard, so using OpenCL would benefit most of the Mac userbase. Apple has also made it very clear that OpenCL is the OS standard GPGPU API on Mac just as OpenGL is the OS standard GPU API for Mac.

I doubt anyone with ATI hardware, PC or Mac, feels that "mature" CUDA support is offering them much benefit with 3DCoat. By supporting OpenCL, 3DCoat gets a solution for both PC and Mac, Nvidia and ATI GPU hardware. While I'm sure Nvidia loves to see CUDA-only programs, sticking with CUDA effectively limits 3DCoat's potential market.

I've developed kernels for both APIs, and in terms of the kernel code itself the CUDA and OCL versions turned out very similar (similar to HLSL vs GLSL, as a rough parallel). The majority of difference lies in how the host side wraps dispatch of kernels, and in how kernels access host memory. I won't step up and say the translation would be trivial, as I haven't seen what 3DCoat's CUDA kernels are doing, but most computationally-intensive kernels I've run into reduce to fairly straightforward translations to go in either direction (CUDA to OpenCL or vice versa).

Further, there would also be some additional benefits by having OpenCL implementations for PC & Mac, of course. OpenCL kernels can also run (and often, run pretty well) on CPUs, and the OpenCL APIs provides both fine-grained (device and below) and broader (task-scale) parallelism support, so in heterogenous many-core environments OpenCL offers far more flexible dispatch options than CUDA. Someone with a modern 2x quad-core system would probably appreciate the ability to throw CPU cores at kernel processing in voxel-heavy cases where the GPU is struggling, and every little GPGPU cycle counts.

I think OpenCL will be something looked at in the future, but I remember Andrew doing a poll to determine what percentage of users had NVidia cards and ATI...as at the time, OpenCL wasn't even on the horizon. He chose to support what would reach the broadest cross section of his userbase. Obviously, if it were a minor (or as you state, Easy) undertaking, I'm certain Andrew would've supported both ATI's STREAM as well as NVidia's CUDA. It is what it is. And again, OpenCL is brand new...we all know that jumping on brand new technology always has is pitfalls, and it's wiser to wait until it's had time to mature. That is likely what your answer will be. Will you like it? Probably not, but neither CUDA nor OpenCL makes or breaks 3DC.

What's more is the fact Andrew has to consider features that will affect most of the userbase. Ptex most certainly will. Throwing a lot of development time and resources into supporting OpenCL will benefit only a small percentage of his overall userbase. Until OpenCL has had a little more time in the oven, Bootcamp is your best option. I had to switch to an NVidia card in part due to the fact that 3DC supported CUDA. There is a thread on here about GPU renderers...and low and behold they also use CUDA. Can't blame the ATI folks or the MAC folks requesting that they not be left out in the cold....but the fact is, right now PC/Windows and NVidia hold the lion's share of the market, and that is where most of the development will continue to be focused on. That's the reality of it. Right now, I doubt OpenCL support makes a lot of business sense for Andrew.

Link to comment
Share on other sites

  • Advanced Member

+1 for OSX OpenCL OR CUDA! I Have an Ati Card, that I'd love 3D Coat to take advantage of, HOWEVER there is CUDA for OSX(not sure if it's 64-bit yet on OSX, might be though). But, honestly, OpenCL support is much needed for Nix OS's, OSX and Linux. Please andrew, the benefits that come with OpenCL would help all of us on OSX/Nix & Windows users with ATI cards. Please keep in mind that AMD and INTEL on-board GPGPU chipsets would also be able to take advantage of OpenCL on windows(and linux). This isnt just an OSX issue. PLease Please, perhaps the coder who is making the 64Bit OSX 3D Coat could work on OpenCL after the OSX 64Bit update is finished ;-)! please.

Link to comment
Share on other sites

  • 2 weeks later...
  • Member

+1 for OSX OpenCL OR CUDA! I Have an Ati Card, that I'd love 3D Coat to take advantage of, HOWEVER there is CUDA for OSX(not sure if it's 64-bit yet on OSX, might be though). But, honestly, OpenCL support is much needed for Nix OS's, OSX and Linux. Please andrew, the benefits that come with OpenCL would help all of us on OSX/Nix & Windows users with ATI cards. Please keep in mind that AMD and INTEL on-board GPGPU chipsets would also be able to take advantage of OpenCL on windows(and linux). This isnt just an OSX issue. PLease Please, perhaps the coder who is making the 64Bit OSX 3D Coat could work on OpenCL after the OSX 64Bit update is finished ;-)! please.

+1 for OSX OpenCL or CUDA. Really want 64bit support for OSX too!

Link to comment
Share on other sites

  • Advanced Member

I'm noticing many render engines now using OpenCL for their new GPGPU based releases, so it looks like OpenCL is definitely already up to the task in some areas of 3D, perhaps not as far along as CUDA, but at least some of us with a PC running an ATI card, and The OSX users too, would be able to benefit from an OpenCL build.

Has anyone seen HOW MANY WATTS the new NVIDIA GTX480's take: around 600 WATTS!?!?!?

We need to be able to use an ATI 5870 with OpenCL and not rely on 600W NVIDIA cards only for voxel and 3DC speed improvements.

OpenCL is maturing quickly, and has many 3D apps adopting it as time goes on....

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...