projects
/
libreriscv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
whitespace
[libreriscv.git]
/
conferences
/
fosdem2024
/
fosdem2024_ddffirst
/
fosdem2024_ddffirst.tex
diff --git
a/conferences/fosdem2024/fosdem2024_ddffirst/fosdem2024_ddffirst.tex
b/conferences/fosdem2024/fosdem2024_ddffirst/fosdem2024_ddffirst.tex
index 4548aa842deadcb330c690243a90fe522f4111c7..06301e8998b12505898bd0677ce316c5830e362e 100644
(file)
--- a/
conferences/fosdem2024/fosdem2024_ddffirst/fosdem2024_ddffirst.tex
+++ b/
conferences/fosdem2024/fosdem2024_ddffirst/fosdem2024_ddffirst.tex
@@
-84,7
+84,7
@@
heat sink normally not required (simplifies overall design)
\vspace{3pt}
\item Fully-integrated peripherals (not Northbridge/Southbridge)\\
heat sink normally not required (simplifies overall design)
\vspace{3pt}
\item Fully-integrated peripherals (not Northbridge/Southbridge)\\
- USB, HDMI, RGB/TTL, SD/MMC, I2C, UART, SPI, GPIO etc. etc.
+ USB, HDMI, RGB/TTL, SD/MMC, I2C, UART, SPI, GPIO etc. etc.
\vspace{3pt}
\item Built-in GPU (shared memory bus, 3rd party licensed) \vspace{3pt}
\item Built-in VPU (likewise, proprietary)\vspace{3pt}
\vspace{3pt}
\item Built-in GPU (shared memory bus, 3rd party licensed) \vspace{3pt}
\item Built-in VPU (likewise, proprietary)\vspace{3pt}
@@
-161,7
+161,16
@@
for (i = 0; i < VL; i++)
\end{itemize}
\end{frame}
\end{itemize}
\end{frame}
-
+\frame{\frametitle{Power ISA v3.1 vstribr}
+
+ \lstinputlisting[language={}]{vstribr.txt}
+
+ \begin{itemize}
+ \item ironically this hard-coded instruction is
+ identical to general-purpose Simple-V DD-FFirst...
+ \end{itemize}
+
+}Po
\frame{\frametitle{maxloc}
\begin{itemize}
\frame{\frametitle{maxloc}
\begin{itemize}
@@
-174,25
+183,41
@@
for (i = 0; i < VL; i++)
\begin{itemize}
\item Positional popcount adds up the totals of each bit set to 1 in each bit-position, of an array of input values.
\item Notoriously difficult to do in SIMD assembler: typically 550 lines
\begin{itemize}
\item Positional popcount adds up the totals of each bit set to 1 in each bit-position, of an array of input values.
\item Notoriously difficult to do in SIMD assembler: typically 550 lines
+ \item https://github.com/clausecker/pospop
+
\end{itemize}
\lstinputlisting[language={}]{pospopcount.c}
\end{itemize}
\lstinputlisting[language={}]{pospopcount.c}
+
}
}
-\frame{\frametitle{
Simple SBC-style SoC
}
+\frame{\frametitle{
Pospopcount
}
\begin{center}
\begin{center}
- \includegraphics[width=0.
6
\textwidth]{pospopcount.png}
+ \includegraphics[width=0.
5
\textwidth]{pospopcount.png}
\end{center}
\end{center}
-
+ \begin{itemize}
+ \item The challenge is to perform an appropriate transpose of the data (the CPU can only work on registers, horizontally),
+ in blocks that suit the processor and the ISA capacity.
+
+
+ \end{itemize}
}
}
-\frame{\frametitle{
Simple SBC-style SoC
}
+\frame{\frametitle{
Pospopcount
}
\begin{center}
\includegraphics[width=0.6\textwidth]{array_popcnt.png}
\end{center}
\begin{center}
\includegraphics[width=0.6\textwidth]{array_popcnt.png}
\end{center}
+
+ \begin{itemize}
+
+ \item The draft gbbd instruction implements the transpose (shown above),
+ preparing the data to use standard popcount.
+ (gbbd is based on Power ISA vgbbd, v3.1 p445)
+
+ \end{itemize}
}
}
@@
-206,11
+231,14
@@
for (i = 0; i < VL; i++)
\frame{\frametitle{strncpy}
\frame{\frametitle{strncpy}
+ \lstinputlisting[language={}]{strncpy.c}
\begin{itemize}
\item "TODO
\end{itemize}
}
\begin{itemize}
\item "TODO
\end{itemize}
}
+
+
\frame{\frametitle{strncpy assembler}
\lstinputlisting[language={}]{strncpy.s}
\frame{\frametitle{strncpy assembler}
\lstinputlisting[language={}]{strncpy.s}
@@
-237,7
+265,7
@@
for (i = 0; i < VL; i++)
development costs for customers
\item It also happens to be fascinating, deeply rewarding technically
challenging, and funded by NLnet
development costs for customers
\item It also happens to be fascinating, deeply rewarding technically
challenging, and funded by NLnet
-
+
\end{itemize}
}
\end{itemize}
}
@@
-249,7
+277,7
@@
for (i = 0; i < VL; i++)
Questions?\vspace{12pt}
}
\end{center}
Questions?\vspace{12pt}
}
\end{center}
-
+
\begin{itemize}
\item Discussion: http://lists.libre-soc.org
\item Freenode IRC \#libre-soc
\begin{itemize}
\item Discussion: http://lists.libre-soc.org
\item Freenode IRC \#libre-soc