{"id":23207952,"url":"https://github.com/pkestene/ms-hpc-ai-gpu","last_synced_at":"2025-08-19T03:30:39.752Z","repository":{"id":86494702,"uuid":"224665404","full_name":"pkestene/MS-HPC-AI-GPU","owner":"pkestene","description":"resources pour le cours d'introduction à la programmation des GPUs du mastère spécialisé HPC-AI","archived":false,"fork":false,"pushed_at":"2024-01-11T08:33:38.000Z","size":72817,"stargazers_count":19,"open_issues_count":0,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-01-12T02:43:28.698Z","etag":null,"topics":["cuda","deep-learning","gpu","gpu-computing","machine-learning","physics-informed-neural-networks","pinn","pinns"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pkestene.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-11-28T14:00:47.000Z","updated_at":"2024-01-12T02:43:28.698Z","dependencies_parsed_at":"2024-01-05T18:48:39.780Z","dependency_job_id":null,"html_url":"https://github.com/pkestene/MS-HPC-AI-GPU","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkestene%2FMS-HPC-AI-GPU","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkestene%2FMS-HPC-AI-GPU/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkestene%2FMS-HPC-AI-GPU/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkestene%2FMS-HPC-AI-GPU/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pkestene","download_url":"https://codeload.github.com/pkestene/MS-HPC-AI-GPU/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230312448,"owners_count":18206858,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cuda","deep-learning","gpu","gpu-computing","machine-learning","physics-informed-neural-networks","pinn","pinns"],"created_at":"2024-12-18T17:26:40.796Z","updated_at":"2024-12-18T17:26:41.531Z","avatar_url":"https://github.com/pkestene.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MS-HPC-AI-GPU\n\nResources pour le cours d'introduction à la programmation des GPUs du [mastère spécialisé HPC-AI](https://www.hpc-ai.mines-paristech.fr/)\n\n## biblio\n\n### Scientific Programming and Computer Architecture\n\n- [Scientific Programming and Computer Architecture](https://github.com/divakarvi/bk-spca) book by Divakar Viswanath\n- https://github.com/divakarvi/bk-spca : source associated to the book\n- [Definition of latency oriented architecture](https://en.wikipedia.org/wiki/Latency_oriented_processor_architecture)\n- [Seven Dwarfs of HPC](https://moodle.rrze.uni-erlangen.de/course/view.php?id=113\u0026lang=en)\n- [CSCI-5576/4576: High Performance Scientific Computing](https://github.com/cucs-hpsc/hpsc-class)\n- Mark Horowitz talk at ISSCC_2014: [Computing's energy problem](http://eecs.oregonstate.edu/research/vlsi/teaching/ECE471_WIN15/mark_horowitz_ISSCC_2014.pdf)\n- [Introduction to High-Performance Scientific Computing, book and slides by Victor Eijkhout](https://pages.tacc.utexas.edu/~eijkhout/istc/istc.html) and [The Art of HPC website](https://theartofhpc.com/)\n- [San Diego Summer institute](https://github.com/sdsc/sdsc-summer-institute-2019)\n- [Finnish CSC summer school](https://github.com/csc-training/summerschool)\n- [Computational Physics book by K. N. Anagnostopoulos](http://www.physics.ntua.gr/~konstant/ComputationalPhysics/C++/Book/ComputationalPhysicsKNA2ndEd_nocover.pdf)\n- [Modern computer architecture slides](https://moodle.rrze.uni-erlangen.de/course/view.php?id=274), see e.g. slides [Intro_Architecture.pdf](https://moodle.rrze.uni-erlangen.de/pluginfile.php/12916/mod_resource/content/9/01_Intro-Architecture.pdf)\n- [Structure and Interpretation of Computer Programs](https://library.oapen.org/handle/20.500.12657/26092)\n\n### CUDA / GPU training\n\n- [NVIDIA's latest CUDA programming guide](https://docs.nvidia.com/cuda/cuda-c-programming-guide/)\n- [Julich training on CUDA](https://www.fz-juelich.de/ias/jsc/EN/Expertise/Services/Documentation/presentations/presentation-cuda_table.html?nn=362392)\n- [Oxford training on CUDA](https://people.maths.ox.ac.uk/gilesm/cuda/)\n- [Swiss CSCS summer school](https://github.com/eth-cscs/SummerSchool2019.git)\n- [Amina Guermouche (Telecom Paris)](http://www-inf.telecom-sudparis.eu/COURS/CSC5001/new_site/Supports/Cours/GPU/csc5001-cuda.pdf)\n- [EPCC, Univ Edinburgh, GPU training](https://github.com/EPCCed/archer-gpu-course)\n- [ARCHER GPU course](https://github.com/EPCCed/archer-gpu-course)\n- [Univ Luxembourg HPC](https://www.hpcwire.com/2019/11/14/at-sc19-what-is-urgenthpc-and-why-is-it-needed/)\n- [SC19 Introduction to GPU programming with CUDA](http://icl.utk.edu/~mgates3/gpu-tutorial/)\n- https://codingbyexample.com/category/cuda/\n- http://turing.une.edu.au/~cosc330/lectures/display_notes.php?lecture=18\n- https://www.nersc.gov/users/training/gpus-for-science/\n- https://dl.acm.org/citation.cfm?id=3318192\n- git@bitbucket.org:hwuligans/gputeachingkit-labs.git\n- http://syllabus.gputeachingkit.com/\n- [udemy/cuda-programming-masterclass](https://www.udemy.com/cuda-programming-masterclass/)\n- SDL2 Graphics User Interface : https://github.com/rogerallen/smandelbrotr\n- [mgbench](https://github.com/tbennun/mgbench) : a multi-GPU benchmark\n- performance analysis : [parallelforall blog on Nsight](https://devblogs.nvidia.com/using-nsight-compute-to-inspect-your-kernels/?utm_source=feedburner\u0026utm_medium=email\u0026utm_campaign=Feed%3A+nvidia%2Fparallelforall+%28NVIDIA+Parallel+Forall+Blog%29)\n- misc : [convert CUDA to portable C++ for AMD GPU](https://github.com/ROCm-Developer-Tools/HIP)\n- [List of Nvidia GPUs](https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units)\n- https://github.com/ashokyannam/GPU_Acceleration_Using_CUDA_C_CPP\n- https://github.com/karlrupp/cpu-gpu-mic-comparison\n- https://perso.centrale-marseille.fr/~gchiavassa/visible/HPC/01%20-%20GR%20%20Intro%20to%20GPU%20programming%20V2%20OpenACC%20.pdf\n\n### CUDA / performance analysis\n\n- https://devblogs.nvidia.com/using-nsight-compute-to-inspect-your-kernels/\n- https://www.olcf.ornl.gov/wp-content/uploads/2019/08/NVIDIA-Profilers.pdf\n- http://on-demand.gputechconf.com/gtc/2017/presentation/s7445-jakob-progsch-what-the-profiler-is-telling-you.pdf\n- monitoring performance : https://github.com/NERSC/timemory\n- [roofline model](https://www.nersc.gov/assets/Uploads/Talk-GTC2019-Roofline.pdf)\n\n### Other CUDA resources\n\n- [C++ wrapper library](https://github.com/eyalroz/cuda-api-wrappers)\n- [template CMake project for CUDA](https://github.com/pkestene/cuda-proj-tmpl)\n- [Multi-GPU programming from FZJ](https://github.com/FZJ-JSC/tutorial-multi-gpu)\n- [Multi-GPU programming from Nvidia](https://github.com/NVIDIA/multi-gpu-programming-models)\n- [CUDA Library samples](https://github.com/NVIDIA/CUDALibrarySamples) ([cuFFT](https://docs.nvidia.com/cuda/cufft/index.html), [cuSolver](https://docs.nvidia.com/cuda/cusolver/index.html) , [cuSparse](https://docs.nvidia.com/cuda/cusparse/index.html), ...)\n- [MatX](https://github.com/NVIDIA/MatX), a GPU-Accelerated Numerical Computing C++ library\n\n### CUDA / python\n\n- (NEW 2021) [legate](https://github.com/nv-legate/legate.core) and [cuNumeric](https://github.com/nv-legate/cunumeric)\n- [cuNumeric](https://github.com/nv-legate/cunumeric): drop-in remplacement for Numpy, built on top of [legion](https://github.com/StanfordLegion/legion)\n- [stdpar + cython](https://github.com/shwina/stdpar-cython)\n- [Numba](http://numba.pydata.org/) // [recommended numba tutorial for GPU programming](https://github.com/ContinuumIO/gtc2019-numba)\n- [CuPy](https://cupy.chainer.org/)\n- [pycuda](https://documen.tician.de/pycuda/)\n- [python / C++ CUDA interface (SWIG and Cython)](https://github.com/pkestene/npcuda-example)\n- [python / C++ CUDA interface with pybind11](https://github.com/pkestene/pybind11-cuda)\n- [PythonHPC](https://github.com/eth-cscs/PythonHPC)\n- [HPC Python video's](https://www.cscs.ch/publications/tutorials/2018/high-performance-computing-with-python/)\n- [Hands-On GPU Programming with Python and CUDA](https://www.oreilly.com/library/view/hands-on-gpu-programming/9781788993913/) and [examples](https://github.com/PacktPublishing/Hands-On-GPU-Programming-with-Python-and-CUDA/tree/9e3473f834123860726712dca6259bb4e057a001)\n- [2020-geilo-gpu-python](https://github.com/inducer/2020-geilo-gpu-python)\n- [Numba introduction](https://indico-jsc.fz-juelich.de/event/100/session/2/contribution/31/material/slides/1.pdf)\n\n### Machine learning and Deep Learning\n\n- https://towardsdatascience.com/fast-data-augmentation-in-pytorch-using-nvidia-dali-68f5432e1f5f\n- https://ep2019.europython.eu/media/conference/slides/fX8dJsD-distributed-multi-gpu-computing-with-dask-cupy-and-rapids.pdf\n- https://github.com/NVIDIA/DeepLearningExamples\n- https://github.com/chagaz/hpc-ai-ml-2019\n- [tensorflow tutorial](https://github.com/eth-cscs/SummerSchool2019/tree/master/topics/tensorflow)\n- [AI cheatsheet](doc/ai_cheatsheet.pdf)\n- [m2dsupsdlclass](https://github.com/m2dsupsdlclass/lectures-labs)\n- [deep-learning-with-python-notebooks](https://github.com/fchollet/deep-learning-with-python-notebooks)\n- https://d2l.ai/\n- [Building a neural network FROM SCRATCH (no Tensorflow/Pytorch, just numpy \u0026 math)](https://www.youtube.com/watch?v=w8yWXqWQYmU\u0026t=1s)\n\n### Physics Informed Neural Networks (PINN)\n\n- [Artificial Neural Networks for Solving Ordinary\nand Partial Differential Equations](https://www.cs.uoi.gr/~lagaris/papers/TNN-LLF.pdf), Lagaris etal, IEEE TRANSACTIONS ON NEURAL NETWORKS, VOL. 9, NO. 5, SEPTEMBER 1998\n- Physics Informed Deep Learning (Part I): Data-driven, Solutions of Nonlinear Partial Differential Equations, https://arxiv.org/pdf/1711.10561.pdf\n- Raissi et al, Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations, https://doi.org/10.1016/j.jcp.2018.10.045\n- https://github.com/openhackathons-org/gpubootcamp/tree/master/hpc_ai/PINN\n- [Nvidia Modulus documentation](https://docs.nvidia.com/deeplearning/modulus/index.html)\n- [Nvidia Modulus source code](https://gitlab.com/nvidia/modulus/modulus)\n- [Nvidia Modulus examples](https://gitlab.com/nvidia/modulus/examples)\n- [DeepXDE](https://github.com/lululxvi/deepxde)\n- [TensorDiffEq](https://github.com/tensordiffeq/TensorDiffEq)\n- [SciANN](https://github.com/sciann/sciann), [SciANN examples](https://github.com/sciann/sciann-applications)\n- [neurodiffeq](https://github.com/NeuroDiffGym/neurodiffeq)\n- Julia's [DiffEqFlux.jl](https://github.com/SciML/DiffEqFlux.jl), [NeuralOperators.jl](https://github.com/SciML/NeuralOperators.jl) and [OperatorLearning](https://github.com/SciML/OperatorLearning.jl)\n- https://github.com/maziarraissi/PINNs\n- [Fourier Neural Operator](https://github.com/zongyi-li/fourier_neural_operator)\n- a review article : [Scientific Machine Learning Through Physics–Informed Neural Networks: Where we are and What’s Next](https://link.springer.com/article/10.1007/s10915-022-01939-z)\n- [slides by Lu Lu (Univ. Penn)](https://github.com/lululxvi/tutorials/blob/master/20211210_pinn/pinn.pdf)\n\n### Graphics / GPU\n\n- https://raytracing.github.io/\n- https://github.com/RayTracing/raytracing.github.io\n- https://github.com/rogerallen/raytracinginoneweekendincuda : code très clean, super\n\n### OpenMP\n\n- https://www.openmp.org/wp-content/uploads/openmp-examples-4.5.0.pdf\n- https://github.com/OpenMP/Examples/tree/v4.5.0/sources\n- https://ukopenmpusers.co.uk/wp-content/uploads/uk-openmp-users-2018-OpenMP45Tutorial_new.pdf\n- https://www.nas.nasa.gov/hecc/assets/pdf/training/OpenMP4.5_3-20-19.pdf\n- http://www.admin-magazine.com/HPC/Articles/OpenMP-Coding-Habits-and-GPUs?utm_source=AMEP\n\n### OpenMP target\n\n- How to build yourself clang with OpenMP target support for Nvidia GPUs\n  - https://hpc-wiki.info/hpc/Building_LLVM/Clang_with_OpenMP_Offloading_to_NVIDIA_GPUs\n  - //devmesh.intel.com/blog/724749/how-to-build-and-run-your-modern-parallel-code-in-c-17-and-openmp-4-5-library-on-nvidia-gpus\n- https://www.openmp.org/wp-content/uploads/SC17-OpenMPBooth_jlarkin.pdf\n- [OpenMP 5.0 for accelerators at GTC 2019](https://developer.download.nvidia.com/video/gputechconf/gtc/2019/presentation/s9353-openmp-5-for-accelerators-and-what-comes-next.pdf)\n- [LLVM/Clang based compiler for both AMD/NVidia GPUs](https://github.com/ROCm-Developer-Tools/aomp)\n- [OpenMP target examples](https://github.com/pkestene/OMP-Offloading)\n\nHow to build clang++ with openmp target (off-loading) support ?\n\n- https://devmesh.intel.com/blog/724749/how-to-build-and-run-your-modern-parallel-code-in-c-17-and-openmp-4-5-library-on-nvidia-gpus\n- https://hpc-wiki.info/hpc/Building_LLVM/Clang_with_OpenMP_Offloading_to_NVIDIA_GPUs\n\n\n### OpenACC\n\n- [OpenACC Programming and Best Practices Guide](https://www.openacc.org/sites/default/files/inline-files/OpenACC_Programming_Guide_0.pdf)\n- [PGI compiler - OpenACC getting started guide](https://www.pgroup.com/resources/docs/19.10/x86/openacc-gs/index.htm)\n- https://www.fz-juelich.de/SharedDocs/Downloads/IAS/JSC/EN/slides/openacc/2-openacc-introduction.pdf?__blob=publicationFile\n- [Introduction to GPU programming using OpenACC](https://www.fzj.de/ias/jsc/EN/Expertise/Services/Documentation/presentations/presentation-openacc_table.html)\n- https://github.com/eth-cscs/SummerSchool2019/tree/master/topics/openacc\n- https://developer.nvidia.com/openacc-overview-course\n- https://perso.centrale-marseille.fr/~gchiavassa/visible/HPC/01%20-%20GR%20%20Intro%20to%20GPU%20programming%20V2%20OpenACC%20.pdf\n- [Jeff Larkin (Nvidia) Introduction to OpenACC](https://www.openacc.org/sites/default/files/inline-files/OpenACC_Course_Oct2018/OpenACC%20Course%202018%20Week%201.pdf)\n- [Jeff Larkin (Nvidia) OpenACC data management](https://www.openacc.org/sites/default/files/inline-files/OpenACC_Course_Oct2018/OpenACC%20Course%202018%20Week%202.pdf)\n- [Jeff Larkin (Nvidia) OpenACC optimizations](https://www.openacc.org/sites/default/files/inline-files/OpenACC_Course_Oct2018/OpenACC%20Course%202018%20Week%203.pdf)\n- [OpenAcc training material as notebooks](https://github.com/OpenACC/openacc-training-materials)\n- https://www.pgroup.com/resources/docs/19.10/pdf/pgi19proftut.pdf\n- https://github.com/OpenACCUserGroup/openacc_concept_strategies_book\n- https://developer.nvidia.com/blog/solar-storm-modeling-gpu-openacc/\n\nWhich compiler with OpenAcc support ?\n- [Nvidia/PGI compiler](https://developer.nvidia.com/hpc-sdk) is the oldest and probably more mature OpenACC compiler.\n- [GNU/gcc](https://www.openacc.org/tools/gcc-for-openacc) provided by [Spack](https://spack.readthedocs.io/en/latest/) is the easiest way to get started for OpenMP/OpenACC offload with the GNU compiler.\n\n### C++17 and parallel STL for CPU/GPU\n\n- [accelerating-standard-c-with-gpus-using-stdpar/](https://developer.nvidia.com/blog/accelerating-standard-c-with-gpus-using-stdpar/) for Nivia GPUs\n- a real life example in CFD: [LULESH](https://github.com/LLNL/LULESH/tree/2.0.2-dev/stdpar)\n- another reference in CFD [stdpar for Lattice Boltzmann simulation](https://arxiv.org/pdf/2010.11751.pdf) and its [companion code](https://gitlab.com/unigehpfs/stlbm)\n- https://github.com/shwina/stdpar-cython/\n- https://software.intel.com/content/www/us/en/develop/articles/get-started-with-parallel-stl.html\n\nWhich compiler ?\n- [Nvidia/PGI compiler](https://developer.nvidia.com/hpc-sdk) for Nvidia GPUs\n- GNU g++ version \u003e= 9.1  (+ TBB) for multicore CPUs\n- clang \u003e= 10.0.1 for multicore CPUs\n- [Intel OneApi HPC Toolkit](https://software.intel.com/content/www/us/en/develop/tools/oneapi/hpc-toolkit.html)\n\n### stdpar for Fortran\n\n- https://developer.nvidia.com/blog/accelerating-fortran-do-concurrent-with-gpus-and-the-nvidia-hpc-sdk/\n- example code [euler2d_cudaFortran](https://github.com/pkestene/euler2d_cudaFortran) : solving Euler's equations in Fortran with stdpar (do concurrent loops)\n\n### SYCL\n\n- [Khronos](https://www.khronos.org/sycl/resources)\n- [syclacademy](https://github.com/codeplaysoftware/syclacademy)\n- [oneAPI-samples](https://github.com/oneapi-src/oneAPI-samples)\n- [more oneAPI / SYCL samples](https://github.com/zjin-lcf/oneAPI-DirectProgramming)\n- [a short tutorial](https://github.com/jeffhammond/dpcpp-tutorial)\n- Compilers / toolchain\n  * [codeplay](https://developer.codeplay.com/home/)\n  * [Intel OneAPI](https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/dpc-compiler.html). If you want Nvidia GPU support, you'll have to rebuild llvm/clang from the [source code](https://github.com/intel/llvm), see [instructions](https://github.com/intel/llvm/blob/sycl/sycl/doc/GetStartedGuide.md#build-dpc-toolchain-with-support-for-nvidia-cuda); OneAPI DPC++ actually is a SYCL implementation + [extensions](https://github.com/intel/llvm/tree/sycl/sycl/doc/extensions) (Unified Shared Memory, Explicit SIMD, ...)\n  * [triSYCL](https://github.com/triSYCL/triSYCL) for [Xilinx FPGA target](https://raw.githubusercontent.com/keryell/ronan/gh-pages/Talks/2019/2019-11-17-SC19-H2RC-keynote-SYCL/2019-11-17-SC19-H2RC-keynote-SYCL.pdf)\n- [Comparison Kokkos/SYCL (early 2020)](http://uob-hpc.github.io/2020/01/06/cloverleaf-sycl.html)\n\n\n### Books on GPU programming / recommended reading\n\n- [The CUDA Handbook: A Comprehensive Guide to GPU Programming](http://www.cudahandbook.com/), by Nicholas Wilt, Pearson Education.\n- [CUDA by example](https://www.amazon.com/CUDA-Example-Introduction-General-Purpose-Programming/dp/0131387685/ref=pd_bbs_sr_1/103-9839083-1501412?ie=UTF8\u0026s=books\u0026qid=1186428068\u0026sr=1-1), by Sanders and Kandrot, Addison-Wesley, 2010. Also available in [pdf](http://www.mat.unimi.it/users/sansotte/cuda/CUDA_by_Example.pdf)\n- [Learn CUDA programming](https://www.packtpub.com/eu/application-development/cuda-cookbook) by B. Sharma and J. Han, Packt Publishing, 2019\n- Python + CUDA : https://github.com/PacktPublishing/Hands-On-GPU-Programming-with-Python-and-CUDA\n- https://www.oreilly.com/library/view/hands-on-gpu-programming/9781788993913/ by Brian Tuomanen\n\n### C++ resources\n\n- [Discovering Modern C++: An Intensive Course for Scientists, Engineers, and Programmers](https://www.amazon.com/Discovering-Modern-Scientists-Programmers-Depth/dp/0134383583), and [companion github website](https://github.com/petergottschling/discovering_modern_cpp)\n- https://github.com/changkun/modern-cpp-tutorial\n- https://github.com/eth-cscs/examples_cpp\n- https://github.com/mandliya/algorithms_and_data_structures\n- https://www.fz-juelich.de/SharedDocs/Downloads/IAS/JSC/EN/slides/cplusplus/cplusplus.pdf?__blob=publicationFile\n- https://gitlab.maisondelasimulation.fr/tpadiole/hpcpp\n- http://www.cppstdlib.com/\n- http://101.lv/learn/C++/\n- https://github.com/caveofprogramming/advanced-cplusplus\n- https://en.cppreference.com/w/\n- list of Lists of C++ related resources: https://github.com/fffaraz/awesome-cpp\n- list of books on C++ : https://github.com/fffaraz/awesome-cpp/blob/master/books.md\n- [C++ idioms](https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms)\n- [Design Patterns](https://en.wikibooks.org/wiki/C%2B%2B_Programming/Code/Design_Patterns) and [Book on design patterns for modern c++](https://github.com/PacktPublishing/Hands-On-Design-Patterns-with-CPP)\n- [Julich training on C++](https://www.fz-juelich.de/SharedDocs/Downloads/IAS/JSC/EN/slides/cplusplus/cplusplus.pdf?)\n- [CSCS computing center training on C++ videos](https://www.cscs.ch/publications/tutorials/2019/videos-of-workshop-advanced-c/)\n- [CppCon](https://github.com/CppCon/) and [videos on YouTube](https://www.youtube.com/user/CppCon)\n- [Bo Qiang YouTube channel on C++11](https://www.youtube.com/channel/UCEOGtxYTB6vo6MQ-WQ9W_nQ)\n- https://github.com/TheAlgorithms/C-Plus-Plus\n- [cours de C++ de l'université de Strasbourg](http://irma.math.unistra.fr/~franck/cours/Cpp1819/cpp1819English.html)\n\n\n### high-level C++ libraries for programming GPUs\n\nAlternate programming models for programming modern computing architectures in a performance portable way:\n\n- introduction to [performance portability](https://performanceportability.org/perfport/overview/)\n- https://github.com/arrayfire/arrayfire\n- https://docs.nvidia.com/cuda/thrust/index.html\n- https://github.com/kokkos/kokkos\n- https://github.com/LLNL/RAJA et https://github.com/LLNL/RAJA-tutorials\n- https://github.com/triSYCL/triSYCL\n- https://github.com/codeplaysoftware/computecpp-sdk\n\n### Performance portability\n\n- [Performance portability](https://performanceportability.org/)\n\n### Kokkos/C++ library\n\n- https://github.com/kokkos/kokkos\n- https://github.com/kokkos/kokkos-tutorials\n- https://github.com/kokkos/kokkos-tutorials/wiki/Kokkos-Lecture-Series\n- [C++ Performance Portability - A Decade of Lessons Learned - Christian Trott - CppCon 2022](https://www.youtube.com/watch?v=jNGGKFkt4lA)\n\n### CMake\n\n- [cmake-cookbook](https://github.com/dev-cafe/cmake-cookbook) and the [book](https://www.packtpub.com/application-development/cmake-cookbook)\n- [Modern CMake tutorial](https://cliutils.gitlab.io/modern-cmake/)\n- [template CMake project for CUDA](https://github.com/pkestene/cuda-proj-tmpl)\n- [GPUs for science day](https://www.nersc.gov/assets/GPUs-for-Science-Day/jonathan-madsen.pdf)\n\n### Git\n\n- [Git cheatsheet](https://github.github.com/training-kit/)\n\n### Misc\n\n- [Udacity CS344 video archive](https://www.youtube.com/playlist?list=PLvvwOd40Y2t9lCTtCOQLJd9vLA2muyJuA)\n- cuda related : https://gist.github.com/allanmac/f91b67c112bcba98649d - cuda_assert\n- [FPGA, loop transformation, matrix multiplication](https://arxiv.org/pdf/1805.08288.pdf)\n- [Cycle du hype](https://fr.wikipedia.org/wiki/Cycle_du_hype)\n- https://press3.mcs.anl.gov/atpesc/files/2019/08/ATPESC_2019_Dinner_Talk_8_8-7_Foster-Coding_the_Continuum.pdf\n\n### Shell and command line skills\n\n- Learn/improve your skill on Linux’s command line/Bash\n  e.g. http://swcarpentry.github.io/shell-novice/\n- http://www.tldp.org/LDP/abs/html/\n- http://www.epons.org/commandes-base-linux.php\n- [The art of command line](https://github.com/jlevy/the-art-of-command-line)\n\n\n### Blogs or newsletters on HPC\n\n- https://www.nextplatform.com/\n- subscribe blog/news letters on HPC; e.g. [Admin-magazine / HPC](http://www.admin-magazine.com/HPC/Articles)\n- (En anglais) [Intel Parallel Universe Magazine](https://software.intel.com/en-us/parallel-universe-magazine)\n\n\n# MOOC\n\n- [Amazon](https://www.amazon.com/s?i=digital-text\u0026rh=p_27%3ACuda+Education\u0026s=relevancerank\u0026text=Cuda+Education\u0026ref=dp_byline_sr_ebooks_1)\n- [udemy](https://www.udemy.com/)\n\n# Projet\n\n- Portage d'un code C++ de simulation des équations de Navier-Stokes par la méthode de Boltzmann sur réseau.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkestene%2Fms-hpc-ai-gpu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpkestene%2Fms-hpc-ai-gpu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkestene%2Fms-hpc-ai-gpu/lists"}