News for hackers. Stuff that matters.
Re:Simulation of a 2B-atom cell that metabolizes and grows l... by capableweb on Friday January 28, 2022 @08:06AM (#30114076)
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.
Re:Simulation of a 2B-atom cell that metabolizes and grows l... by 01100011 on Friday January 28, 2022 @10:43AM (#30116003)
Nvidia 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.

Re:Simulation of a 2B-atom cell that metabolizes and grows l... by immibis on Friday January 28, 2022 @09:09PM (#30123075)
As 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.

Re:Simulation of a 2B-atom cell that metabolizes and grows l... by 01100011 on Saturday January 29, 2022 @04:08PM (#30130470)
Reminds 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.
Re:Simulation of a 2B-atom cell that metabolizes and grows l... by tmearnest on Friday January 28, 2022 @03:06PM (#30119645)
There 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.
Re:Simulation of a 2B-atom cell that metabolizes and grows l... by Tenoke on Friday January 28, 2022 @08:18AM (#30114192)
Most likely because the software they use uses CUDA.
Re:Simulation of a 2B-atom cell that metabolizes and grows l... by capableweb on Friday January 28, 2022 @09:50AM (#30115267)
I 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?
Re:Simulation of a 2B-atom cell that metabolizes and grows l... by TomVDB on Friday January 28, 2022 @12:44PM (#30117909)
I’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.

Re:Simulation of a 2B-atom cell that metabolizes and grows l... by 4gotunameagain on Friday January 28, 2022 @01:06PM (#30118226)
If 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), it has a NumPy like syntax and super fast to get started
Re:Simulation of a 2B-atom cell that metabolizes and grows l... by p1esk on Friday January 28, 2022 @02:29PM (#30119225)
Why 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.
Re:Simulation of a 2B-atom cell that metabolizes and grows l... by hamilyon2 on Saturday January 29, 2022 @05:52AM (#30125388)
TIL CuPy exists and is stable and mature. This is why i read this forum, every now and then there is serendipitous connection, new angle or discovery.
Re:Simulation of a 2B-atom cell that metabolizes and grows l... by dekhn on Saturday January 29, 2022 @10:31AM (#30127074)
I just want pyXLA, a tool to directly construct XLA programs.
Re:Simulation of a 2B-atom cell that metabolizes and grows l... by belval on Friday January 28, 2022 @09:54AM (#30115342)
> 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.

Re:Simulation of a 2B-atom cell that metabolizes and grows l... by immibis on Friday January 28, 2022 @09:10PM (#30123088)
What makes it harder?
Re:Simulation of a 2B-atom cell that metabolizes and grows l... by Cthulhu_ on Friday January 28, 2022 @09:55AM (#30115352)
Possibly, but that's not really the point, the article is part marketing push from nvidia for their HPC department.
Re:Simulation of a 2B-atom cell that metabolizes and grows l... by capableweb on Friday January 28, 2022 @02:32PM (#30119267)
> 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.

Re:Simulation of a 2B-atom cell that metabolizes and grows l... by Symmetry on Friday January 28, 2022 @10:25AM (#30115746)
My understanding is that CUDA has a lot of optimized libraries for common tasks, think BLAS, that don't currently exist in OpenCL/Vulkan Compute.
Re:Simulation of a 2B-atom cell that metabolizes and grows l... by Gehoti on Friday January 28, 2022 @08:29AM (#30114298)
I'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

Re:Simulation of a 2B-atom cell that metabolizes and grows l... by CoastalCoder on Friday January 28, 2022 @11:51AM (#30117167)
Can 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.

Re:Simulation of a 2B-atom cell that metabolizes and grows l... by my123 on Friday January 28, 2022 @12:22PM (#30117597)
> 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.

Re:Simulation of a 2B-atom cell that metabolizes and grows l... by jabbany on Friday January 28, 2022 @09:02AM (#30114664)
Interesting 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?

Re:Simulation of a 2B-atom cell that metabolizes and grows l... by mattkrause on Friday January 28, 2022 @11:18AM (#30116610)
The products are good, but NVidia also cleverly bootstrapped a whole ecosystem around them.

One of the other posts mentions 2014 as a turning point. At that time, GPGPU stuff was entering the (scientific) mainstream and NVidia was all over academia, convincing people to try it out in their research. They handed out demo accounts on boxes with beefy GPUs, and ran an extremely generous hardware grant proposal. There was tons of (free) training available: online CUDA MOOCs and in-person training sessions. The first-party tools were pretty decent. As a result, people built a lot of stuff using CUDA. Others, wanting to use those programs, basically had to buy NVidia. Lather, rinse, repeat.

This is in stark contrast to the other “accelerator” vendors. Around the same time, I looked into using Intel Xenon Phi and they were way less aggressive: “here are some benchmarks, here’s how it works, your institution has one or two somewhere if you want to contact them and try it out.” As for OpenCL…crickets. I don’t even remember any AMD events, and the very broad standard made it hard to figure out what would work/work well and you might end up needing to port it too!

Re:Simulation of a 2B-atom cell that metabolizes and grows l... by jjoonathan on Friday January 28, 2022 @11:49AM (#30117144)
AMD's GPU OpenCL wasn't just not marketed, it was also a bad product, even for relatively tame scientific purposes, even when AMD made loud, repeated statements to the contrary. Hopefully now that AMD has money they can do better.

I'm sure that NVidia's ecosystem building played a role (I remember events in 2009 and books before that), perhaps even a big role, but it wasn't the only factor. I paid a steep price in 2014 and 2016 for incorrectly assuming that it was.

Re:Simulation of a 2B-atom cell that metabolizes and grows l... by jjoonathan on Friday January 28, 2022 @09:52AM (#30115302)
Back 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.

Re:Simulation of a 2B-atom cell that metabolizes and grows l... by naavis on Friday January 28, 2022 @09:13AM (#30114781)
NVIDIA provides tools that just mostly do not exist for other GPUs, making it easier to build on CUDA instead of something else.
Re:Simulation of a 2B-atom cell that metabolizes and grows l... by hiptobecubic on Friday January 28, 2022 @09:26AM (#30114956)
Absolutely 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.

Re:Simulation of a 2B-atom cell that metabolizes and grows l... by carlmr on Friday January 28, 2022 @09:19AM (#30114865)
From 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.

Re:Simulation of a 2B-atom cell that metabolizes and grows l... by erwincoumans on Friday January 28, 2022 @08:23AM (#30114227)
The fine grain parallelism of this simulation suits the GPU well. It would be possible on multicore CPUs, but possibly slower.