From 15af9592322e99219b037e56a2f9dc3590f63871 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Constantin=20F=C3=BCrst?= Date: Sun, 21 Jan 2024 18:14:03 +0100 Subject: [PATCH] rewrite the setup section of chapter 2 to contain less but larger (word count) steps --- thesis/bachelor.pdf | Bin 1276741 -> 1276883 bytes thesis/content/20_state.tex | 15 +++++---------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/thesis/bachelor.pdf b/thesis/bachelor.pdf index 00f6bc9084dcdc1597477c78d4ab83624d2cd807..d2e8d95675202e0bd46ab30aab1774f1711461fb 100644 GIT binary patch delta 19617 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 delta 19457 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 diff --git a/thesis/content/20_state.tex b/thesis/content/20_state.tex index cfc09d8..f3e9fe3 100644 --- a/thesis/content/20_state.tex +++ b/thesis/content/20_state.tex @@ -111,17 +111,12 @@ After submission, we poll for the task completion with \texttt{handler.get()} in In this section we will give a brief step-by-step list of setup instructions to replicate the configuration being used for benchmarks and testing purposes in the following chapters. We found Intel's guide on \gls{dsa} usage useful but consulted articles for setup on Lenovo ThinkSystem Servers for crucial information not present in the former. Instructions for configuring the HBM access mode, as mentioned in Section \ref{sec:state:hbm}, may vary from system to system and can require extra steps not found in the list below. \par \begin{enumerate} - \item Set \enquote{Memory Hierarchy} to Flat in BIOS \\ \cite[Sec. Configuring HBM, Configuring Flat Mode]{lenovo:hbm} - \item Set \enquote{VT-d} to Enabled in BIOS \cite[Sec. 2.1]{intel:dsaguide} - \item If available, set the option \enquote{Limit CPU PA to 46 bits} to Disabled in BIOS \\ \cite[p. 5]{lenovo:dsa} - \item Use a kernel with IDXD driver support, available from Linux 5.10 or later \\ \cite[Sec. Installation]{intel:dmldoc} - \item Append the following to the kernel boot parameters in grub config: \\ \texttt{intel\_iommu=on,sm\_on} \cite[p. 5]{lenovo:dsa} + \item Set \enquote{Memory Hierarchy} to Flat \cite[Sec. Configuring HBM, Configuring Flat Mode]{lenovo:hbm}, \enquote{VT-d} to Enabled in BIOS \cite[Sec. 2.1]{intel:dsaguide} and, if available, \enquote{Limit CPU PA to 46 bits} to Disabled in BIOS \cite[p. 5]{lenovo:dsa} + \item Use a kernel with IDXD driver support, available from Linux 5.10 or later \cite[Sec. Installation]{intel:dmldoc} and append the following to the kernel boot parameters in grub config: \texttt{intel\_iommu=on,sm\_on} \cite[p. 5]{lenovo:dsa} \item Evaluate correct detection of \gls{dsa} devices using \texttt{dmesg | grep idxd} which should list as many devices as NUMA nodes on the system \cite[p. 5]{lenovo:dsa} - \item Install \texttt{accel-config} from repository \cite{intel:libaccel-config-repo} or other package manager - \item Inspect the not yet configured \gls{dsa} devices using \texttt{accel-config list -i} \\ \cite[p. 6]{lenovo:dsa} - \item Create \gls{dsa} configuration file which may be based upon the one used for most benchmarks available under \texttt{benchmarks/configuration-files/8n1d1e1w.conf} in the accompanying repository \cite{thesis-repo} - \item Apply the configuration file from the previous step using \texttt{accel-config load-config -c [filename] -e} \cite[Fig. 3-9]{intel:dsaguide} - \item Inspect the now configured \gls{dsa} devices using \texttt{accel-config list} \cite[p. 7]{lenovo:dsa}, output should match the desired configuration set in the file provided to \texttt{accel-config load-config} + \item Install \texttt{accel-config} from repository \cite{intel:libaccel-config-repo} or system package manager and inspect the detection of \gls{dsa} devices through the driver using \texttt{accel-config list -i} \cite[p. 6]{lenovo:dsa} + \item Create \gls{dsa} configuration file for which we provide an example under \texttt{benchmarks/configuration-files/8n1d1e1w.conf} in the accompanying repository \cite{thesis-repo} that is used for most benchmarks available. Then apply the configuration using \texttt{accel-config load-config -c [filename] -e} \cite[Fig. 3-9]{intel:dsaguide} + \item Inspect the now configured \gls{dsa} devices using \texttt{accel-config list} \cite[p. 7]{lenovo:dsa}, output should match the desired configuration set in the file used \end{enumerate} %%% Local Variables: