Add multilingual language and systems learning tracks
This commit is contained in:
1 parent
07338189fc
commit
d8d1c40118
844 files changed
+6061
No files matched your search
@@ -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)
|
||||
@@ -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("Hypothetical GPU total:",upload_ms+kernel_ms+download_ms)
|
||||
print("Hypothetical CPU total:",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>
|
||||
@@ -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)
|
||||
@@ -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>
|
||||
@@ -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)
|
||||
@@ -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="submitted"
|
||||
def can_release(state): return state=="completed"
|
||||
assert not can_release(state)
|
||||
state="completed"
|
||||
assert can_release(state)
|
||||
print("Passed")
|
||||
</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>
|
||||
@@ -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")
|
||||
Reference in new issue
Block a user