WEBVTT

1
00:00:00.000 --> 00:00:07.667
This overview explains the distinction between an explicit
dense CM and the shared computation graph stored by CM-IR.

2
00:00:07.667 --> 00:00:14.267
Building a program and materializing all its outputs
incur different costs and satisfy different requests.

3
00:00:14.567 --> 00:00:21.600
The program for A and B, then or C, stores operations that can be applied to a request.

4
00:00:21.600 --> 00:00:26.700
Calling the first result S makes the dependency explicit.

5
00:00:26.700 --> 00:00:30.567
The program is like a recipe: it explains how to obtain an output

6
00:00:30.567 --> 00:00:33.500
from the current ingredients.

7
00:00:33.500 --> 00:00:40.267
For input one one zero, evaluate S first and then combine it with C.

8
00:00:40.267 --> 00:00:42.800
Both operations yield one.

9
00:00:42.800 --> 00:00:48.533
This execution produces one answer for one request; the other seven assignments have not

10
00:00:48.533 --> 00:00:52.867
been delivered simply because the program exists.

11
00:00:52.867 --> 00:00:58.833
A complete explicit representation stores all eight answers in a declared layout.

12
00:00:58.833 --> 00:01:07.100
In zero-first order, the outputs are zero, one, zero, one, zero, one, one, one.

13
00:01:07.100 --> 00:01:11.133
This is the filled answer sheet, whereas the program is a reusable way

14
00:01:11.133 --> 00:01:14.463
to calculate those entries.

15
00:01:14.463 --> 00:01:14.467
to calculate those entries.

16
00:01:14.467 --> 00:01:19.000
An explicit CM stores a dense row-column truth layout.

17
00:01:19.000 --> 00:01:23.867
CM-IR stores a canonicalized shared computation graph.

18
00:01:23.867 --> 00:01:28.833
Building that graph and materializing all outputs are separate operations.

19
00:01:28.833 --> 00:01:34.033
F takes the exclusive-or of two results: A AND B, and C OR D.

20
00:01:34.033 --> 00:01:39.900
The AND node and the OR node feed their
results into the final exclusive-or node.

21
00:01:39.900 --> 00:01:44.700
Trace 1011 through them: zero and one give one.

22
00:01:44.700 --> 00:01:49.267
Separately declare ascending AB rows and CD columns.

23
00:01:49.267 --> 00:01:54.033
That output of one belongs at row index two, column index three.

24
00:01:54.033 --> 00:01:58.400
Evaluating the other assignments fills the remaining cells.

25
00:01:58.400 --> 00:02:05.767
The grid is 0111 in each of its first three rows, and 1000 in its last row.

26
00:02:05.767 --> 00:02:10.933
The graph and grid describe the same function but store different artifacts.

27
00:02:10.933 --> 00:02:17.900
A graph evaluation path may produce packed
or reduced output under its API contract.

28
00:02:17.900 --> 00:02:25.792
A kernel measurement does not automatically include graph
construction, dense materialization or the public wrapper.

29
00:02:26.092 --> 00:02:36.068
Return to the opening three-input recipe: S equals A and B, and F equals S or C.

30
00:02:36.068 --> 00:02:39.636
This is separate from the intervening larger program.

31
00:02:39.636 --> 00:02:43.122
A, B and C are Boolean inputs.

32
00:02:43.122 --> 00:02:48.301
Set them to zero, one and zero respectively.

33
00:02:49.051 --> 00:02:53.687
The first and combines zero with one and returns zero.

34
00:02:53.687 --> 00:02:59.624
The final or combines that zero with C zero and also returns zero.

35
00:02:59.624 --> 00:03:04.701
The program structure is unchanged from the earlier input that returned one.

36
00:03:04.701 --> 00:03:09.991
Reusing a recipe therefore does not imply reusing its previous answer.

37
00:03:10.741 --> 00:03:14.413
This case establishes a specific contrast.

38
00:03:14.413 --> 00:03:16.947
Same compiled recipe.

39
00:03:16.947 --> 00:03:19.806
Different input and different output.

40
00:03:19.806 --> 00:03:26.717
Keep the input, intermediate values, and conclusion together when comparing it with the previous case.

41
00:03:26.717 --> 00:03:33.022
The calculated answer belongs to this complete assignment under the stated rule.

42
00:03:33.022 --> 00:03:33.026
The calculated answer belongs to this complete assignment under the stated rule.

43
00:03:33.326 --> 00:03:39.459
If the caller needs only input one zero zero, the required answer is zero.

44
00:03:39.459 --> 00:03:44.326
Constructing a full table may do work the caller did not request.

45
00:03:44.326 --> 00:03:50.992
Whether that construction later pays off depends on the actual reuse and costs.

46
00:03:50.992 --> 00:03:55.692
If the caller requests the full vector, every output must be supplied.

47
00:03:55.692 --> 00:04:01.159
A compact intermediate program does not discharge that obligation by itself.

48
00:04:01.159 --> 00:04:07.526
It must be executed or otherwise used to obtain all required answers.

49
00:04:07.526 --> 00:04:12.459
For repeated requests, the two representations save different work.

50
00:04:12.459 --> 00:04:17.059
Reusing a program can avoid rebuilding its structure; retaining a full

51
00:04:17.059 --> 00:04:19.426
table can support lookup.

52
00:04:19.426 --> 00:04:25.559
The useful comparison specifies residency, input changes, and delivery rather than

53
00:04:25.559 --> 00:04:30.192
assuming that either form is universally better.

54
00:04:30.226 --> 00:04:34.626
Keep the program representation distinct from the filled grid.

55
00:04:34.626 --> 00:04:40.092
Charge materialization when the caller requires every output.
