diff --git a/Content/ReleaseBriefings/5_1/Conference.png b/Content/ReleaseBriefings/5_1/Conference.png new file mode 100644 index 00000000..f626b858 Binary files /dev/null and b/Content/ReleaseBriefings/5_1/Conference.png differ diff --git a/Content/ReleaseBriefings/5_1/MLs.png b/Content/ReleaseBriefings/5_1/MLs.png new file mode 100644 index 00000000..421c7c5b Binary files /dev/null and b/Content/ReleaseBriefings/5_1/MLs.png differ diff --git a/Content/ReleaseBriefings/5_1/Section_BackendUpdates.tex b/Content/ReleaseBriefings/5_1/Section_BackendUpdates.tex new file mode 100644 index 00000000..e3ea16c2 --- /dev/null +++ b/Content/ReleaseBriefings/5_1/Section_BackendUpdates.tex @@ -0,0 +1,57 @@ +%========================================================================== + +\begin{frame}[fragile] + + {\Huge Backend Updates} + + \vspace{10pt} + +\end{frame} + +%========================================================================== + +\begin{frame}[fragile] + + {\Huge CUDA} + + \vspace{10pt} + +\end{frame} + +\begin{frame}[fragile]{Features and Fixes for \texttt{CUDA}} + + \begin{itemize} + \item Added support for \texttt{Kokkos\_ARCH\_BLACKWELL103} for B300 GPUs (requires \texttt{CUDA} $\geq 12.8$). + \item Fixed building with \texttt{clang} when enabling both \texttt{CUDA} and \texttt{OpenMP}. + \item Added support for the flags \texttt{-Ofc} and \texttt{--fdevice-time-trace} to \texttt{nvcc\_wrapper} (Useful for getting insights into compile time). + \end{itemize} + +\end{frame} + +%========================================================================== + +\begin{frame}[fragile] + + {\Huge HIP} + + \vspace{10pt} + +\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{Features and Fixes for \texttt{HIP}} + + \begin{itemize} + \item Added support for \texttt{Kokkos\_ARCH\_AMD\_GFX950} for MI350 and MI355 (requires \texttt{ROCm} $\geq 7.0$ recommended $\geq 7.1$) + \item Added support for \texttt{bhalf\_t} (in \texttt{Kokkos::Experimental}). + \item Added math functions for \texttt{half\_t} and \texttt{bhalf\_t} instead of casting to \texttt{float}. + \item Fixed race conditions in HIP \texttt{parallel\_scan} when running on MI300A + \begin{itemize} + \item Added an extra synchronization at the end of \texttt{parallel\_scan} implementation. + \item Seems to be a compiler bug on MI300A. + \item Extra overhead is negligible. + \end{itemize} + \end{itemize} + +\end{frame} diff --git a/Content/ReleaseBriefings/5_1/Section_BreakingChanges.tex b/Content/ReleaseBriefings/5_1/Section_BreakingChanges.tex new file mode 100644 index 00000000..07b19387 --- /dev/null +++ b/Content/ReleaseBriefings/5_1/Section_BreakingChanges.tex @@ -0,0 +1,57 @@ +%========================================================================== + +\begin{frame}[fragile] + + {\Huge Breaking Changes} + + \vspace{10pt} + +\end{frame} + +%========================================================================== + +% Examples + +% note: always keep the [fragile] for your frames! + +\begin{frame}[fragile]{Breaking Changes} + \begin{itemize} + \item Kokkos now detects and reports an error if an execution space is outside its valid lifetime scope, i.e., before \texttt{initialize()} or after \texttt{finalize()}. + \begin{itemize} + \item An example has been added to show users how to migrate from static execution spaces to comply with the new lifetime scope enforcement. + \end{itemize} + \item \texttt{Kokkos::TeamPolicy} now validates the \texttt{vector\_length} argument at construction time and aborts with a descriptive error if it is out of range, making misconfiguration bugs easier to catch. + \begin{itemize} + \item \texttt{Kokkos::TeamPolicy} now requires \texttt{vector\_length} to be a power of two. + \end{itemize} + \item \texttt{ScatterView} is no longer move constructible or move assignable. + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{Breaking Changes on OpenMP and OpenMPTarget} + \begin{itemize} + \item Kokkos now warns when an OpenMP execution space instance is created inside an active OpenMP parallel region. + \item The OpenMPTarget backend has been removed from Kokkos. + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{Example code} + \begin{code}[keywords={std}] + #include + + int main() { + std::cout << "hello world\n"; + } + \end{code} +\end{frame} + +% \begin{frame}[fragile]{Example table} +% \begin{center} +% \begin{tabular}{l|l} +% a & b \\\hline +% c & d +% \end{tabular} +% \end{center} +% \end{frame} + +%========================================================================== diff --git a/Content/ReleaseBriefings/5_1/Section_BugFixes.tex b/Content/ReleaseBriefings/5_1/Section_BugFixes.tex new file mode 100644 index 00000000..9f0d5e55 --- /dev/null +++ b/Content/ReleaseBriefings/5_1/Section_BugFixes.tex @@ -0,0 +1,84 @@ +%========================================================================== + +\begin{frame}[fragile] + + {\Huge Bug Fixes} + + \vspace{10pt} + +\end{frame} + +%========================================================================== + +% Examples + +% note: always keep the [fragile] for your frames! + +%\begin{frame}[fragile]{Example list} +% \begin{itemize} +% \item Item 1 +% \item Item 2 with some \texttt{code} +% \begin{itemize} +% \item Sub-item 2.1 +% \item Sub-item 2.2 +% \end{itemize} +% \end{itemize} +%\end{frame} + +%\begin{frame}[fragile]{Example code} +% \begin{code}[keywords={std}] +% #include +% +% int main() { +% std::cout << "hello world\n"; +% } +% \end{code} +%\end{frame} + +%\begin{frame}[fragile]{Example table} +% \begin{center} +% \begin{tabular}{l|l} +% a & b \\\hline +% c & d +% \end{tabular} +% \end{center} +%\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{General} + \begin{itemize} + \item Fix \texttt{reduction\_identity} with the \texttt{BAnd} reducer + \item Update \texttt{team\_fan\_\{in|out\}} member functions of \texttt{ThreadsExecTeamMember} not to call host-only functions on the device + \item Ensure that execution space instances fence when they are destructed + \item Correctly identify GCC and LLVM Clang on macOS + \end{itemize} +\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{Restrict host atomics to sizes that are \texttt{lock-free}} + The atomics for integers were not restricted on the sizes for which they are \texttt{lock-free} (except with \texttt{MSVC}). + \begin{itemize} + \item If you used 128bit atomics on integers the linker needed to link \texttt{latomic}. + \item \textbf{Problem}: Linking \texttt{latomic} by anyone outside of Kokkos' own build system results in \textbf{unsafe} atomic operations. + \item Kokkos' atomics on integers with 128 bit or more use our internal lock-tables. Linking \texttt{libatomic} is \textbf{neither} necessary \textbf{nor} recommended. + \end{itemize} +\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{Conformance with the C++ standard} + \begin{itemize} + \item Add missing constexpr specifiers on \texttt{conj()}, and for the \texttt{real()} and \texttt{imag()} non-member functions taking complex numbers + \item Make overloads of \texttt{isnormal} compliant with std + \end{itemize} +\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{SIMD} + \begin{itemize} + \item Use intrinsics when calling \texttt{min} and \texttt{max} on simd vectors of integral types + \end{itemize} +\end{frame} diff --git a/Content/ReleaseBriefings/5_1/Section_BuildSystemUpdates.tex b/Content/ReleaseBriefings/5_1/Section_BuildSystemUpdates.tex new file mode 100644 index 00000000..58fd44d2 --- /dev/null +++ b/Content/ReleaseBriefings/5_1/Section_BuildSystemUpdates.tex @@ -0,0 +1,20 @@ +%========================================================================== + +\begin{frame}[fragile] + + {\Huge Build System Updates} + + \vspace{10pt} + +\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{Integtation of \texttt{ROCm} and \texttt{HIP} in \texttt{CMake}} + Kokkos now uses \texttt{find\_package(HIP)} to find \texttt{ROCm}. The search includes the path in the environment variable \texttt{ROCM\_PATH}. + \begin{itemize} + \item Allows us to get the \texttt{ROCm} version independently of the compiler version. + \item \textbf{Problem}: \texttt{find\_package(HIP)} runs autodetection of GPU architectures if \texttt{GPU\_TARGETS} is not defined as \texttt{CMake} variable. + \item We warn if the architecture in \texttt{GPU\_TARGETS} does not match the device architecture enabled in Kokkos. This can happen e.g. when cross-compiling. + \end{itemize} +\end{frame} diff --git a/Content/ReleaseBriefings/5_1/Section_GeneralEnhancements.tex b/Content/ReleaseBriefings/5_1/Section_GeneralEnhancements.tex new file mode 100644 index 00000000..28ab1d7e --- /dev/null +++ b/Content/ReleaseBriefings/5_1/Section_GeneralEnhancements.tex @@ -0,0 +1,203 @@ +%========================================================================== + +\begin{frame}[fragile] + + {\Huge General Enhancements} + + \vspace{10pt} + +\end{frame} + +\begin{frame}[fragile]{General Enhancements I} + \begin{itemize} + \item Enable ScatterView contribute into a View that is a rvalue + \item Use \texttt{Array::size\_type} for subscript operators + \item Use StaticBatchSize in ViewFill + \item Improve performance of \texttt{deep\_copy} from scalar in view fill using \texttt{StaticBatchSize} + \end{itemize} +\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{General Enhancements II} + \begin{itemize} + \item Enforce failure when exceeding \texttt{team\_size\_max} and \texttt{scratch\_size\_max} checks + \item Enable MPI detection with PALS + \item Add \texttt{Kokkos::norm} for \texttt{Kokkos::complex} similar to \texttt{std::norm} + \end{itemize} +\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{Array Update} + + Relaxed constraints on \texttt{Kokkos::Array} subscript operator + + \vspace{1em} + + \begin{itemize} + \item Previously, the indexer type was constrained so that the following holds: + \begin{code} + std::is_integral_v || std::is_enum_v + \end{code} + \item Now, only requires to be implictly convertible to \texttt{Kokkos::Array::size\_type} + \end{itemize} + + \vspace{1.5em} + + This relaxation allows custom type indexers\\ + This is closer to the indexer constraints in \texttt{Kokkos::View} + +\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{MDRangePolicy overhaul} + Improved performance for \texttt{MDRangePolicy} for all rank (2 to 6) for \texttt{CUDA}, \texttt{HIP} and \texttt{SYCL} + \begin{itemize} + \item Rewrite internal logic for computing functor indices + \item Fix performance discrepancies between iterate Left and Right + \end{itemize} + + \vspace{5pt} + Note: Doesn't concern nested multidimensional policy like \texttt{TeamThreadMDRange} or \texttt{TeamVectorMDRange} +\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{MDRangePolicy overhaul} + Change the default tile size for \texttt{CUDA}, \texttt{HIP}, and \texttt{SYCL} backends. + Use more threads for the dimension that accesses memory in a coalesced way. + \vspace{10pt} + \begin{itemize} + \item Lower register usage for the same kernel + \item Better memory throughput for memory-intensive kernels. + \item Better GPU occupancy for simple kernels. + \end{itemize} +\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{MDRangePolicy overhaul} + \begin{figure}[ht] + \centering + \begin{tikzpicture} + \begin{axis}[ + width=0.8\textwidth, + height=0.35\textwidth, + grid=major, + ymin=0, + ybar, + ybar=5pt, + bar width=12pt, + enlargelimits=0.15, + legend style={at={(0.5, 1.3)}, + anchor=north,legend columns=-1,font=\small}, + ylabel={Speedup}, + symbolic x coords={2D, 3D, 4D, 5D, 6D}, + xtick=data, + x tick label style={at={(0.0, -0.5)},font=\small}, + ] + \addplot[color=red!60, fill=red!40] coordinates {(2D, 1.23) (3D, 1.38) (4D, 1.56) (5D, 1.36) (6D, 2.16)}; + \addplot[color=green!60, fill=green!40] coordinates {(2D, 1.32) (3D, 1.00) (4D, 1.08) (5D, 1.42) (6D, 2.13)}; + \legend{AMD MI250X, Nvidia A100} + \end{axis} + \end{tikzpicture} + \end{figure} + \begin{itemize} + \item Stream Add kernel ($C = A + B$) for different dimensions. + \end{itemize} +\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{MDRangePolicy overhaul} + \begin{figure}[ht] + \centering + \begin{tikzpicture} + \begin{axis}[ + width=0.8\textwidth, + height=0.35\textwidth, + grid=major, + ymin=0, + ybar, + ybar=10pt, + bar width=15pt, + enlargelimits=0.15, + legend style={at={(0.5, 1.3)}, + anchor=north,legend columns=-1,font=\small}, + ylabel={Speedup}, + symbolic x coords={2D Left, 2D Right, 3D Left, 3D Right}, + xtick=data, + x tick label style={at={(0.0, -0.5)},font=\small}, + ] + \addplot[color=red!60, fill=red!40] coordinates {(2D Left, 1.44) (2D Right, 3.17) (3D Left, 1.00) (3D Right, 2.32)}; + \addplot[color=green!60, fill=green!40] coordinates {(2D Left, 1.94) (2D Right, 1.94) (3D Left, 1.01) (3D Right, 2.71)}; + \legend{AMD MI250X, Nvidia A100} + \end{axis} + \end{tikzpicture} + \end{figure} + \begin{itemize} + \item Stencil kernel with 7 points and 9 points in 2D and 3D respectively. + \end{itemize} +\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{Expand math support} + Increase \texttt{\textbf{half}} and \texttt{\textbf{bhalf}} support + \begin{itemize} + \item Add \texttt{denorm\_min} traits + \item Add non standard \texttt{rcp}, \texttt{rcpf} and \texttt{rcpl} functions. + \item Extend \texttt{rsqrt} to half types + \end{itemize} + +\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{Expand math support} + Implement all remaining math functions + \begin{itemize} + \item Add \texttt{modf}, \texttt{modff} and \texttt{modfl} functions + \item Add mathematical functions \texttt{frexp} \texttt{ldexp}, \texttt{scalbn}, \texttt{scalbln} + \item Provide more quadruple precision floating-point manipulation functions. + \item Add \texttt{isnormal} function for all floating-point types. + \item Add binary predicate math comparison functions. + \item Add fpclassify function. + \item Round to integer math functions \texttt{rint} and \texttt{round}. + \item Add std \texttt{nexttoward} wrapper. + \end{itemize} + +\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{SIMD Enhancements} + \begin{itemize} + \item Added bitwise operators to all simd masks and simd vectors of integral types + \begin{itemize} + \item Bitwise ops: \texttt{\textasciitilde{}, \&{}, |, \^{} , \&=, |=, \^{}=} + \end{itemize} + + \vspace{1em} + + \item Added simd memory permute functions + \begin{itemize} + \item \texttt{[unchecked|partial]\_gather\_from(in, indices, simd\_flag)} + \item \texttt{[unchecked|partial]\_scatter\_to(simd, out, indices, simd\_flag)} + \item Replace memory permute functions in deprecated \texttt{where\_expression} + \end{itemize} + \end{itemize} +\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{SIMD support on ARM} + \texttt{nvcc} $>$ 12.8 allows to use \texttt{NEON} instructions. + \begin{itemize} + \item With \texttt{KOKKOS\_ARCH\_NATIVE=ON} we run checks if the compiler supports \texttt{NEON} and \texttt{SVE}. If the compiler supports them we enable them. + \item For all manually specified ARM architectures we enable them if the architecture supports them by specification. We do \textbf{not} check if the compiler supports them. + \end{itemize} +\end{frame} + diff --git a/Content/ReleaseBriefings/5_1/Section_NewFeatures.tex b/Content/ReleaseBriefings/5_1/Section_NewFeatures.tex new file mode 100644 index 00000000..e7f52f76 --- /dev/null +++ b/Content/ReleaseBriefings/5_1/Section_NewFeatures.tex @@ -0,0 +1,54 @@ +%========================================================================== + +\begin{frame}[fragile] + + {\Huge Feature highlights} + + \vspace{10pt} + +\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{Minimum compiler requirements after requiring C++20} + +\begin{table}[] +\begin{tabular}{lll} +\multicolumn{1}{r}{} & Kokkos 4.x & Kokkos 5.0 \\ \hline +GCC & 8.2.0 & 10.4.0 \\ +Clang (CPU) & 8.0.0 & 14.0.0 \\ +Clang (CUDA) & 10.0.0 & 15.0.0 \\ +IntelLLVM (CPU) & 2021.1.1 & 2022.0.0 \\ +IntelLLVM (SYCL) & 2023.0.0 & 2024.2.1 \\ +NVCC & 11.0 & 12.2.0 \\ +NVC++ & 22.3 & 22.3 \\ +ROCm & 5.2.0 & 6.2.0 \\ +MSVC & 19.29 & 19.30 \\ +\end{tabular} +\end{table} + +\textit{\footnotesize Note: Clang (CUDA) allows for CUDA 11.8 as underlying runtime.} \\ +\textit{\footnotesize Note: MSVC is only actually tested with the latest version.} + +\centering +\url{https://kokkos.org/kokkos-core-wiki/get-started/requirements.html} +\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{Export Kokkos type traits as C++20 concepts} + +Export Kokkos type traits as C++20 concepts to be used internally and in downstream code. +\begin{itemize} +\item Defined in Kokkos\_Concepts.hpp +\end{itemize} +Available Kokkos type traits concepts +\begin{itemize} +\item \texttt{Kokkos::ExecutionSpace} +\item \texttt{Kokkos::MemorySpace} +\item \texttt{Kokkos::ExecutionPolicy} +\item \texttt{Kokkos::TeamHandle} +\item \texttt{Kokkos::Reducer} +\end{itemize} +\end{frame} + diff --git a/Content/ReleaseBriefings/5_1/Section_Organizational.tex b/Content/ReleaseBriefings/5_1/Section_Organizational.tex new file mode 100644 index 00000000..6946746a --- /dev/null +++ b/Content/ReleaseBriefings/5_1/Section_Organizational.tex @@ -0,0 +1,103 @@ + +%========================================================================== + +\begin{frame}[fragile] + + {\Huge Organizational} + + \vspace{15pt} + + \textbf{Content:} + \begin{itemize} + \item Kokkos User Group @ HPSF Conference '26 (US) + \item Mailing Lists + \end{itemize} + +\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{Kokkos User Group 2026 (USA)} + \begin{center} + \textbf{Kokkos User Group @ HPSF Conference, USA} + \end{center} + + \begin{itemize} + \item \textit{When:} March 16th-20th 2026 + \item \textit{Where:} Chicago, IL, USA + \item \textit{What:} 2\sfrac{1}{2}-days HPSF plenary + 2\sfrac{1}{2}-days Project meetings + \item \textit{KUG-Content:} Focused on user experiences + \begin{itemize} + \item How do you leverage Kokkos? + \item What are pain points? + \item Kokkos-based libraries of interest to the community + \end{itemize} + \end{itemize} + + \begin{center} + \textit{HPSF Conference 2026}\\ + \url{https://events.linuxfoundation.org/hpsf-conference/} + \end{center} + + \begin{textblock}{3}(12.5,5) + \includegraphics[width=\textwidth]{5_1/Conference.png} + \end{textblock} +\end{frame} + +%========================================================================== + +\begin{frame}[fragile]{Other news} + +\medskip + +\begin{center} + \textbf{Mailing Lists}\hspace{5em}~\\ + Sign up for the Kokkos mailing list to stay up-to-date\hspace{5em}~\\ + with the latest Kokkos news.\hspace{5em}~\\ + \url{https://kokkos.org/community/mailing-lists/}\hspace{5em}~ +\end{center} +\medskip +\begin{textblock}{2}(12.5,9.75) + \includegraphics[width=\textwidth]{5_1/MLs.png} +\end{textblock} + +\end{frame} + +%========================================================================== + +% Examples + +% note: always keep the [fragile] for your frames! + +%\begin{frame}[fragile]{Example list} +% \begin{itemize} +% \item Item 1 +% \item Item 2 with some \texttt{code} +% \begin{itemize} +% \item Sub-item 2.1 +% \item Sub-item 2.2 +% \end{itemize} +% \end{itemize} +%\end{frame} + +%\begin{frame}[fragile]{Example code} +% \begin{code}[keywords={std}] +% #include +% +% int main() { +% std::cout << "hello world\n"; +% } +% \end{code} +%\end{frame} + +%\begin{frame}[fragile]{Example table} +% \begin{center} +% \begin{tabular}{l|l} +% a & b \\\hline +% c & d +% \end{tabular} +% \end{center} +%\end{frame} + +%========================================================================== + diff --git a/Content/ReleaseBriefings/5_1/Summit.png b/Content/ReleaseBriefings/5_1/Summit.png new file mode 100644 index 00000000..edce909d Binary files /dev/null and b/Content/ReleaseBriefings/5_1/Summit.png differ diff --git a/Content/ReleaseBriefings/Makefile b/Content/ReleaseBriefings/Makefile index 9c001e82..c4a0669a 100644 --- a/Content/ReleaseBriefings/Makefile +++ b/Content/ReleaseBriefings/Makefile @@ -1,5 +1,5 @@ -default: release-50 +default: release-51 workaround-on: sed -i.bak 's|%\\input|\\input|g' KokkosTutorial_PreTitle.tex @@ -43,5 +43,8 @@ release-47: release-50: latexmk release-50 +release-51: + latexmk release-51 + clean: latexmk -c diff --git a/Content/ReleaseBriefings/release-51.tex b/Content/ReleaseBriefings/release-51.tex new file mode 100644 index 00000000..4ae5988a --- /dev/null +++ b/Content/ReleaseBriefings/release-51.tex @@ -0,0 +1,120 @@ +\input{KokkosTutorial_PreTitle} +\usepackage{tikz} +\graphicspath{{5_1/figures/}} +\usepackage{multicol} +\usepackage{pgfplots} +\usepackage{xfrac} + +%disclaimer for Sandia. uncomment and the whole blob goes away @ b80c116300122 +% \def\sandid{SANDXXXX PE} +\def\ornlid{THIS WILL NEED TO BE UPDATED AFTER RESOLUTION} + +% \title{Performance Portability with Kokkos} +\title{Kokkos 5.1 Release Briefing} + +%BAD misuse of author field +% \author{New Capabilities} + +\date{4/14/2026} + +\input{KokkosTutorial_PostTitle} + +\begin{document} + +\begin{frame} + \titlepage +\end{frame} + + +\begin{frame}[fragile]{Outline} + + \textbf{5.1 Release Highlights} + + \begin{itemize} + \item{Organizational} + \item{Feature Highlights} + \item{General Enhancements} + \item{Backend updates} + \item{Build system updates} + \item{Deprecations and other breaking changes} + \item{Bug Fixes} + \end{itemize} + +\end{frame} + +\begin{frame}{Find More} + + \textbf{Online Resources}: + + \begin{itemize} + \item \url{https://github.com/kokkos}: + \begin{itemize} + \item Primary Kokkos GitHub Organization + \end{itemize} + \item \url{https://kokkos.org/kokkos-core-wiki/tutorials-and-examples.html}: + \begin{itemize} + \item{Tutorials, video lectures, and examples} + \end{itemize} + \item \url{https://kokkos.org/kokkos-core-wiki}: + \begin{itemize} + \item Wiki including API reference + \end{itemize} + \item \url{https://kokkosteam.slack.com}: + \begin{itemize} + \item Slack workspace for Kokkos. + \item Please join: fastest way to get your questions answered. + \item Can whitelist domains, or invite individual people. + \end{itemize} + \end{itemize} + +\end{frame} + +\begin{frame}[fragile]{Kokkos Usage} + \textbf{Would like to strengthen community bonds and discoverability} + + \vspace{10pt} + \textit{List of Applications and Libraries} + \begin{itemize} + \item Add your app to \url{https://github.com/kokkos/kokkos/issues/1950} + \item We are planning to add that to the Kokkos website. + \item Helps people discover each other when working on similar things. + \end{itemize} + + \vspace{10pt} + \textit{GitHub Topics} + \begin{itemize} + \item Use \textit{kokkos} tag on your repos. + \item If you click on the topic you get a list of all projects on github with that topic. + \end{itemize} +\end{frame} + +\input{5_1/Section_Organizational.tex} +\input{5_1/Section_NewFeatures.tex} +\input{5_1/Section_GeneralEnhancements.tex} +\input{5_1/Section_BackendUpdates.tex} +\input{5_1/Section_BuildSystemUpdates.tex} +\input{5_1/Section_BreakingChanges.tex} +\input{5_1/Section_BugFixes.tex} + +%========================================================================== + +\begin{frame}[fragile] + + \vspace{10pt} + + \textbf{How to Get Your Fixes and Features into Kokkos} + \newline + \begin{itemize} + \item Fork the Kokkos repo (\url{https://github.com/kokkos/kokkos}) + \item Make topic branch from \textit{develop} for your code + \item Add tests for your code + \item Create a pull request (PR) on the main project \textit{develop} + \item Update the documentation (\url{https://github.com/kokkos/kokkos-core-wiki}) if your code changes the API + \item Get in touch if you have any question (\url{https://kokkosteam.slack.com}) + \end{itemize} + +\end{frame} + +%========================================================================== + +\end{document}