A Mental Model of CPU Performance
?
?

Global Keys

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

q Quotes r References f Filter y Link c Credits

a
w
s
d
h j k l

o Open URL (in new tab)

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

z Toggle filter / linking mode

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
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:13 Would you be willing to make more blackboard episodes? This is very informative
🗪
1:00:13 Would you be willing to make more blackboard episodes? This is very informative
🗪
1:00:13 Would you be willing to make more blackboard episodes? This is very informative
🗪
1:00:46 Are you going to be using anything like VTune for measuring performance?
🗪
1:00:46 Are you going to be using anything like VTune for measuring performance?
🗪
1:00:46 Are you going to be using anything like VTune for measuring performance?
🗪
1:01:26 How are instructions written in cache memory?
🗪
1:01:26 How are instructions written in cache memory?
🗪
1:01:26 How are instructions written in cache memory?
🗪
1:02:33 Do we manually issue prefetching or is that something inferred by the CPU by looking at how we access memory?
🗪
1:02:33 Do we manually issue prefetching or is that something inferred by the CPU by looking at how we access memory?
🗪
1:02:33 Do we manually issue prefetching or is that something inferred by the CPU by looking at how we access memory?
🗪
1:05:08 I know this is a long way off, but after Handmade Hero is done, do you plan to continue educational streams?
🗪
1:05:08 I know this is a long way off, but after Handmade Hero is done, do you plan to continue educational streams?
🗪
1:05:08 I know this is a long way off, but after Handmade Hero is done, do you plan to continue educational streams?
🗪
1:05:34 How often do you estimate the actual amount of work prior to implementing a feature vs just implementing it and measuring it?
🗪
1:05:34 How often do you estimate the actual amount of work prior to implementing a feature vs just implementing it and measuring it?
🗪
1:05:34 How often do you estimate the actual amount of work prior to implementing a feature vs just implementing it and measuring it?
🗪
1:08:59 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:59 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:59 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:14 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:14 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:14 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:16 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:16 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:16 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:37 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:37 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:37 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:32 "Premature Optimization is the root of all evil." What's your take on that quote?
🗪
1:17:32 "Premature Optimization is the root of all evil." What's your take on that quote?
🗪
1:17:32 "Premature Optimization is the root of all evil." What's your take on that quote?
🗪
🗪
🗪
🗪
1:19:44 What do you tell someone who doesn't like emacs?
🗪
1:19:44 What do you tell someone who doesn't like emacs?
🗪
1:19:44 What do you tell someone who doesn't like emacs?
🗪
1:20:39 Does hyperthreading reduce maximum bandwidth because it has to switch between states, or can both states operate at the same time?
🗪
1:20:39 Does hyperthreading reduce maximum bandwidth because it has to switch between states, or can both states operate at the same time?
🗪
1:20:39 Does hyperthreading reduce maximum bandwidth because it has to switch between states, or can both states operate at the same time?
🗪
1:21:20 In your experience what drives the "good enough" optimization and how do the novice guys get a handle on that?
🗪
1:21:20 In your experience what drives the "good enough" optimization and how do the novice guys get a handle on that?
🗪
1:21:20 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
🗩