Skip to content

Commit a22628d

Browse files
committed
Update blog
1 parent efbd393 commit a22628d

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

content/blog/2025-10-27-1761560082.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,14 @@ This analogy can help understand the scale and performance penalty for data tran
1818

1919
For e.g. reading constantly from the Global Memory is like driving between the factory and the warehouse outside the city each time (with the traffic of city roads). This is much slower than going to the shed inside the factory (i.e. Shared Memory), and much much slower than just sticking your hand into the tray next to your stamping machine (i.e. Registers). And reading from the Host Memory (CPU) is like taking an overnight trip to another city.
2020

21-
Therefore the job of running a computation graph (like ONNX) efficiently on GPU(s) is like planning the logistics of a manufacturing company. You've got raw materials in the main warehouse that you need to transfer between cities, and store/process/transfer artifacts across different factories and machines. You need to make sure that the production process follows the chart laid out in the computation graph. And most importantly you need to make sure that every machine in each factory is being utilized optimally, and account for the time it takes to move things between cities/factories/machines.
21+
Therefore the job of running a computation graph (like ONNX) efficiently on GPU(s) is like planning the logistics of a manufacturing company. You've got raw materials in the main warehouse that you need to transfer between cities, and store/process/transfer artifacts across different factories and machines. You need to make sure that:
22+
- the production process follows the chart laid out in the computation graph.
23+
- every machine in each factory is being utilized optimally
24+
- account for the time it takes to move things between cities/factories/machines.
2225

23-
If you're supporting multiple models, then you're dealing with multiple computation graphs. And if you're supporting multiple GPU vendors (NVIDIA, AMD etc), and multiple architectures in each vendor (e.g. 3060, 4080, 5080 etc), then you're dealing with multiple factory configurations.
26+
And most importantly, you need to focus on your overall goal, i.e. either the time it takes to produce the finished product (i.e. latency) or maximum utilisation of all your machines (i.e. throughput).
27+
28+
If you're supporting multiple models, then you're dealing with multiple computation graphs. And if you're supporting multiple GPU vendors (NVIDIA, AMD etc), and multiple architectures of each vendor (e.g. 3060, 4080, 5080 etc), then you're dealing with multiple factory configurations.
2429

2530
So you can analyze the computation graph ahead-of-time (AOT) and perform some obvious optimizations like fusing operations etc. And you can take the factory configuration (GPU specs) into account and plan the task division and schedule.
2631

0 commit comments

Comments
 (0)