14 ms·
Blender 2.79: OpenCL on par with CUDA
- tombert 10y agoThe performance of OpenCL has generally been fine for me, particularly on AMD GPUs, but I have to say I think CUDA is a lot simpler to work with. OpenCL is one of those things that I never felt fully comfortable working with, but I felt productive in CUDA after a week or two. Granted, I learned them in that order, so it's possible that CUDA got an unfair head-start, but I stand by my initial thesis.
- shawn-butler 10y agoYou might want to take a look at SYCL for higher-level abstractions if that was your preference. There is an open-source implementation to dig into: https://github.com/Xilinx/triSYCL https://github.com/Xilinx/triSYCL
- tombert 10y agoActually, nowadays since I mostly do esoteric functional stuff, I mostly use the wonderful `accelerate` package for Haskell: https://www.stackage.org/package/accelerate https://www.stackage.org/package/accelerate It abstracts away most of the difficult stuff.
- Athas 10y agoOut of curiosity, what are you doing with Accelerate? I've been looking for examples of people using it in anger.
- tombert 10y agoI can't get into the weeds of it because of some NDA chicanery, but there are a couple vector transformations that I have to do on a not-quite-big-data-but-also-too-big-for-regular-CPU set of data. The initial version of the project was doing some basic stuff in Python, but that proved to be slow so I rewrote most of it in Haskell and Accelerate.
- rodburns 9y agoIn addition to triSYCL we also have an implementation of SYCL called ComputeCpp http://computecpp.codeplay.com/ http://computecpp.codeplay.com/
- lettergram 10y agoI tried picking up OpenCL then CUDA as well and had a similar experience. CUDA simply feels less hacked together to me. It's like working with a well thought out and documented code base (CUDA) vs working with some library that has little documentation and contradicting syntax and formats (OpenCL). IMO that's why AMD is losing the "deep learning" battle, it's just not easy to develop using OpenCL. At least, not as easy as it should be.
- happycube 10y agoLosing? When it comes to TensorFlow et al they haven't really shown up for the fight. It's a vicious cycle though, since everything uses CUDA/CuDNN everyone buys nVidia cards, which means that developer interest in getting AMD cards fast isn't there. If AMD GPU cores were in phones etc, they would probably be getting TF support for client work at least. Heck, considering they sold off that dept to Qualcomm, which is getting supported...
- lettergram 10y agoThere's really no reason AMD themselves couldn't hire 5 developers to integrate with TensorFlow. I agree it's a vicious cycle, but I feel if they release support for tensorflow it wouldn't take long to shift people from Nvidia to AMD. AMD has a significantly cheaper offering, and no company wants to be tied by only one supplier. Considering how small of a dent that would make in their bottom line (financially), it's really amazing they haven't yet... The potentially upside is easily in the tens (if not hundreds) of millions of dollars. So definitely, I agree they intentionally have decided to not support deep learning. For the life of me, I don't know why.
- ansible 10y agoThere's really no reason AMD themselves couldn't hire 5 developers to integrate with TensorFlow. The problem is that it isn't just TensorFlow. It is also Caffe, Theano, Torch, etc., etc., etc.. For deep learning, Nvidia GPU acceleration is almost a given.
- tmbsundar 10y agoDoes freebsd support CUDA yet? I tried a year back and it didn't, due to limitations from NVIDIA side. I like freebsd a lot, but for this reason had to switch back to debian/ kubuntu.
- jacquesm 10y agoThe question should be is NVIDIA supporting FreeBSD yet? And the answer is so far not. And likely it won't happen, they are supporting Linux because it is a large enough target for their scientific customers, FreeBSD just does not have the market share there.
- floatboth 10y agoNVIDIA actually releases their proprietary GPU driver for FreeBSD! Has been doing that for a long long time. Also for Solaris.
- jacquesm 10y agoYes, but that's not CUDA, just the basic acceleration. For CUDA supported are Windows, Linux, Mac OSX https://developer.nvidia.com/cuda-downloads https://developer.nvidia.com/cuda-downloads
- astrodust 10y ago
- deleted 10y ago[deleted]
- valine 10y agoBlender's progress has been astounding. I remember a while back they anounced the OpenCL implementation was being put on hold for a undetermined amount of time due to limitations with AMD cards. This really is an exciting announcement. It's great to see it on HN too.
- thrillgore 10y agoBlender is probably one of the most successful OSS projects since Linux. In the span of five years, you wouldn't be caught dead using it over Maya. Now, its visa versa.
- xqeeety 10y agoI don't animate these days, but I remember the day I first tried Blender back when it was version 1.4 (I think - it fit on a floppy then). What caught my eye was that the entire UI was rendered in OpenGL, one could pan and zoom everything, even the 2d tool panels. That little detail hinted at good design. And I loved the tiling UI so much. I used Blender for several animation commissions at a time when studios had never heard of it. The Blender community was always one of the friendliest, most helpful I've ever had the pleasure of being part of. The Blender institute, under the direction of Blender's original author is a superb example of how to grow a successful project and community.
- khedoros1 10y agoI remember downloading it on the internet connection at school, copying it to a floppy, and bringing it home. My school had some classes in 3D Studio Max, but there was no way I could get a copy of that. So Blender and another program called Nendo were my toys. I didn't have any money when they were paying to open source it, but I was definitely cheering from the sidelines!
- sametmax 10y agoIt is espacially amazing given: - the problem blender is solving is super hard - the competition was way ahead - FOSS don't have great track record for this kind of challenge (gimp has never replaced photoshop nor LibreOffice MSO) - they don't have that much resources - professionals are very demanding - the graphic space is not really foss friendly - the amount of work they poured into this is incredible They are heroes really.
- zengid 10y agoQuoted from the article: "OpenCL works fine on NVIDIA cards, but performance is reasonably slower (up to 2x slowdown) compared to CUDA, so it doesn't really worth using OpenCL on NVIDIA cards at this moment." I wonder if that's intentional on NVIDIA's part. Does it mention which version of OpenCL they're using? I'm looking forward to hearing news about v2.x and SPIR-V.
- jacquesm 10y ago> I wonder if that's intentional on NVIDIA's part. I highly doubt it, a normal resource allocation conflict would suffice. NVIDIA has everything to gain by being ahead on each and every metric and to purposefully hobble that would eventually come out and would make people decide to buy a non-NVIDIA product in the meantime. I think the reason is more that NVIDIA has been able to tailor CUDA to a much larger degree to match the architecture of their cards and by extension anybody that writes for CUDA automatically benefits from that. OpenCL is more general but that also immediately implies that it will be less efficient. And it doesn't take all that much in terms of missing optimizations (a single memory fetch penalty would do) to get a 2x penalty. GPU programming is much less forgiving when it comes to subtle mistakes than regular programming because it immediately gets multiplied by a very large factor rather than a single missed cycle. A nice example of the reverse: ATI cards dominated the bitcoin GPU mining scene because of their ability to do a particular operation in one clocktick instead of two on the NVIDIA cards.
- thomastjeffery 10y agoThe real issue is that NVIDIA does not care about OpenCL as long as CUDA is usable. Since their drivers are proprietary, no one else (who does care) can make better OpenCL support happen.
- robbies 10y ago"I wonder if that's intentional on NVIDIA's part." I think that's a reasonable guess. NVIDIA only supports OpenCL 1.2 (and it took them about 6 years to get there from 1.0, while other vendors were at 2.x). While I don't think NVIDIA ever outright stated OpenCL was on the back burner, their support clearly waned, which devs noticed (https://streamcomputing.eu/blog/2012-09-10/nvidias-industry-leading-support-for-opencl/ https://streamcomputing.eu/blog/2012-09-10/nvidias-industry-...). As for why...well, why should NVIDIA participate? They don't have anything to gain when they already have CUDA dominating the industry.
- anc84 10y agoIt looks significantly faster in those benchmarks! Koro takes almost half as long!
- KaoruAoiShiho 10y agoThat's nvidia on opencl not cuda.
- floatboth 10y agoThat's not clear, the chart just says "comparison of cards", the article does not mention how it was made
- KaoruAoiShiho 10y agoThe entire page is talking about opencl, unless it's deliberately misleading it's pretty clear it's opencl.
- floatboth 10y agoNot surprising, since the RX 480 has more raw compute power than the GTX 1060. Also more VRAM… and overclocking headroom :)
- roel_v 10y agoI don't quite get this page; isn't it more accurate to say 'amd on par with nvidia'? It seems for amd they use opencl, for nvidia cuda; but you can run opencl on nvidia too (1.2 only, apart from experimental, partial 2.0 support in the very latest drivers, but still). I mean, there are numerical libraries that run 2x as fast on nvidia compared to their most optimized opencl implementations, because they use 'gpu assembly' specific for nvidia cards; how does that fit the 'opencl on par with cuda' claim? It depends on what effort is spent on optimizing for a certain platform, not what api is used... I'm working in opencl myself but it's frustrating that I'll never get as much performance as I would when using opencl, even when I'm using gtx gpus myself.
- radarsat1 10y agoWould it be a completely stupid idea to write a CUDA-based OpenCL back-end? i.e., an OpenCL-to-CUDA translator, so you can program your kernels in one single language but still get the benefit of the NVidia CUDA compiler? Or are their machine models so different that that is an unreasonable thing to even try..
- jjn2009 10y agoIt's likely better to just write/use libs which abstract the CUDA/OpenCL level away for generic GPU type tasks. Unless you have really strict performance requirements or are writing a very specific piece of GPU code, in which case I cant image OpenCL-to-CUDA translator would handle that case well either. They both have very similar ideas for the core of the APIs then CUDA adds a bunch of stuff on top of it for ease of use and performance which is tightly coupled with the hardware in some cases. It would be a lowest common denominator situation with a lot of those features in CUDA.
- aidos 10y agoThere was an article on here a couple of months back that was an intro to blender from a geek / vim perspective. I felt a bit inspired and downloaded it to have a play. It's an absolutely brilliant application - I highly recommend giving it a try. Edit here's the post https://news.ycombinator.com/item?id=13379597 https://news.ycombinator.com/item?id=13379597
- thomastjeffery 10y agoHaving learned blender first is likely why Vim was so appealing to me. Blender's UI is so much better this way. The idea that the functionality of any professional software tool should be immediately visible is just silly. Photoshop, GIMP, Autocad, 3DS Max, Maya, etc. all follow that philosophy, and just end up with way too many buttons and menus for anyone to want to sift through. Blender shows functionality only where it is needed in the most beautiful modular system I have ever used.
- Razengan 10y agoOne starting out on Blender may find this cheatsheet helpful: http://i.imgur.com/yzI2U9e.png http://i.imgur.com/yzI2U9e.png
- aidos 10y agoAgreed. It felt really streamlined and the mental model felt instantly comfortable. If you want to rotate something you can select - rotate - fix axis - choose degree, all in a very programmatic way. One thing I ran into was it seemed there are some shortcuts that are essential and basically wired to the number pad so I had to buy an external keyboard (and non trackpad mouse). I haven't had time to get back to it again but I'm looking forward to sitting down and having another good play. Edit I'm not super familiar with autocad but I make software for construction companies so I've seen it used a bit. You can do everything in a vim like command manner. I think it had a lisp prompt.
- thomastjeffery 10y ago> Edit I'm not super familiar with autocad but I make software for construction companies so I've seen it used a bit. You can do everything in a vim like command manner. I'll admit, I'm even less familiar with AutoCAD. I really just assumed from my experience with every other AutoDesk software I have seen. > I think it had a lisp prompt. AFAIK, AutoLISP is still one of the most prevalent lisps.
- throwblender 10y agoBlender is a really fun program to use, Tons of tutorials and information on youtube etc... I think more education could use 3d programs like this to help with algorithm visualization. I made this video about worker in tech with blender. https://vimeo.com/98728314 https://vimeo.com/98728314 The worker is slaving away at his terminal, he is writing code that creates the 'feed' of apps/entertainment/media/etc.. for the insatiable appetite of society (Represented by the somewhat-similar-to-a-hungry-hippo character in the depths). Who are these other two glowing beings? What do they represent? My friends have tried to guess some explanations, but I'll let each audience member decide for themselves.
- gt_ 10y agoEither way, this has no effect. The 3D artists using GPU production rendering require at least 4 of the top of the line cards for their workstation. My workstation crams x5 980Tis in the case (2 off the board with PCIe risers). Joining the community using this approach not only requires the hardware and ability to build it but also new rendering software and a lot of time to learn a new approach/mindset/workflow. The best software available is crucial. It is worth every penny to invest in the best rendering software when entering this environment. Right now, there are 3 that matter and none of the GPU-specific remdering softwares support OpenCL. There is a unique exception with V-Ray, the last gen maverick of rendering engines. V-Ray's future in GPU rendering could be bright if the new companies don't entirely outpace them in GPu development. Either way, every part of the people actually using this solution in the real world is investing all of their time, money, energy into Nvidia right now. The devs at Redshift, my chosen renderer, insist OpenCL is not even close to having what they need. Pseudo-realtime feedback could actually advance the craft to a new era and Nvidia is carrying the entire ecosystem.
- przemoc 10y agoJust out of curiosity (it's not my field), what are those 3 renderers that matter right now? Somehow I read your comment as V-Ray is not among them as being last-gen. I remember that years ago there was a lot of buzz regarding Arnold (and it was justified to some extent AFAIR, at least judging by opinions of pleased 3D crowd), but maybe it's last-gen too now? Many years ago there was Brazil, but quick googling shows it's only for Rhino now? I haven't heard about Redshift till now, though.
- gt_ 10y agoThe 3 GPU renderers that matter are: V-Ray RT, Octane, Redshift CPU renderers are a different story but Arnold is right up there with V-Ray. CPU renderers are tried and true, reliable and robust. V-Ray is the only company making both CPU and GPU renderers. The GPU version can render most of the same shaders but the backward compatibility requirements slow it's progress. It's OpenCL support is always behind CUDA as well.
- dharma1 10y agoCuda -> OpenCL transpiler: https://github.com/cuda-on-cl/cuda-on-cl https://github.com/cuda-on-cl/cuda-on-cl
- geertj 10y agoAnyone knows how to get OpenCL working on Linux using the open source AMDGPU driver (not the AMDGPU-PRO driver which is their proprietary driver)?
- my123 10y agoAs far as I know, you can install the clover package for your distribution.
- vedranm 10y agoAs the other poster said, you need Clover, and then you can use clinfo [1] to check you have everything installed and working. I can't say for sure what's the latest state of Blender; somebody on Freenode #radeon mentioned a few months ago that Blender is failing to compile its OpenCL kernel, while before that somebody mentioned it as working, but quite a bit slower than with the proprietary driver. I suggest to try it yourself and report any bugs you encounter as blocking [2]. [1] https://github.com/Oblomov/clinfo https://github.com/Oblomov/clinfo [2] https://bugs.freedesktop.org/show_bug.cgi?id=99553 https://bugs.freedesktop.org/show_bug.cgi?id=99553
- k_sze 10y agoWhat part of that page says it has to do with version 2.79 of Blender though? I think the actual page that talks about Cycles rendering performance improvements in version 2.79 is this wiki page: https://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.79/Cycles https://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.7... But that page doesn't seem to mention any comparison between OpenCL and CUDA. I think something is still missing to make a concrete link between "OpenCL on par with CUDA" and version 2.79 specifically.