Skip to content

Commit 418a230

Browse files
committed
Sectioning in line with updated tutorial. Removed ABI -- from the slides ABI refers to the library interface (by which the .so or .a is called), but this is not what ABI means; the ABI instead is the convention by which this interfacing occurs; i.e., the definition of how arguments are put in the stack etc.
1 parent 903303e commit 418a230

File tree

1 file changed

+30
-20
lines changed

1 file changed

+30
-20
lines changed

beamer-tutorial.tex

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1135,7 +1135,7 @@ \subsection{7) Ising Machine, new solvers}
11351135
% =========================
11361136
\section{Tuesday 11 Nov, Morning}
11371137
1138-
\subsection{8) Hands-on: complete exercise 8 (3.4)}
1138+
\subsection{4) Hands-on: numerical linear algebra (3.4, ex 8)}
11391139
11401140
\begin{frame}{Complete Exercise 8}
11411141
\begin{itemize}
@@ -1145,8 +1145,10 @@ \subsection{8) Hands-on: complete exercise 8 (3.4)}
11451145
% Owner: DJ
11461146
\end{frame}
11471147
1148-
\subsection{9) Semirings, monoids, operators (add exercise: shortest path)}
1149-
\begin{frame}[fragile]{Semirings, monoids, operators}
1148+
\subsection{8) Algebraic structures}
1149+
1150+
\begin{frame}[fragile]{Intro to algebraic structures}
1151+
We learned:
11501152
\begin{itemize}
11511153
\item Defining and using semirings
11521154
\item Built-ins: plusTimes, minPlus, boolean
@@ -1164,12 +1166,22 @@ \subsection{9) Semirings, monoids, operators (add exercise: shortest path)}
11641166
% \end{lstlisting}
11651167
\end{frame}
11661168
1167-
\subsection{10) Solvers, transition path, Python API, ABI}
1169+
\subsection{9) Hands-on: norms and shortest paths through semirings (3.5)}
1170+
1171+
\begin{frame}{Hands-on}
1172+
Refer to the tutorial: section 3.5, exercises 9 \& 10
1173+
\begin{itemize}
1174+
\item stretch goal: exercise 11
1175+
\end{itemize}
1176+
\end{frame}
1177+
1178+
\subsection{10) Solvers, transition path, Python API}
1179+
11681180
\begin{frame}{Solvers and transition path}
11691181
\begin{itemize}
11701182
\item Sparse CG solver API
1171-
\item Preconditioners
1172-
\item ABI and Python API notes
1183+
\item Preconditioned CG
1184+
\item Python API notes
11731185
\end{itemize}
11741186
% Owner: DJ
11751187
% Source (ALP_Transition_Path_Tutorial.tex - API):
@@ -1193,9 +1205,9 @@ \subsection{10) Solvers, transition path, Python API, ABI}
11931205
\begin{frame}{Transition path: Black-box algorithms exposure}
11941206
\framesubtitle{What is (and is not) optimised}
11951207
\begin{itemize}
1196-
\item \textbf{Exposed set:} Iterative solvers (CG, BiCGSTAB, GMRES, k-means, PageRank, connected components, etc.) via stable headers / ABI.
1208+
\item \textbf{Exposed set:} Iterative solvers (CG, BiCGSTAB, GMRES, k-means, PageRank, connected components, etc.) via stable headers.
11971209
\item \textbf{Internals:} Inside each solver ALP leverages traits (associativity, identities, sparsity, mask semantics) for backend-specific scheduling and fusion.
1198-
\item \textbf{Boundary limit:} Data marshaling between your legacy structures and ALP containers is minimal but still a barrier; external loops remain opaque so global multi-primitive fusion cannot cross the ABI boundary.
1210+
\item \textbf{Boundary limit:} Data marshaling between your legacy structures and ALP containers is minimal but still a barrier; external loops remain opaque so global multi-primitive fusion cannot cross the library boundary.
11991211
\item \textbf{Performance model:} You gain highly-tuned inner iterations; you \emph{do not} gain automatic restructuring of surrounding pre/post processing steps.
12001212
\item \textbf{When to move further:} If pre/post steps dominate runtime or you want algebraic transformations (e.g. descriptor-based masking), consider refactoring those steps into ALP primitives.
12011213
\end{itemize}
@@ -1230,7 +1242,7 @@ \subsection{10) Solvers, transition path, Python API, ABI}
12301242
std::vector<double> x(n, 0.0); // initial guess
12311243
std::vector<double> b = load_rhs(n);
12321244
1233-
grb_cg_handle handle = nullptr; // opaque handle type from ABI
1245+
grb_cg_handle handle = nullptr; // opaque handle type
12341246
int rc = sparse_cg_init_dii(&handle, n, A_vals, A_cols, A_offs);
12351247
if(rc) { /* error handling */ }
12361248
@@ -1285,13 +1297,13 @@ \subsection{10) Solvers, transition path, Python API, ABI}
12851297
pcg.solve(x.data(), b.data(), 1e-8, 1000);
12861298
\end{lstlisting}
12871299
\begin{itemize}
1288-
\item \textbf{Opaque ABI vs templates:} ABI layer exposes fixed signatures (e.g. \verb|_dii|); template interface offers richer composition (callbacks, custom operators) when building from source.
1300+
\item \textbf{typed interface vs templates:} API exposes fixed signatures (e.g. \verb|_dii|); template interface offers richer composition (callbacks, custom operators) when building from source.
12891301
\item \textbf{Fallback:} If no preconditioner is set, solver defaults to plain CG.
12901302
\end{itemize}
12911303
\end{frame}
12921304
1293-
%% 11 Hands-on: Section 8; CG example; Python example
1294-
\subsection{11) Hands-on: Section 8; CG example; Python example}
1305+
%% 11 Hands-on: Section 5; CG example; Python example
1306+
\subsection{11) Hands-on: Section 5; CG example; Python example; explicit SIMD}
12951307
\begin{frame}[fragile]{Python: Conjugate Gradient usage}
12961308
\framesubtitle{Calling a solver from a wheel}
12971309
\begin{lstlisting}[language=Python]
@@ -1469,9 +1481,6 @@ \subsection{11) Hands-on: Section 8; CG example; Python example}
14691481
\end{lstlisting}
14701482
\end{frame}
14711483
1472-
1473-
\subsection{12) Stretch goal: explicit SPMD control}
1474-
14751484
\begin{frame}{Advanced ALP: explicit SPMD control}
14761485
ALP can compile code to run programs fully hybrid-parallel:
14771486
\begin{itemize}
@@ -1554,7 +1563,8 @@ \section{Tuesday 11 Nov, Afternoon}
15541563
% =========================
15551564
% HIPO:
15561565
% =========================
1557-
\subsection{HIPO: Introduction and Motivation}
1566+
\subsection{12) HIPO: Introduction and Motivation}
1567+
15581568
\begin{frame}{HIPO: Huawei's Hardware Integrated Platform for Optimisation}
15591569
\framesubtitle{Problem formulation: The Challenge}
15601570
\begin{itemize}
@@ -1624,7 +1634,6 @@ \subsection{HIPO: Introduction and Motivation}
16241634
% Owner: PA
16251635
\end{frame}
16261636
1627-
16281637
\begin{frame}{HIPO Modeling}
16291638
\framesubtitle{Current models and their limitations}
16301639
\textbf{Target: Universal model} $\rightarrow$ Modeling any current/future hw architecture/solver.\\
@@ -1861,7 +1870,7 @@ \subsection{HIPO: Introduction and Motivation}
18611870
\end{itemize}
18621871
\end{frame}
18631872
1864-
\subsection{14) SPMD execution, Replica exchange}
1873+
\subsection{13) SPMD execution, Replica exchange}
18651874
18661875
% \begin{frame}{SPMD execution, Replica exchange}
18671876
% \begin{itemize}
@@ -2126,7 +2135,7 @@ \subsection{14) SPMD execution, Replica exchange}
21262135
% =========================
21272136
\section{Wednesday 12 Nov}
21282137
2129-
\subsection{15) WIP overview: dense backend, tensor, stencil, EM simulations}
2138+
\subsection{14) WIP overview: dense backend, tensor, stencil, EM simulations}
21302139
\begin{frame}{WIP overview}
21312140
\begin{itemize}
21322141
\item Dense backend status
@@ -2135,7 +2144,7 @@ \subsection{15) WIP overview: dense backend, tensor, stencil, EM simulations}
21352144
% Owner: DJ
21362145
\end{frame}
21372146
2138-
\subsection{16) Deep technical? Future work (autodiff)}
2147+
\subsection{15) Deep technical? Future work (autodiff)}
21392148
\begin{frame}{Future work (autodiff)}
21402149
\begin{itemize}
21412150
\item Autodiff integration ideas
@@ -2145,3 +2154,4 @@ \subsection{16) Deep technical? Future work (autodiff)}
21452154
\end{frame}
21462155
21472156
\end{document}
2157+

0 commit comments

Comments
 (0)