-
Notifications
You must be signed in to change notification settings - Fork 122
Release Briefing 5.1.0 #148
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
seyonglee
wants to merge
15
commits into
kokkos:main
Choose a base branch
from
seyonglee:release_briefing_5_1
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
15 commits
Select commit
Hold shift + click to select a range
ec0296a
Add empty slides for 5.1 release briefing.
seyonglee a1c7ec7
Remove KUG Europ from Organizational slide
seyonglee 73c1d03
Update Organizational section.
seyonglee c82b9fd
wip General Enhancements
Adrien-Tab 2f1e1ff
add SVE and NEON detection slide
JBludau 81c9adb
add slides I was tasked with
JBludau e286d44
Updated GeneralEnhancements section on array, simd
ldh4 a1a5709
Update KUG/HPSF slide
seyonglee d230795
Delete empty sections
seyonglee 32e20cc
Add new feature slide (Kokkos type traits as C++20 concepts)
seyonglee 0dea303
Add the rest of the bug fixes slides
tretre91 4b4dec5
added BackendUpdates except MI300A synchronization issue
JBludau 8bc24f8
Filled Breaking Changes Section
bca59bd
Add explanation on ScatterView in Breaking Changes section
seyonglee 8e65da2
Update backend section
seyonglee File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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} | ||
|
|
||
| % \begin{frame}[fragile]{Example table} | ||
| % \begin{center} | ||
| % \begin{tabular}{l|l} | ||
| % a & b \\\hline | ||
| % c & d | ||
| % \end{tabular} | ||
| % \end{center} | ||
| % \end{frame} | ||
|
|
||
| %========================================================================== | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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
20
Content/ReleaseBriefings/5_1/Section_BuildSystemUpdates.tex
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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} |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oversight?