Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added Content/ReleaseBriefings/5_1/Conference.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Content/ReleaseBriefings/5_1/MLs.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
57 changes: 57 additions & 0 deletions Content/ReleaseBriefings/5_1/Section_BackendUpdates.tex
Original file line number Diff line number Diff line change
@@ -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}
57 changes: 57 additions & 0 deletions Content/ReleaseBriefings/5_1/Section_BreakingChanges.tex
Original file line number Diff line number Diff line change
@@ -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 <iostream>

int main() {
std::cout << "hello world\n";
}
\end{code}
\end{frame}
Comment on lines +38 to +46
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oversight?


% \begin{frame}[fragile]{Example table}
% \begin{center}
% \begin{tabular}{l|l}
% a & b \\\hline
% c & d
% \end{tabular}
% \end{center}
% \end{frame}

%==========================================================================
84 changes: 84 additions & 0 deletions Content/ReleaseBriefings/5_1/Section_BugFixes.tex
Original file line number Diff line number Diff line change
@@ -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 <iostream>
%
% 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}
20 changes: 20 additions & 0 deletions Content/ReleaseBriefings/5_1/Section_BuildSystemUpdates.tex
Original file line number Diff line number Diff line change
@@ -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}
Loading
Loading