Re: Library for writing and compiling for CPU and GPU

34 views
Skip to first unread message

Matt Godbolt

unread,
Sep 11, 2020, 12:47:50 PM9/11/20
to Guillaume Quintin, compiler-explo...@googlegroups.com
Hi Guillaume! (and CCing the mailing list)

Adding a header-only library to compiler explorer for C++ and CUDA is pretty straightforward, and the more libraries the better for us! Details are in the documentation: https://github.com/compiler-explorer/compiler-explorer/blob/master/docs/AddingALibrary.md

If you need to link against a library, that's a little more complicated and involves building conda packages and things of that nature. I'm embarrassed to say I don't fully know what needs to be done in that case; Partouf (one of the CE core developers can help if that's the case).

Let us know if we can help: for each library we'll need two PRs, one to the CE repository and one to the "infra" repository that installs it.  If you are on Slack we hang out in the CppLang #compiler-explorer channel and can help there too!

Cheers, Matt


On Fri, Sep 11, 2020 at 11:26 AM Guillaume Quintin <guillaum...@agenium.com> wrote:
Hi Mr. Godbolt,

I'am Guillaume Quintin, CEO of a small french company called Agenium Scale. We are specialized in code profiling and optimization. We are also writing NSIMD available on github (https://github.com/agenium-scale/nsimd).

At its core, NSIMD is a vectorization library that abstracts SIMD programming. It was designed to exploit the maximum power of processors at a low development cost. NSIMD comes with modules. As of now two of them adds support for GPUs to NSIMD. The direction that NSIMD is taking is to provide several programming paradigms to address different problems and to allow a wider support of architectures. With two of its modules NSIMD provides three programming paradigms:

- Imperative programming provided by NSIMD core that supports a lots of CPU/SIMD extensions.
- Expressions templates provided by the TET1D module that supports all architectures from NSIMD core and adds support for NVIDIA and AMD GPUs.
- Single Program Multiple Data provided by the SPMD module that supports all architectures from NSIMD core and adds support for NVIDIA and AMD GPUs.

In any case NSIMD provide support for IEEE float16's. We are currently setting up our CI to test extensively NSIMD on several CPU (Intel and Arm) and GPU (NVIDIA and AMD). If all goes well next week we will be able to launch all the tests and release the v2 of NSIMD.

The v2 of NSIMD is in fact the SPMD branch: https://github.com/agenium-scale/nsimd/tree/spmd.

I would like to know if it was possible to add NSIMD to godbolt for both CPU compilers and CUDA. If you agree with it can you point me to some doc or tell me how to do it ?

Thanks in advance,
Best regards,

--
Dr. Guillaume Quintin
Directeur Général (CEO)
Agenium Scale
Digiteo Labs – Bâtiment 660
Rue Noetzlin
91190 Gif-sur-Yvette

Tél. : 01 69 15 42 42
Mail : guillaum...@numscale.com


--
Matt

Guillaume Quintin

unread,
Sep 14, 2020, 9:08:22 AM9/14/20
to Matt Godbolt, compiler-explo...@googlegroups.com, rodolphe....@agenium.com, jean-didie...@agenium.com
Hi Matt,

Thank you very much. I am CC'ing people at Agenium that will do the task. They know better than me all the web stuff. My intuition is that generation part, indeed Python3 code generates all NSIMD. And a part of NSIMD has to compiled. Well I leave this to them.

Thanks again,
Best regards,

--
Dr. Guillaume Quintin
Directeur Général (CEO)
Agenium Scale
Digiteo Labs – Bâtiment 660
Rue Noetzlin
91190 Gif-sur-Yvette

Tél. : 01 69 15 42 42
Mail : guillaum...@numscale.com


Jean Didier Pailleux

unread,
Sep 16, 2020, 4:32:01 AM9/16/20
to Matt Godbolt, compiler-explo...@googlegroups.com, Rodolphe Cargnello, Guillaume Quintin
Hi Matt,

Is it possible to join the Slack CppLang for the following users:
Thank you.
Kind regards,

Jean-Didier Pailleux
Agenium Scale
Digiteo Labs – Bâtiment 660
Rue Noetzlin
91190 Gif-sur-Yvette
Tel: 01 69 15 39 93


De : Guillaume Quintin <guillaum...@agenium.com>
Envoyé : lundi 14 septembre 2020 15:08
À : Matt Godbolt <ma...@godbolt.org>
Cc : compiler-explo...@googlegroups.com <compiler-explo...@googlegroups.com>; Rodolphe Cargnello <rodolphe....@agenium.com>; Jean Didier Pailleux <jean-didie...@agenium.com>
Objet : Re: Library for writing and compiling for CPU and GPU
 

Matt Godbolt

unread,
Sep 16, 2020, 9:41:44 AM9/16/20
to compiler-explo...@googlegroups.com, Rodolphe Cargnello, Guillaume Quintin
Sure! I'll add them - but anyone can add themselves at https://cppalliance.org/slack/ :)

--
You received this message because you are subscribed to the Google Groups "Compiler Explorer Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to compiler-explorer-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/compiler-explorer-development/PR2P264MB054123BED37048DAF414C137CD210%40PR2P264MB0541.FRAP264.PROD.OUTLOOK.COM.


--
Matt
Reply all
Reply to author
Forward
0 new messages