A Mental Model of CPU Performance
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next timestamp
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu and Index Controls

a
w
s
d
h j k l


Esc Close menu / unfocus timestamp

Quotes and References Menus and Index

Enter Jump to timestamp

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
2:17Blackboard: Optimization
2:17Blackboard: Optimization
2:17Blackboard: Optimization
3:58Blackboard: CPU + GPU instructions
3:58Blackboard: CPU + GPU instructions
3:58Blackboard: CPU + GPU instructions
5:28Blackboard: Math operations done wide (SIMD)
5:28Blackboard: Math operations done wide (SIMD)
5:28Blackboard: Math operations done wide (SIMD)
8:26Blackboard: An example instruction
8:26Blackboard: An example instruction
8:26Blackboard: An example instruction
10:10Blackboard: Issuing an instruction is expensive
10:10Blackboard: Issuing an instruction is expensive
10:10Blackboard: Issuing an instruction is expensive
13:13Blackboard: Optimization considerations
13:13Blackboard: Optimization considerations
13:13Blackboard: Optimization considerations
15:56Blackboard: Memory access costs
15:56Blackboard: Memory access costs
15:56Blackboard: Memory access costs
17:54Blackboard: Cycles
17:54Blackboard: Cycles
17:54Blackboard: Cycles
22:05Blackboard: You should always know how many cycles you have to work with
22:05Blackboard: You should always know how many cycles you have to work with
22:05Blackboard: You should always know how many cycles you have to work with
24:37Blackboard: You won't always have all cycles available for use
24:37Blackboard: You won't always have all cycles available for use
24:37Blackboard: You won't always have all cycles available for use
25:57Blackboard: What is a cycle?
25:57Blackboard: What is a cycle?
25:57Blackboard: What is a cycle?
31:38Blackboard: Pipeline stages
31:38Blackboard: Pipeline stages
31:38Blackboard: Pipeline stages
34:36Blackboard: Why pipeline? (Doing the laundry)
34:36Blackboard: Why pipeline? (Doing the laundry)
34:36Blackboard: Why pipeline? (Doing the laundry)
39:41Blackboard: Latency and Throughput
39:41Blackboard: Latency and Throughput
39:41Blackboard: Latency and Throughput
43:53Blackboard: Where latency causes us a problem
43:53Blackboard: Where latency causes us a problem
43:53Blackboard: Where latency causes us a problem
48:33Blackboard: Cache miss
48:33Blackboard: Cache miss
48:33Blackboard: Cache miss
51:01Blackboard: Hyperthreading
51:01Blackboard: Hyperthreading
51:01Blackboard: Hyperthreading
52:42Blackboard: Optimization, the platform
52:42Blackboard: Optimization, the platform
52:42Blackboard: Optimization, the platform
55:07Blackboard: So that is optimizationα
55:07Blackboard: So that is optimizationα
55:07Blackboard: So that is optimizationα
55:25Blackboard: Efficiency
55:25Blackboard: Efficiency
55:25Blackboard: Efficiency
59:30Q&A
🗩
59:30Q&A
🗩
59:30Q&A
🗩
1:00:13atomiclich Would you be willing to make more blackboard episodes? This is very informative
🗪
1:00:13atomiclich Would you be willing to make more blackboard episodes? This is very informative
🗪
1:00:13atomiclich Would you be willing to make more blackboard episodes? This is very informative
🗪
1:00:46grumpygiant256 Are you going to be using anything like VTune for measuring performance?
🗪
1:00:46grumpygiant256 Are you going to be using anything like VTune for measuring performance?
🗪
1:00:46grumpygiant256 Are you going to be using anything like VTune for measuring performance?
🗪
1:01:26bakeheart How are instructions written in cache memory?
🗪
1:01:26bakeheart How are instructions written in cache memory?
🗪
1:01:26bakeheart How are instructions written in cache memory?
🗪
1:02:33d7samurai Do we manually issue prefetching or is that something inferred by the CPU by looking at how we access memory?
🗪
1:02:33d7samurai Do we manually issue prefetching or is that something inferred by the CPU by looking at how we access memory?
🗪
1:02:33d7samurai Do we manually issue prefetching or is that something inferred by the CPU by looking at how we access memory?
🗪
1:05:08childz I know this is a long way off, but after Handmade Hero is done, do you plan to continue educational streams?
🗪
1:05:08childz I know this is a long way off, but after Handmade Hero is done, do you plan to continue educational streams?
🗪
1:05:08childz I know this is a long way off, but after Handmade Hero is done, do you plan to continue educational streams?
🗪
1:05:34andsz_ How often do you estimate the actual amount of work prior to implementing a feature vs just implementing it and measuring it?
🗪
1:05:34andsz_ How often do you estimate the actual amount of work prior to implementing a feature vs just implementing it and measuring it?
🗪
1:05:34andsz_ How often do you estimate the actual amount of work prior to implementing a feature vs just implementing it and measuring it?
🗪
1:08:59snobrdr97 So if memory takes a few hundred cycles if the instructions have to reach out to the hard drive, what impact would that have?
🗪
1:08:59snobrdr97 So if memory takes a few hundred cycles if the instructions have to reach out to the hard drive, what impact would that have?
🗪
1:08:59snobrdr97 So if memory takes a few hundred cycles if the instructions have to reach out to the hard drive, what impact would that have?
🗪
1:11:14starchypancakes Two questions: 1) Are there ever any cases where we have to worry about one of our instructions being decoded into multiple microcode instructions without our knowledge?
🗪
1:11:14starchypancakes Two questions: 1) Are there ever any cases where we have to worry about one of our instructions being decoded into multiple microcode instructions without our knowledge?
🗪
1:11:14starchypancakes Two questions: 1) Are there ever any cases where we have to worry about one of our instructions being decoded into multiple microcode instructions without our knowledge?
🗪
1:13:16starchypancakes 2) In optimizing, have you set up the code in such a way that you can optimize things function-by-function with this eventuality in mind, or will we have to restructure some of the functions to allow them to be optimized?
🗪
1:13:16starchypancakes 2) In optimizing, have you set up the code in such a way that you can optimize things function-by-function with this eventuality in mind, or will we have to restructure some of the functions to allow them to be optimized?
🗪
1:13:16starchypancakes 2) In optimizing, have you set up the code in such a way that you can optimize things function-by-function with this eventuality in mind, or will we have to restructure some of the functions to allow them to be optimized?
🗪
1:16:37hyco24 Would it be inefficient to offload the cache to an SSD over/or with minimal RAM usage or would the latency be too much?
🗪
1:16:37hyco24 Would it be inefficient to offload the cache to an SSD over/or with minimal RAM usage or would the latency be too much?
🗪
1:16:37hyco24 Would it be inefficient to offload the cache to an SSD over/or with minimal RAM usage or would the latency be too much?
🗪
1:17:32vertex_ "Premature Optimization is the root of all evil." What's your take on that quote?
🗪
1:17:32vertex_ "Premature Optimization is the root of all evil." What's your take on that quote?
🗪
1:17:32vertex_ "Premature Optimization is the root of all evil." What's your take on that quote?
🗪
1:19:28noxy_key Is there any way to use or avoid hyperthreading to your advantage?
🗪
1:19:28noxy_key Is there any way to use or avoid hyperthreading to your advantage?
🗪
1:19:28noxy_key Is there any way to use or avoid hyperthreading to your advantage?
🗪
1:19:44zjadekkarenvae What do you tell someone who doesn't like emacs?
🗪
1:19:44zjadekkarenvae What do you tell someone who doesn't like emacs?
🗪
1:19:44zjadekkarenvae What do you tell someone who doesn't like emacs?
🗪
1:20:39bakeheart Does hyperthreading reduce maximum bandwidth because it has to switch between states, or can both states operate at the same time?
🗪
1:20:39bakeheart Does hyperthreading reduce maximum bandwidth because it has to switch between states, or can both states operate at the same time?
🗪
1:20:39bakeheart Does hyperthreading reduce maximum bandwidth because it has to switch between states, or can both states operate at the same time?
🗪
1:21:20quatzequatel In your experience what drives the "good enough" optimization and how do the novice guys get a handle on that?
🗪
1:21:20quatzequatel In your experience what drives the "good enough" optimization and how do the novice guys get a handle on that?
🗪
1:21:20quatzequatel In your experience what drives the "good enough" optimization and how do the novice guys get a handle on that?
🗪
1:24:00Wrap things up
🗩
1:24:00Wrap things up
🗩
1:24:00Wrap things up
🗩