Skip to content

Commit

Permalink
Fine-tune colors and order
Browse files Browse the repository at this point in the history
  • Loading branch information
AndiH committed Nov 12, 2022
1 parent 00c4b01 commit 01942de
Show file tree
Hide file tree
Showing 8 changed files with 66 additions and 66 deletions.
6 changes: 3 additions & 3 deletions _gen-symbols/_input_compat.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

\colorlet{ok}{fzjgreen}
\colorlet{prime}{fzjgreen!70!black}
\colorlet{prettyok}{fzjgreen!60!fzjorange}
\colorlet{nonvendorok}{fzjorange!90!black}
\colorlet{indirectok}{fzjorange!90!white}
\colorlet{indirectok}{fzjgreen!60!fzjorange}
\colorlet{nonvendorok}{fzjgreen!80!white}
\colorlet{prettyok}{fzjorange!90!white}
\colorlet{somesupport}{fzjorange!50!fzjred}
\colorlet{nope}{fzjred}
\tikzset{prime/.style={}}
Expand Down
10 changes: 5 additions & 5 deletions compat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ states:
fullok:
symbol: '<svg height="11.92" overflow="visible" version="1.1" width="11.92"><g transform="translate(0,11.92) matrix(1 0 0 -1 0 0) translate(5.96,0) translate(0,5.96)" fill="#B9D25F" stroke="#000000" stroke-width="0.4pt" color="#000000"><path d="M 0 0 M 5.96 0 C 5.96 3.29 3.29 5.96 0 5.96 C -3.29 5.96 -5.96 3.29 -5.96 0 C -5.96 -3.29 -3.29 -5.96 0 -5.96 C 3.29 -5.96 5.96 -3.29 5.96 0 Z M 0 0" style="stroke:none"></path></g></svg>'
description: Full vendor support
prettyok:
symbol: '<svg height="12.64" overflow="visible" version="1.1" width="12.64"><g transform="translate(0,12.64) matrix(1 0 0 -1 0 0) translate(6.32,0) translate(0,6.32)" fill="#D3C65D" stroke="#000000" stroke-width="0.4pt" color="#000000"><path d="M 6.32 6.32 L -6.32 6.32 L -6.32 -6.32 L 6.32 -6.32 Z" style="stroke:none"></path></g></svg>'
description: Vendor support, but not (yet) entirely comprehensive
indirectok:
symbol: '<svg height="7.92" overflow="visible" version="1.1" width="15.85"><g transform="translate(0,7.92) matrix(1 0 0 -1 0 0) translate(7.92,0) translate(0,4.75)" fill="#FBBC6A" stroke="#000000" stroke-width="0.4pt" color="#000000"><path d="M -7.92 3.17 C -7.92 -1.21 -4.38 -4.75 0 -4.75 C 4.38 -4.75 7.92 -1.21 7.92 3.17 Z" style="stroke:none"></path></g></svg>'
symbol: '<svg height="7.92" overflow="visible" version="1.1" width="15.85"><g transform="translate(0,7.92) matrix(1 0 0 -1 0 0) translate(7.92,0) translate(0,4.75)" fill="#D3C65D" stroke="#000000" stroke-width="0.4pt" color="#000000"><path d="M -7.92 3.17 C -7.92 -1.21 -4.38 -4.75 0 -4.75 C 4.38 -4.75 7.92 -1.21 7.92 3.17 Z" style="stroke:none"></path></g></svg>'
description: Indirect, but comprehensive support, by vendor
prettyok:
symbol: '<svg height="12.64" overflow="visible" version="1.1" width="12.64"><g transform="translate(0,12.64) matrix(1 0 0 -1 0 0) translate(6.32,0) translate(0,6.32)" fill="#FBBC6A" stroke="#000000" stroke-width="0.4pt" color="#000000"><path d="M 6.32 6.32 L -6.32 6.32 L -6.32 -6.32 L 6.32 -6.32 Z" style="stroke:none"></path></g></svg>'
description: Vendor support, but not (yet) entirely comprehensive
nonvendorok:
symbol: '<svg height="13.4" overflow="visible" version="1.1" width="15.48"><g transform="translate(0,13.4) matrix(1 0 0 -1 0 0) translate(7.74,0) translate(0,4.47)" fill="#E1A251" stroke="#000000" stroke-width="0.4pt" color="#000000"><path d="M 0 8.94 L -7.74 -4.47 L 7.74 -4.47 Z" style="stroke:none"></path></g></svg>'
symbol: '<svg height="13.4" overflow="visible" version="1.1" width="15.48"><g transform="translate(0,13.4) matrix(1 0 0 -1 0 0) translate(7.74,0) translate(0,4.47)" fill="#C7DB7F" stroke="#000000" stroke-width="0.4pt" color="#000000"><path d="M 0 8.94 L -7.74 -4.47 L 7.74 -4.47 Z" style="stroke:none"></path></g></svg>'
description: Comprehensive support, but not by vendor
somesupport:
symbol: '<svg height="16.17" overflow="visible" version="1.1" width="17"><g transform="translate(0,16.17) matrix(1 0 0 -1 0 0) translate(8.5,0) translate(0,7.23)" fill="#F38966" stroke="#000000" stroke-width="0.4pt" color="#000000"><path d="M 0 8.94 L -2.45 3.37 L -8.5 2.76 L -3.97 -1.29 L -5.25 -7.23 L 0 -4.17 L 5.25 -7.23 L 3.97 -1.29 L 8.5 2.76 L 2.45 3.37 Z" style="stroke:none"></path></g></svg>'
Expand Down
50 changes: 25 additions & 25 deletions gpu-vendor-model-matrix.html

Large diffs are not rendered by default.

Binary file modified gpu-vendor-model-matrix.pdf
Binary file not shown.
2 changes: 1 addition & 1 deletion gpu-vendor-model-matrix.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
50 changes: 25 additions & 25 deletions gpu-vendor-model-matrix.table.html

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions gpu-vendor-model-matrix.table.tex
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
\begin{description}[Fortran]
\ifdefined\tightlist\tightlist\fi%
\item[\fullok] Full vendor support
\item[\prettyok] Vendor support, but not (yet) entirely comprehensive
\item[\indirectok] Indirect, but comprehensive support, by vendor
\item[\prettyok] Vendor support, but not (yet) entirely comprehensive
\item[\nonvendorok] Comprehensive support, but not by vendor
\item[\somesupport] Limited, probably indirect support -- but at least some
\item[\nope] No direct support available, but of course one could ISO-C-bind your way through it or directly link the libraries
Expand Down Expand Up @@ -64,7 +64,7 @@
\item \ref{nvidiastandardfortran}: Standard Language parallel features supported on NVIDIA GPUs through NVIDIA HPC SDK
\item \ref{nvidiakokkosc}: \href{https://github.com/kokkos/kokkos}{Kokkos} supports NVIDIA GPUs by calling CUDA as part of the compilation process
\item \ref{nvidiakokkosfortran}: Kokkos is a C++ model, but an official compatibility layer (\href{https://github.com/kokkos/kokkos-fortran-interop}{\emph{Fortran Language Compatibility Layer}, FLCL}) is available.
\item \ref{nvidiaalpakac}: \href{https://github.com/alpaka-group/alpaka}{Alpaka} supports NVIDIA GPUs by calling CUDA as part of the compilation process
\item \ref{nvidiaalpakac}: \href{https://github.com/alpaka-group/alpaka}{Alpaka} supports NVIDIA GPUs by calling CUDA as part of the compilation process; also, an OpenMP backend can be used
\item \ref{nvidiaalpakafortran}: Alpaka is a C++ model
\item \ref{nvidiapython}: There is a vast community of offloading Python code to NVIDIA GPUs, like \href{https://cupy.dev/}{CuPy}, \href{https://numba.pydata.org/}{Numba}, \href{https://developer.nvidia.com/cunumeric}{cuNumeric}, and many others; NVIDIA actively supports a lot of them, but has no direct product like \emph{CUDA for Python}; so, the status is somewhere in between
\item \ref{amdcudac}: \href{https://github.com/ROCm-Developer-Tools/HIPIFY}{hipify} by AMD can translate CUDA calls to HIP calls which runs natively on AMD GPUs
Expand All @@ -76,7 +76,7 @@
\item \ref{amdopenmp}: AMD offers a dedicated, Clang-based compiler for using OpenMP on AMD GPUs: \href{https://github.com/ROCm-Developer-Tools/aomp}{AOMP}; it supports both C/C++ (Clang) and Fortran (Flang, \href{https://github.com/ROCm-Developer-Tools/aomp/tree/aomp-dev/examples/fortran/simple_offload}{example})
\item \ref{amdstandard}: Currently, no (known) way to launch Standard-based parallel algorithms on AMD GPUs
\item \ref{amdkokkosc}: Kokkos supports AMD GPUs through HIP
\item \ref{amdalpakac}: Alpaka supports AMD GPUs through HIP
\item \ref{amdalpakac}: Alpaka supports AMD GPUs through HIP or through an OpenMP backend
\item \ref{amdpython}: AMD does not officially support GPU programming with Python (also not semi-officially like NVIDIA), but third-party support is available, for example through \href{https://numba.pydata.org/numba-doc/latest/roc/index.html}{Numba} (currently inactive) or a \href{https://docs.cupy.dev/en/latest/install.html?highlight=rocm\#building-cupy-for-rocm-from-source}{HIP version of CuPy}
\item \ref{intelcudac}: \href{https://github.com/oneapi-src/SYCLomatic}{SYCLomatic} translates CUDA code to SYCL code, allowing it to run on Intel GPUs; also, Intel\textquotesingle s \href{https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compatibility-tool.html}{DPC++ Compatibility Tool} can transform CUDA to SYCL
\item \ref{intelcudafortran}: No direct support, only via ISO C bindings, but at least an example can be \href{https://github.com/codeplaysoftware/SYCL-For-CUDA-Examples/tree/master/examples/fortran_interface}{found on GitHub}; it\textquotesingle s pretty scarce and not by Intel itself, though
Expand All @@ -88,7 +88,7 @@
\item \ref{prettyok}: Intel supports pSTL algorithms through their \href{https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-library.html\#gs.fifrh5}{DPC++ Library} (oneDPL; \href{https://github.com/oneapi-src/oneDPL}{GitHub}). It\textquotesingle s heavily namespaced and not yet on the same level as NVIDIA
\item \ref{intelstandardfortran}: With \href{https://www.intel.com/content/www/us/en/developer/articles/release-notes/fortran-compiler-release-notes.html}{Intel oneAPI 2022.3}, Intel supports DO CONCURRENT with GPU offloading
\item \ref{intelkokkosc}: Kokkos supports Intel GPUs through SYCL
\item \ref{intelalpakac}: \href{https://github.com/alpaka-group/alpaka/releases/tag/0.9.0}{Alpaka v0.9.0} introduces experimental SYCL support
\item \ref{intelalpakac}: \href{https://github.com/alpaka-group/alpaka/releases/tag/0.9.0}{Alpaka v0.9.0} introduces experimental SYCL support; also, Alpaka can use OpenMP backends
\item \ref{intelpython}: Not a lot of support available at the moment, but notably \href{https://intelpython.github.io/dpnp/}{DPNP}, a SYCL-based drop-in replacement for Numpy, and \href{https://github.com/IntelPython/numba-dpex}{numba-dpex}, an extension of Numba for DPC++.
\end{itemize}
\end{frame}
6 changes: 3 additions & 3 deletions gpu-vendor-model-matrix.tex
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,9 @@

\colorlet{ok}{fzjgreen}
\colorlet{prime}{fzjgreen!70!black}
\colorlet{prettyok}{fzjgreen!60!fzjorange}
\colorlet{nonvendorok}{fzjorange!90!black}
\colorlet{indirectok}{fzjorange!90!white}
\colorlet{indirectok}{fzjgreen!60!fzjorange}
\colorlet{nonvendorok}{fzjgreen!80!white}
\colorlet{prettyok}{fzjorange!90!white}
\colorlet{somesupport}{fzjorange!50!fzjred}
\colorlet{nope}{fzjred}
\newcommand{\C}{C++}
Expand Down

0 comments on commit 01942de

Please sign in to comment.