Add multilingual language and systems learning tracks

This commit is contained in:
Admin committed 2026-11-01 15:46:21 +08:00
1 parent 07338189fc
commit d8d1c40118
844 files changed
+6061

No files matched your search

+9
View File
@@ -0,0 +1,9 @@
# CPU/GPU Core at Memory Mapping · 3
[Agila University track](https://edu.agilaos.com/track.php?track=30&lang=tl)
Mga 15 minuto bawat aralin. Hulaan, patakbuhin, baguhin, ipaliwanag, at sagutan ang pagsusulit sa University.
- [Lesson 1: GPU buffer at transfer cost](lesson-1/lesson.html)
- [Lesson 2: Coalescing at shared workgroup memory](lesson-2/lesson.html)
- [Lesson 3: Synchronization at buffer ownership](lesson-3/lesson.html)
+6
View File
@@ -0,0 +1,6 @@
<!doctype html><html lang="tl"><meta charset="utf-8"><title>GPU buffer at transfer cost</title><h1>GPU buffer at transfer cost</h1><p>15-minutong sesyon: magbasa nang 3 minuto, mag-trace nang 3, mag-eksperimento nang 7, at sagutan ang check nang 2. Maglaan ng dagdag na oras kung kailangan.</p><p>Madalas hiwalay ang device memory ng discrete GPU sa host RAM. Maaaring mas malaki ang upload, download, launch, at synchronization kaysa maliit na kernel. Iba ang API ng unified memory ngunit hindi libreng movement. Limitadong resource ang pinned host memory. Hypothetical ang timing sa sample; accounting ito, hindi hardware measurement.</p><p><strong>Pagsasanay at ebidensiya:</strong> Hulaan ang halimbawa o iguhit ang pagbabago ng state. Baguhin ang isang palagay, subukan ang hangganan, at itala ang aktuwal na resulta. Ipaliwanag kung ano ang hindi napapatunayan ng maliit na modelo tungkol sa production system.</p><pre><code class="language-python">cpu_ms=8
upload_ms,kernel_ms,download_ms=5,2,4
print(&quot;Hypothetical GPU total:&quot;,upload_ms+kernel_ms+download_ms)
print(&quot;Hypothetical CPU total:&quot;,cpu_ms)
</code></pre><p><strong>Inaasahang resulta:</strong> <code>Hypothetical GPU total: 11
Hypothetical CPU total: 8</code></p><h3>Pagsasanay at ebidensiya</h3><p>Itala ang hula, aktuwal na resulta, at dahilan ng pagtugma o pagkakaiba. Sinusukat ng completion check ang pag-unawa; hinahasa ng practice task ang kasanayan.</p><p><a href="https://git.agilaos.com/matt/open_agx">Sanggunian sa wika: git.agilaos.com</a></p><p><a href="https://docs.nvidia.com/cuda/cuda-c-best-practices-guide/">Sanggunian sa wika: docs.nvidia.com</a></p></html>
+4
View File
@@ -0,0 +1,4 @@
cpu_ms=8
upload_ms,kernel_ms,download_ms=5,2,4
print("Hypothetical GPU total:",upload_ms+kernel_ms+download_ms)
print("Hypothetical CPU total:",cpu_ms)
+7
View File
@@ -0,0 +1,7 @@
<!doctype html><html lang="tl"><meta charset="utf-8"><title>Coalescing at shared workgroup memory</title><h1>Coalescing at shared workgroup memory</h1><p>15-minutong sesyon: magbasa nang 3 minuto, mag-trace nang 3, mag-eksperimento nang 7, at sagutan ang check nang 2. Maglaan ng dagdag na oras kung kailangan.</p><p>Maaaring maging episyente ang memory transaction kapag magkatabing element ang ina-access ng GPU lane. Nakababawas ng global read ang shared workgroup memory ngunit limitado ito at kailangan ng synchronization. Iba ang detalye sa CUDA, Metal, Vulkan, at iba pa. Iguhit ang lane-to-element mapping at i-validate ang output pagkatapos ng bawat layout change.</p><p><strong>Pagsasanay at ebidensiya:</strong> Hulaan ang halimbawa o iguhit ang pagbabago ng state. Baguhin ang isang palagay, subukan ang hangganan, at itala ang aktuwal na resulta. Ipaliwanag kung ano ang hindi napapatunayan ng maliit na modelo tungkol sa production system.</p><pre><code class="language-python">lanes=4
contiguous=[lane for lane in range(lanes)]
strided=[lane*16 for lane in range(lanes)]
print(contiguous)
print(strided)
</code></pre><p><strong>Inaasahang resulta:</strong> <code>[0, 1, 2, 3]
[0, 16, 32, 48]</code></p><h3>Pagsasanay at ebidensiya</h3><p>Itala ang hula, aktuwal na resulta, at dahilan ng pagtugma o pagkakaiba. Sinusukat ng completion check ang pag-unawa; hinahasa ng practice task ang kasanayan.</p><p><a href="https://git.agilaos.com/matt/open_agx">Sanggunian sa wika: git.agilaos.com</a></p><p><a href="https://docs.nvidia.com/cuda/cuda-c-best-practices-guide/">Sanggunian sa wika: docs.nvidia.com</a></p></html>
+5
View File
@@ -0,0 +1,5 @@
lanes=4
contiguous=[lane for lane in range(lanes)]
strided=[lane*16 for lane in range(lanes)]
print(contiguous)
print(strided)
+7
View File
@@ -0,0 +1,7 @@
<!doctype html><html lang="tl"><meta charset="utf-8"><title>Synchronization at buffer ownership</title><h1>Synchronization at buffer ownership</h1><p>15-minutong sesyon: magbasa nang 3 minuto, mag-trace nang 3, mag-eksperimento nang 7, at sagutan ang check nang 2. Maglaan ng dagdag na oras kung kailangan.</p><p>Maaaring bumalik ang GPU submission bago matapos ang execution. Nakakasira ng resulta ang maagang reuse o free ng buffer. Imodelo ang allocated, uploaded, submitted, completed, at released. Kailangan ang completion bago reuse. May scope ang barrier; hindi awtomatikong global o host synchronization ang workgroup barrier.</p><p><strong>Pagsasanay at ebidensiya:</strong> Hulaan ang halimbawa o iguhit ang pagbabago ng state. Baguhin ang isang palagay, subukan ang hangganan, at itala ang aktuwal na resulta. Ipaliwanag kung ano ang hindi napapatunayan ng maliit na modelo tungkol sa production system.</p><pre><code class="language-python">state=&quot;submitted&quot;
def can_release(state): return state==&quot;completed&quot;
assert not can_release(state)
state=&quot;completed&quot;
assert can_release(state)
print(&quot;Passed&quot;)
</code></pre><p><strong>Inaasahang resulta:</strong> <code>Passed</code></p><h3>Pagsasanay at ebidensiya</h3><p>Itala ang hula, aktuwal na resulta, at dahilan ng pagtugma o pagkakaiba. Sinusukat ng completion check ang pag-unawa; hinahasa ng practice task ang kasanayan.</p><p><a href="https://git.agilaos.com/matt/open_agx">Sanggunian sa wika: git.agilaos.com</a></p><p><a href="https://docs.nvidia.com/cuda/cuda-c-best-practices-guide/">Sanggunian sa wika: docs.nvidia.com</a></p></html>
+6
View File
@@ -0,0 +1,6 @@
state="submitted"
def can_release(state): return state=="completed"
assert not can_release(state)
state="completed"
assert can_release(state)
print("Passed")