Live data from Hacker News

Celerity – High-level C++ for Accelerator Clusters

celerity.github.io

1–10 of 11 posts

Re: Celerity – High-level C++ for Accelerator Clusters

#2
Weird. A library that wraps SYCL within MPI, yet requires all processes to hold a copy of all the memory ?

One of the main reasons to use MPI is to solve problems that do not fit within the memory available in a single cluster node.

There is a presentation [0] from 2020-02-20 that's not very impressive. Particularly, they compare against MPI+OpenCL, but do not show a comparison against MPI-CUDA.

Doing a distributed MatMul using MPI-CUDA is trivial. I wonder how the cyclomatic complexity and performance compares for that case. Insted, they only compare doing one MatMul per process using MPI-OpenCL... that's... a two liner with CUDA (just call MpiInit followed by a cuBLAS call).

[0] https://www.uibk.ac.at/fz-hpc/events/resources/2020_02_20_ah...

Re: Celerity – High-level C++ for Accelerator Clusters

#3

Weird. A library that wraps SYCL within MPI, yet requires all processes to hold a copy of all the memory ? One of the main reasons to use MPI is to solve problems that do not fit within the memory available in a single cluster node. There is a presentation [0] from 2020-02-20 that's not very impressive. Particularly, they compare against MPI+OpenCL, but do not show a comparison against MPI-CUDA. Doing a distributed M…

I'm honestly much more worried about NVIDIA's overwhelming success in buying their way into the entire scientific community.

CUDA is proprietary, not standardised, and tied to a single hardware vendor. Technical issues aside, I applaud any effort to break the dominance of CUDA. CUDA is a pest that needs to either open up or be replaced.

HPC is a very heterogeneous environment (on the whole) and making it easier to use the full potential of the hardware is understandable. Also keep in mind that it's a research project and very early in its development.

Re: Celerity – High-level C++ for Accelerator Clusters

#4
post #3

Weird. A library that wraps SYCL within MPI, yet requires all processes to hold a copy of all the memory ? One of the main reasons to use MPI is to solve problems that do not fit within the memory available in a single cluster node. There is a presentation [0] from 2020-02-20 that's not very impressive. Particularly, they compare against MPI+OpenCL, but do not show a comparison against MPI-CUDA. Doing a distributed M…

I'm honestly much more worried about NVIDIA's overwhelming success in buying their way into the entire scientific community. CUDA is proprietary, not standardised, and tied to a single hardware vendor. Technical issues aside, I applaud any effort to break the dominance of CUDA. CUDA is a pest that needs to either open up or be replaced. HPC is a very heterogeneous environment (on the whole) and making it easier to us…

> CUDA is a pest that needs to either open up or be replaced.

My main problem with cuda is not that it is un-free, it is that the source code is unavailable and consequently you have to deal with a badly packaged, badly supported blob that turn only on a restricted set of compilers.

The consequences of that is that every software depending on cuda is a pain in the butt to distribute. Even major software like Pytorch or tensorflow need to have separated released due to cuda.

It is particularly sad that Nvidia in 2020 did not understand what Mellanox understood 10 years ago: that successful leadership in hardware is compatible OSS with an software stack.

Re: Celerity – High-level C++ for Accelerator Clusters

#5
Not to be confused with Celerity Computing: https://en.wikipedia.org/wiki/Celerity_Computing

Fun fact: I did a port of Franz Lisp[1] to the Celerity, having the compiler (liszt) generate code for the backend of the C compiler, since they told us: "in no way will you be able to generate assembly code out of your compiler for this architecture." They were an early Sun Microsystems competitor that didn't make it.

[1] Not to be confused with Franz's Common Lisp, this is the MacLisp compatible Lisp from UC Berkeley.

Re: Celerity – High-level C++ for Accelerator Clusters

#6
post #3

Weird. A library that wraps SYCL within MPI, yet requires all processes to hold a copy of all the memory ? One of the main reasons to use MPI is to solve problems that do not fit within the memory available in a single cluster node. There is a presentation [0] from 2020-02-20 that's not very impressive. Particularly, they compare against MPI+OpenCL, but do not show a comparison against MPI-CUDA. Doing a distributed M…

I'm honestly much more worried about NVIDIA's overwhelming success in buying their way into the entire scientific community. CUDA is proprietary, not standardised, and tied to a single hardware vendor. Technical issues aside, I applaud any effort to break the dominance of CUDA. CUDA is a pest that needs to either open up or be replaced. HPC is a very heterogeneous environment (on the whole) and making it easier to us…

Thank Khronos for being too focused on C and expecting partners to develop any kind of tooling or SDKs.

It took the CUDA bulldozer for them to consider more C++ love and introduction of bytecode formats that allow more languages to easily target Khronos standards.

Incidentally that were the biggest complains about Vulkan as well, on the last LunarG survey, tooling and documentation.

Re: Celerity – High-level C++ for Accelerator Clusters

#8
post #3

Weird. A library that wraps SYCL within MPI, yet requires all processes to hold a copy of all the memory ? One of the main reasons to use MPI is to solve problems that do not fit within the memory available in a single cluster node. There is a presentation [0] from 2020-02-20 that's not very impressive. Particularly, they compare against MPI+OpenCL, but do not show a comparison against MPI-CUDA. Doing a distributed M…

I'm honestly much more worried about NVIDIA's overwhelming success in buying their way into the entire scientific community. CUDA is proprietary, not standardised, and tied to a single hardware vendor. Technical issues aside, I applaud any effort to break the dominance of CUDA. CUDA is a pest that needs to either open up or be replaced. HPC is a very heterogeneous environment (on the whole) and making it easier to us…

Intel’s OneAPI promises to translate away from CUDA: https://software.intel.com/oneapi

Re: Celerity – High-level C++ for Accelerator Clusters

#10
post #3

Weird. A library that wraps SYCL within MPI, yet requires all processes to hold a copy of all the memory ? One of the main reasons to use MPI is to solve problems that do not fit within the memory available in a single cluster node. There is a presentation [0] from 2020-02-20 that's not very impressive. Particularly, they compare against MPI+OpenCL, but do not show a comparison against MPI-CUDA. Doing a distributed M…

I'm honestly much more worried about NVIDIA's overwhelming success in buying their way into the entire scientific community. CUDA is proprietary, not standardised, and tied to a single hardware vendor. Technical issues aside, I applaud any effort to break the dominance of CUDA. CUDA is a pest that needs to either open up or be replaced. HPC is a very heterogeneous environment (on the whole) and making it easier to us…

> I'm honestly much more worried about NVIDIA's overwhelming success in buying their way into the entire scientific community.

They bought their way by providing software along with the hardware, and by paying developers and researchers to work full-time in improving the performance of user applications on their hardware.

If you are a medium-ly important HPC application, the chances that there is an NVIDIA engineer working full-time on making it perform good on GPUs is quite large.

What's worrying is that Intel and AMD haven't realized, 20 years later, that hardware without software is useless. Even if they were to make GPUs that outperform NVIDIA's hardware in raw numbers by a 10x factor, NVIDIA's GPUs would still probably be the better product to buy because of the software and support you get.

Post reply on HN