Skip to content

Commit bb8e188

Browse files
committed
chore: update dist/
1 parent a78578c commit bb8e188

13 files changed

+34
-47
lines changed

dist/_astro/hoisted.BVkJFRlA.js dist/_astro/hoisted.ozVI7Nxi.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
-4.67 MB
Binary file not shown.
Binary file not shown.
4.73 MB
Binary file not shown.

dist/docs/goals/index.html

+4
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,10 @@ <h2 id="notes">Notes</h2>
8686
<div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">OpStore %4 %3 ; %4 &#x3C;ptr 0x1000> = { [0] = 0, [1] = 1, .... }</span></div></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code=" OpStore %4 %3 ; %4 <ptr 0x1000> = { [0] = 0, [1] = 1, .... }"><div></div></button></div></figure></div>
8787
<p>Idea: redraw the <code dir="auto">&#x3C;textarea></code> as having multiple “layers” that can be scrubbed through, where each “layer” is decorated like:</p>
8888
<div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">OpStore %4 %3 ; %4 &#x3C;ptr to elem 0 in arr at 0x1000> = %3 &#x3C;0></span></div></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code=" OpStore %4 %3 ; %4 <ptr to elem 0 in arr at 0x1000> = %3 <0>"><div></div></button></div></figure></div>
89+
<p>Idea: show “motion” of a vector slot by printing out the before/after of the array slot “around” the OpStore</p>
90+
<p>This is how I would’ve (did?) learn this; by <code dir="auto">printf</code> to map the symbolic reasoning to a concrete example</p>
91+
<p>And/or: step debugger that steps over the OpStore, and a graphical visual representation “flashes” to indicate the writes</p>
92+
<div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">[ 0 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ]</span></div></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="[ 0 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ]"><div></div></button></div></figure></div>
8993
<p><em>Q</em>: How is it possible to identify which elements were written? How many times?</p>
9094
<p>fixme: talvos ought to track uninitialized/never-written memory (and possibly written-but-not-read). Right now it’s happily printing out whatever happened to be in the heap at that address, which makes it really hard to tell what slots were written to and which ones weren’t.</p>
9195
<p>Idea: present the final vector as some sort of heat map based on write frequency?</p>

dist/index.html

+28-45
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,55 @@
1-
<!DOCTYPE html><html> <head><title>gpgpu playground</title><link rel="stylesheet" type="text/css" media="all" href="/learn-gpgpu/styles/index.css"><script type="module" src="/learn-gpgpu/_astro/hoisted.BVkJFRlA.js"></script>
1+
<!DOCTYPE html><html> <head><title>gpgpu playground</title><link rel="stylesheet" type="text/css" media="all" href="/learn-gpgpu/styles/index.css"><script type="module" src="/learn-gpgpu/_astro/hoisted.ozVI7Nxi.js"></script>
22
<script type="module" src="/learn-gpgpu/_astro/page.BO5rBSqo.js"></script></head> <body> <nav> <ul> <li><a href="/learn-gpgpu/docs">docs/</a></li> </ul> </nav> <div id="talvos"> <div> <main> <textarea class="module" autocorrect="off" autocomplete="off" autocapitalize="off" spellcheck="false" aria-label="SPIR-V module assembly (spv_text format)" wrap="off">; SPIR-V
3-
; Version: 1.3
4-
OpCapability Shader ; TODO we need this for descriptors? really?
3+
; Version: 1.5
54
OpCapability Kernel
5+
OpCapability BuffersTALVOS
6+
OpCapability ExecTALVOS
7+
OpCapability PhysicalStorageBufferAddresses
8+
OpExtension &quot;SPV_TALVOS_buffers&quot;
9+
OpExtension &quot;SPV_TALVOS_exec&quot;
610
OpMemoryModel Logical OpenCL
711

812
OpEntryPoint Kernel %main_fn &quot;main&quot; %gl_GlobalInvocationID
913

10-
; TODO instead of DISPATCH, one of these:
11-
;OpExecutionMode %main_fn LocalSize 16 1 1
12-
;OpExecutionMode %main_fn GlobalSize 16 1 1
14+
OpExecutionGlobalSizeTALVOS %main_fn 16 1 1
1315

14-
; TODO[seth]: is this a spec misread in talvos? Shouldn&#39;t the DISPATCH map to local size?
15-
; (or is it execution mode dependent?)
1616
OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId
17+
OpDecorate %_arr_uint32_t ArrayStride 4
1718

18-
; TODO instead of descriptors, static allocation via `OpBufferTALVOS 64` (maybe w/ %ty? and/or name?)
19-
; TODO how do people pass data back &amp; forth w/ OpenCL kernels for real?
20-
OpDecorate %buf0 DescriptorSet 0
21-
OpDecorate %buf0 Binding 0
19+
; types
20+
%void_t = OpTypeVoid
21+
%void_fn_t = OpTypeFunction %void_t
22+
%uint32_t = OpTypeInt 32 0
23+
%gbl_id_t = OpTypeVector %uint32_t 3
2224

23-
; TODO instead of `DUMP`, something like `OpDumpAtEndTALVOS %buffer_id` ?
24-
; Or perhaps that&#39;s just implied by `OpBufferTALVOS` ?
25+
%arr_len = OpConstant %uint32_t 16
26+
%_arr_uint32_t = OpTypeArray %uint32_t %arr_len
2527

26-
; types
27-
%void_t = OpTypeVoid
28-
%void_fn_t = OpTypeFunction %void_t
29-
%uint32_t = OpTypeInt 32 0
30-
%gbl_id_t = OpTypeVector %uint32_t 3
28+
%_ptr_Input_gbl_id_t = OpTypePointer Input %gbl_id_t
29+
%_ptr_Input_uint32_t = OpTypePointer Input %uint32_t
3130

32-
%_arr_uint32_t = OpTypeRuntimeArray %uint32_t
31+
%_ptr_PhysicalStorageBuffer_uint32_t = OpTypePointer PhysicalStorageBuffer %uint32_t
32+
%_arr_PhysicalStorageBuffer_uint32_t = OpTypePointer PhysicalStorageBuffer %_arr_uint32_t
3333

34-
%_ptr_StorageBuffer_uint32_t = OpTypePointer StorageBuffer %uint32_t
35-
%_arr_StorageBuffer_uint32_t = OpTypePointer StorageBuffer %_arr_uint32_t
36-
%_ptr_Input_gbl_id_t = OpTypePointer Input %gbl_id_t
37-
%_ptr_Input_uint32_t = OpTypePointer Input %uint32_t
3834

39-
40-
; global arguments &amp; constants
35+
; global arguments &amp; constants
4136
%n = OpConstant %uint32_t 0
4237
%gl_GlobalInvocationID = OpVariable %_ptr_Input_gbl_id_t Input
43-
%buf0 = OpVariable %_arr_StorageBuffer_uint32_t StorageBuffer
38+
%buf0 = OpBufferTALVOS %_arr_PhysicalStorageBuffer_uint32_t PhysicalStorageBuffer 64 &quot;a&quot;
4439

45-
; FILL_IDX entry point
40+
; FILL_IDX entry point
4641
%main_fn = OpFunction %void_t None %void_fn_t
4742
%0 = OpLabel
4843
%2 = OpAccessChain %_ptr_Input_uint32_t %gl_GlobalInvocationID %n
49-
%3 = OpLoad %uint32_t %2
50-
%4 = OpAccessChain %_ptr_StorageBuffer_uint32_t %buf0 %3
51-
OpStore %4 %3
44+
%3 = OpLoad %uint32_t %2 Aligned 4
45+
%4 = OpAccessChain %_ptr_PhysicalStorageBuffer_uint32_t %buf0 %3
46+
OpStore %4 %3 Aligned 4
5247
OpReturn
5348
OpFunctionEnd
54-
</textarea> </main> <aside> <section> <textarea class="commands_todo_make_js_concatenate_all_the_commands inactive" autocorrect="off" autocomplete="off" autocapitalize="off" spellcheck="false" aria-label="Talvos commands (informational)" disabled wrap="off"># MODULE fill.spvasm</textarea> </section> <section> <label>ENTRY
49+
</textarea> </main> <aside> <section> <textarea class="commands_todo_make_js_concatenate_all_the_commands inactive" autocorrect="off" autocomplete="off" autocapitalize="off" spellcheck="false" aria-label="Talvos commands (informational)" disabled wrap="off"># MODULE fill_idx.spvasm</textarea> </section> <section> <label>ENTRY
5550
<select name="entry"></select> </label> </section> <section> <textarea class="commands" style="height: 434px" autocorrect="off" autocomplete="off" autocapitalize="off" spellcheck="false" aria-label="Talvos commands (tcf format)" wrap="off">
56-
BUFFER a 64 UNINIT
57-
# ^ bytes
58-
59-
DESCRIPTOR_SET 0 0 0 a
60-
61-
DISPATCH 16 1 1
62-
# ^ work items (here, &quot;elements&quot;)
63-
64-
DUMP UINT32 a
65-
# ^ bits
51+
EXEC
6652

67-
# NB: a&#39;s size and the DISPATCH must agree;
68-
# i.e. 16 elements == (64 bytes / (32 bits per element / 8 bits per byte))
69-
# a should be filled with the value of %FILL
7053
</textarea> </section> </aside> </div> <div id="controls"> <button class="validate exec">validate</button> <button class="run exec">run</button> <button class="debug exec">debug</button> <div hidden> <button class="exception">exception</button> <button class="assertion">assertion</button> <button class="shrubbery">shrubbery</button> </div> <div class="debugger" hidden> <!-- cf. PipelineExecutor::help --> <button class="step">step</button> <button class="switch">switch</button> <button class="print">print</button> <button class="continue">continue</button> <button class="stop">stop</button> <!-- missing: [break, breakpoint, help, quit] --> </div> </div> <!-- TODO
7154
can we pull out just this one wodget into a "component"?
7255
it'd be nice to write some code for turning `102043253.21231222ms` into a human time
3.21 KB
Binary file not shown.
-3.04 KB
Binary file not shown.
-7.76 KB
Binary file not shown.
8 KB
Binary file not shown.

dist/pagefind/pagefind-entry.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"version":"1.1.0","languages":{"en":{"hash":"en_1d4d1ae838","wasm":"en","page_count":4}}}
1+
{"version":"1.1.0","languages":{"en":{"hash":"en_7698a08281","wasm":"en","page_count":4}}}
-110 Bytes
Binary file not shown.
110 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)