WEBVTT

1
00:00:00.000 --> 00:00:08.233
This overview explains why a source transformation, an instruction
list, and execution storage require different counters.

2
00:00:08.233 --> 00:00:17.196
One wide instruction can still perform several primitive operations,
and live-buffer counts do not directly measure hardware traffic.

3
00:00:17.196 --> 00:00:17.200
One wide instruction can still perform several primitive operations,
and live-buffer counts do not directly measure hardware traffic.

4
00:00:17.500 --> 00:00:20.867
An instruction can accept more than two inputs.

5
00:00:20.867 --> 00:00:25.800
This displayed and instruction is one item in an instruction list, but reducing three

6
00:00:25.800 --> 00:00:32.667
inputs requires two binary combinations under the declared pairwise evaluation model.

7
00:00:32.667 --> 00:00:39.367
With inputs one, one, zero, first combine the first two ones to obtain one.

8
00:00:39.367 --> 00:00:43.933
Then combine that intermediate one with zero to obtain zero.

9
00:00:43.933 --> 00:00:49.967
Two binary and operations occurred inside the single flat instruction.

10
00:00:49.967 --> 00:00:53.467
The instruction count describes the program list.

11
00:00:53.467 --> 00:00:58.367
The binary-operation count describes the chosen reduction model.

12
00:00:58.367 --> 00:01:03.467
Neither by itself tells us how many bytes were moved, how vectorized machine code

13
00:01:03.467 --> 00:01:08.218
executes, or how long the request takes.

14
00:01:08.218 --> 00:01:08.233
executes, or how long the request takes.

15
00:01:08.233 --> 00:01:12.767
CSE-flat names a source transformation.

16
00:01:12.767 --> 00:01:17.600
FlatProgram names a dependency-ordered instruction list.

17
00:01:17.600 --> 00:01:23.600
Packed integers or words name storage used when executing that list.

18
00:01:23.600 --> 00:01:26.900
These layers need different counters.

19
00:01:26.900 --> 00:01:31.667
One instruction computes S as A AND B.

20
00:01:31.667 --> 00:01:36.000
Two later instructions read its saved result slot.

21
00:01:36.000 --> 00:01:45.700
A three-argument AND may occupy one instruction but require
two binary AND operations in a straightforward backend.

22
00:01:45.700 --> 00:01:50.433
A saved slot remains live until its last consumer.

23
00:01:50.433 --> 00:01:56.000
Creation, the two reads, and release define the saved slot's lifetime.

24
00:01:56.000 --> 00:02:01.133
Instruction count and live-buffer count describe different things.

25
00:02:01.133 --> 00:02:08.167
Current program metrics describe instructions,
edges, operations and live buffers.

26
00:02:08.167 --> 00:02:13.933
They do not directly measure hardware traffic or process peak memory.

27
00:02:13.933 --> 00:02:22.117
A memory explanation remains a hypothesis unless
those quantities are observed under a declared protocol.

28
00:02:22.117 --> 00:02:22.133
A memory explanation remains a hypothesis unless
those quantities are observed under a declared protocol.

29
00:02:22.433 --> 00:02:27.400
Work a second complete case with A 1, B 1, C 1.

30
00:02:27.400 --> 00:02:30.767
Keep this assignment fixed throughout the calculation.

31
00:02:30.767 --> 00:02:35.067
Each symbol retains the meaning already introduced; a new value does not

32
00:02:35.067 --> 00:02:38.367
create a new logical rule.

33
00:02:38.367 --> 00:02:42.967
Combining the first two inputs gives one, and combining that intermediate with the third

34
00:02:42.967 --> 00:02:45.133
one also gives one.

35
00:02:45.133 --> 00:02:49.967
The final value differs from the earlier zero case, but the declared pairwise reduction

36
00:02:49.967 --> 00:02:52.700
still uses two combinations.

37
00:02:52.700 --> 00:02:57.800
Value and operation count are separate aspects of the trace.

38
00:02:57.800 --> 00:03:01.433
This case establishes a specific contrast.

39
00:03:01.433 --> 00:03:05.100
One instruction can contain several operations.

40
00:03:05.100 --> 00:03:07.867
The reduction model must be stated.

41
00:03:07.867 --> 00:03:12.567
Keep the input, intermediate values, and conclusion together when comparing

42
00:03:12.567 --> 00:03:14.700
it with the previous case.

43
00:03:14.700 --> 00:03:21.067
The calculated answer belongs to this complete assignment under the stated rule.

44
00:03:21.400 --> 00:03:24.233
Suppose S feeds two roots.

45
00:03:24.233 --> 00:03:28.767
After computing the left root, S is still needed by the right root.

46
00:03:28.767 --> 00:03:33.667
Releasing or overwriting its slot immediately after the first use would destroy a value

47
00:03:33.667 --> 00:03:36.233
that is still live.

48
00:03:36.233 --> 00:03:42.100
After both consumers have used S, its slot can be released if nothing else refers to it.

49
00:03:42.100 --> 00:03:45.967
This last-use reasoning determines logical lifetime.

50
00:03:45.967 --> 00:03:52.433
A scheduler can change the overlap of lifetimes even while computing the same graph.

51
00:03:52.433 --> 00:03:57.933
One logical slot might hold a scalar bit, a packed word, or a whole vector.

52
00:03:57.933 --> 00:04:03.500
Allocation and memory traffic also depend on representation and implementation.

53
00:04:03.500 --> 00:04:08.633
Label which quantity is being counted rather than calling every reduction in slot count a

54
00:04:08.633 --> 00:04:12.400
measured memory-speed improvement.

55
00:04:12.400 --> 00:04:12.407
Name the layer each metric describes.

56
00:04:12.407 --> 00:04:16.267
Name the layer each metric describes.

57
00:04:16.267 --> 00:04:23.620
Measure traffic and peak memory separately
before using them as a causal explanation.
