thesis: slight rewording to remove the page only containing two words. THE CONTENT REMAINS THE SAME.
Some checks failed
CI / Julia 1.10 - ubuntu-latest - x64 - (push) Has been cancelled
CI / Julia 1.6 - ubuntu-latest - x64 - (push) Has been cancelled
CI / Julia pre - ubuntu-latest - x64 - (push) Has been cancelled

This commit is contained in:
2025-07-06 09:23:44 +02:00
parent 408f0ac795
commit 08f5b73aa2
2 changed files with 1 additions and 1 deletions

View File

@ -185,7 +185,7 @@ This reference can then be put on the stack for later use, the same way the inte
\end{algorithmic}
\end{algorithm}
The code generated by the transpiler is the kernel for the transpiled expressions. This means that a new kernel must be generated for each expression that needs to be evaluated. This is in contrast to the interpreter, which has one kernel and dispatches it once for each expression. However, generating one kernel per expression results in a much simpler kernel. This allows the kernel to focus on evaluating the postfix expression from left to right. There is no overhead work such as branching or managing a stack. However, this overhead is now shifted to the transpilation step on the CPU which can be seen in Algorithm \ref{alg:transpile}. There is also a noticeable overhead in that a kernel has to be generated for each expression. In cases like parameter optimisation, many of the expressions would be transpiled multiple times as the transpiler is called multiple times with the same expressions.
The code generated by the transpiler is the kernel for the transpiled expressions. This means that a new kernel must be generated for each expression that needs to be evaluated. This is in contrast to the interpreter, which has one kernel and dispatches it once for each expression. Generating one kernel per expression results in a much simpler kernel, which allows the kernel to focus on evaluating the postfix expression. There is no overhead work such as branching or managing a stack. However, this overhead is now shifted to the transpilation step on the CPU which can be seen in Algorithm \ref{alg:transpile}. There is also a noticeable overhead in that a kernel has to be generated for each expression. In cases like parameter optimisation, many of the expressions would be transpiled multiple times as the transpiler is called multiple times with the same expressions.
Both the transpiler and the interpreter have their respective advantages and disadvantages. While the interpreter puts less load on the CPU, the GPU has to perform more work. Much of this work involves branching or managing a stack, and therefore involves many instructions that are not used to evaluate the expression itself. However, this overhead can be mitigated by the fact, that all this work is performed in parallel rather than sequentially.

Binary file not shown.