5 ms·
It seems that the researchers did use NVIDIA GPUs to perform the work, but it's not clear what sets the GPUs apart from others and why this research wouldn't be
by capableweb 5y ago
It seems that the researchers did use NVIDIA GPUs to perform the work, but it's not clear what sets the GPUs apart from others and why this research wouldn't be possible without NVIDIA's GPUs, as the article title and body implies.
- Tenoke 5y agoMost likely because the software they use uses CUDA.
- capableweb 5y agoI know that CUDA is faster than OpenCL for many tasks, but is there something that is not possible to achieve in OpenCL but possible in CUDA?
- belval 5y ago> is there something that is not possible to achieve in OpenCL but possible in CUDA Developing fast... OpenCL is much harder to learn than CUDA. Take someone who did some programming classes, explain how CUDA works and they'll probably get somewhere. Do the same thing with OpenCL and they'll probably quit.
- immibis 5y agoWhat makes it harder?
- Cthulhu_ 5y agoPossibly, but that's not really the point, the article is part marketing push from nvidia for their HPC department.
- capableweb 5y ago> but that's not really the point That's what I thought as well, so the title on the website ("NVIDIA GPUs Enable Simulation of a Living Cell") is not really truthful then.
- Symmetry 5y agoMy understanding is that CUDA has a lot of optimized libraries for common tasks, think BLAS, that don't currently exist in OpenCL/Vulkan Compute.
- TomVDB 5y agoI’m subscribed to some CUDA email list with weekly updates. One thing that strikes me is how it evolves with new features. Not just higher level libraries, but also more fundamental, low level stuff, such as virtual memory, standard memory models, c++ libraries, new compilers, communication with other GPUs, launching dependent kernels, etc. At their core, OpenCL and CUDA both enable running parallel computing algorithms on a GPU, but CUDA strikes me as much more advanced in terms of peripheral features. Every few years, I think about writing a CUDA program (it never actually happens), and investigate how to do things, and it’s interesting how the old ways of doing things has been superseded by better ways. None of this should be surprising. As I understand it, OpenCL has been put on life support by the industry in general for years now.
- 4gotunameagain 5y agoIf you ever need to reap the benefits of CUDA & GPU computations without getting into the details, check out JAX by our corporate overlords™ (https://github.com/google/jax https://github.com/google/jax), it has a NumPy like syntax and super fast to get started
- p1esk 5y agoWhy would you suggest JAX? CuPy seems like an obvious choice here (simpler and a lot more mature). Jax is only needed if you want automatic differentiation.
- erwincoumans 5y agoThe fine grain parallelism of this simulation suits the GPU well. It would be possible on multicore CPUs, but possibly slower.
- Gehoti 5y agoI'm much more aware of slot of things research is doing with Nvidia. Due to cuda, tools, SDKs etc Nvidia is providing. I'm not aware of anything similar at any other GPU company
- jabbany 5y agoInteresting question. Press article aside, GPGPU applications like scientific compute, ML etc. have all mostly gravitated to Nvidia / CUDA. Not working in this space, I'm curious why this is the case. Is there something inherently better about CUDA? Or is it that Nvidia's performance is somehow better for these tasks? Or maybe something else?
- naavis 5y agoNVIDIA provides tools that just mostly do not exist for other GPUs, making it easier to build on CUDA instead of something else.
- hiptobecubic 5y agoAbsolutely this. When cuda was first making headway it was the only thing even remotely close to a "developer environment" and made things significantly easier than any of the alternatives. It might be different now, but at that time, many of the users were not computer scientists, they were scientists with computers. Having an easier to use programming model and decent debugging tools means publishing more results, more quickly.
- carlmr 5y agoFrom my cursory knowledge of the topic, there are competitors like ROCm, but CUDA was the first that had a useable solution here. Also last time I checked ROCm doesn't have broad support on consumer cards, which makes it harder for people to try it out at home. But it seems ROCm is getting better and it has tensorflow and pytorch support, so there's reasons to be hopeful to see some competition here.
- jjoonathan 5y agoBack in 2014 or so I made the unfortunate mistake of buying AMD cards with the thought that I'd just use OpenCL. I knew that some codes wouldn't run, but I had catalogued the ones I really cared about and thought I was up for the challenge. I was so, so wrong. First of all, software that advertised OpenCL or AMD compatibility often worked poorly or not at all in that mode. Adobe creative suite just rendered solid black outputs whenever acceleration was enabled and forums revealed that it had been that way for years and nobody cared to fix it. Blender supported OpenCL for a while, but it was slower than CPU rendering and for a sticky reason (nvidia did the work to support big kernels with heavy branching and AMD didn't). Ironically, OpenCL mode had decent performance but only if you used it on an nvidia card. The situation was even worse in scientific codes, where "OpenCL version" typically meant "a half-finished blob of code that was abandoned before ever becoming functional, let alone anywhere near feature-parity." I quickly learned why this was the case: the OpenCL tooling and drivers weren't just a little behind their CUDA counterparts in terms of features, they were almost unusably bad. For instance, the OpenCL drivers didn't do memory (or other context object?) cleanup, so if your program was less than perfect you would be headed for a hard crash every few runs. Debugging never worked -- hard crashes all around. Basic examples didn't compile, documentation was scattered, and at the end of the day, it was also leagues behind CUDA in terms of features. After months of putting up with this, I finally bit the bullet, sold my AMD card, bought an NVidia card, ate the spread, the shipping, the eBay fees, and the green tax itself. It hurt, but it meant I was able to start shipping code. I'm a stubborn bastard so I didn't learn my lesson and repeated this process two years later on the next generation of cards. The second time, the lesson stuck.
- 01100011 5y agoNvidia is pushing vertical integration hard. There are all sorts of libraries from Nvidia which build on top of CUDA, from simple cuBLAS to smart cities, autonomous driving, robotics and 5G. They also provide acceleration of open source libraries like GROMACS, used for molecular dynamics simulation.
- immibis 5y agoAs you do, when you're the market leader. Wouldn't want people to be able to swap their GPUs to AMD. This is a real problem at the moment. Of course AMD is making their own system that works on AMD and nVidia and Intel GPUs. It'll probably get locked down again if AMD gets market dominance.
- 01100011 5y agoReminds me of how people used to think MS was absolutely evil while Apple was an altruistic company and Steve Jobs was some kind of saint. Turns out Apple just needed to gain some market dominance.
- CoastalCoder 5y agoCan someone comment on the legality of a 3rd party providing an unauthorized implemention of the CUDA API? I would think that Oracle's loss of a similar lawsuit with Java would be related.
- my123 5y ago> Can someone comment on the legality of a 3rd party providing an unauthorized implemention of the CUDA API? NVIDIA said that they would be fine with it in the past, and ROCm HIP is just a (bad) CUDA API clone.
- tmearnest 5y agoThere are two main reasons to take advantage of the Gpu in lattice microbes. It can simulate the stochastic chemical reaction and diffusion dynamics in parallel: one thread per voxel. For instance, an E. coli sized cell would have ~40000 voxels. It’s not quite embarrassing parallel, but close. Second, the simulation is totally memory bound so we can take advantage of fast gpu memory. The decision to use CUDA over OpenCL was made in like 2009 or so. Things have changed a lot since then. I don’t think anyone has the time or interest to port it over, unfortunately.