GPU (ဂရပ်ဖစ် processor)
A1.1.2 - GPU, A1.1.3 (HL) - CPU vs GPU comparison
မြန်မာလို: A1.1.2: GPU (ဂရပ်ဖစ် processor)၊ A1.1.3 (HL အဆင့်အတွက်သာ): CPU နဲ့ GPU ကို နှိုင်းယှဉ်ခြင်း
အဓိက အယူအဆများ
GPU ဆိုတာ ဘာလဲ
GPU (Graphics Processing Unit၊ ဂရပ်ဖစ် processor) ဆိုတာ parallel computation (တွက်ချက်မှု အများကြီးကို တစ်ပြိုင်နက် လုပ်ခြင်း) အတွက် သီးသန့် ဒီဇိုင်းထုတ်ထားတဲ့ processor (ညွှန်ကြားချက်တွေကို လုပ်ဆောင်ပေးတဲ့ chip) တစ်မျိုးပါ။ CPU (ကွန်ပျူတာရဲ့ အဓိက processor) မှာ sequential (တစ်ခုပြီးမှ တစ်ခု) အလုပ်တွေကို ကောင်းကောင်း လုပ်နိုင်အောင် ဒီဇိုင်းထုတ်ထားတဲ့ ရှုပ်ထွေးတဲ့ core (ညွှန်ကြားချက်တွေကို သီးခြား run နိုင်တဲ့ processor ထဲက processing unit) အနည်းငယ်ပဲ ရှိပါတယ်။ GPU မှာတော့ ဒေတာ တန်ဖိုး အများကြီးပေါ်မှာ operation (ဒေတာပေါ်မှာ လုပ်တဲ့ လုပ်ဆောင်ချက်) တစ်ခုတည်းကို တစ်ပြိုင်နက် လုပ်ဆောင်တဲ့ ရိုးရှင်းတဲ့ core ထောင်ပေါင်းများစွာ ပါပါတယ်။
GPU တွေကို မူလက graphics rendering (screen ပေါ်က ပုံတွေကို တွက်ချက်ပြီး ပုံဖော်ခြင်း) အတွက် တည်ဆောက်ခဲ့တာပါ: frame (screen ပေါ်မှာ တစ်ကြိမ် ပြတဲ့ ပုံ တစ်ပုံ) တိုင်းမှာ pixel (ပုံထဲက အစက် တစ်စက်) သန်းပေါင်းများစွာရဲ့ အရောင်နဲ့ နေရာကို တွက်ချက်တာပါ။ ဒီနေ့ခေတ်မှာတော့ general-purpose computing (GPGPU၊ GPU ပေါ်မှာ အလုပ် အမျိုးမျိုးကို တွက်ချက်ခြင်း) အတွက်လည်း သုံးပါတယ်။ Dataset (ဒေတာ အစုအဝေး) ကြီးကြီးပေါ်မှာ တွက်ချက်မှုတွေကို ထပ်ခါထပ်ခါ လုပ်ရတဲ့ ဘယ်ပြဿနာမဆို GPU acceleration (GPU ကို သုံးပြီး ပိုမြန်အောင် လုပ်ခြင်း) ကနေ အကျိုးရနိုင်ပါတယ်။
လက်တွေ့ အသုံးချပုံများ
- ဂိမ်း: 3D graphics ကို real-time (ချက်ချင်း ဆက်တိုက်) ပုံဖော်ခြင်း၊ frame တစ်ခုစီမှာ pixel သန်းပေါင်းများစွာအတွက် အလင်း၊ အရိပ်နဲ့ texture (မျက်နှာပြင် ပုံစံ) တွေကို တွက်ချက်ခြင်း
- AI / Machine Learning (AI: ဉာဏ်ရည်တု၊ machine learning: ဒေတာကနေ သင်ယူတဲ့ စနစ်): neural network (အလွှာလိုက် စီထားတဲ့ neuron အတု network) တွေကို train (ဒေတာနဲ့ လေ့ကျင့်ပေးခြင်း) လုပ်ရာမှာ matrix (ကိန်းဇယား) အကြီးကြီးတွေကို မြှောက်ရတာ အများကြီး ပါပါတယ်။ အဲဒီ မြှောက်ခြင်းတွေက parallel execution (တစ်ပြိုင်နက် လုပ်ဆောင်ခြင်း) နဲ့ အလွန် ကိုက်ညီပါတယ်
- သိပ္ပံဆိုင်ရာ simulation (တကယ့် ဖြစ်စဉ်ကို ကွန်ပျူတာနဲ့ အတုလုပ်ပြခြင်း) များ: ရာသီဥတုကို model လုပ်ခြင်း၊ molecule တွေ ရွေ့လျားပုံ (molecular dynamics)၊ အရည်နဲ့ ဓာတ်ငွေ့ စီးဆင်းပုံ simulation တွေ အားလုံးမှာ ဒေတာ တန်ဖိုး သန်းပေါင်းများစွာပေါ်မှာ တူညီတဲ့ တွက်ချက်မှုကို လုပ်ရပါတယ်
- Video rendering: video frame တွေကို parallel နဲ့ encode / decode (video ကို file ပုံစံ ပြောင်းသိမ်းခြင်း / ပြန်ကြည့်လို့ရအောင် ပြန်ပြောင်းခြင်း) လုပ်တာက processing time (အလုပ် ပြီးဖို့ ကြာချိန်) ကို အများကြီး လျှော့ပေးပါတယ်
- Cryptocurrency mining (digital ငွေကြေးအတွက် တွက်ချက်ခြင်း): hash calculation (ဒေတာကနေ ပုံသေ အရှည်ရှိတဲ့ တန်ဖိုး တစ်ခု တွက်ထုတ်ခြင်း) သန်းထောင်ပေါင်းများစွာကို parallel နဲ့ လုပ်ဆောင်ခြင်း (သမိုင်း မှတ်ချက်: 2017-2021 မှာ GPU ပြတ်လပ်မှုကို ဒါက ဖြစ်စေခဲ့ပါတယ်)
GPU Architecture (GPU ရဲ့ ဖွဲ့စည်းပုံ) အကျဉ်း
GPU ကို Streaming Multiprocessors (SMs) (core အုပ်စု ယူနစ်များ) အဖြစ် ဖွဲ့စည်းထားပြီး SM တစ်ခုစီမှာ ရိုးရှင်းတဲ့ core အများကြီး ပါပါတယ်။ အဓိက ဖွဲ့စည်းပုံ ထူးခြားချက်တွေက:
- Massive parallelism (အလွန် အများကြီးကို တစ်ပြိုင်နက် လုပ်နိုင်မှု): core ထောင်ပေါင်းများစွာ တစ်ပြိုင်နက် အလုပ်လုပ်ပါတယ်
- High memory bandwidth: memory (မှတ်ဉာဏ်) ရဲ့ bandwidth (တစ်စက္ကန့်မှာ ပို့နိုင်တဲ့ ဒေတာ အများဆုံး) မြင့်ပါတယ်။ တန်ဖိုး တစ်ခုချင်းကို အမြန် ယူနိုင်ဖို့ (latency၊ တောင်းဆိုမှုနဲ့ တုံ့ပြန်မှုကြား နှောင့်နှေးချိန်) ထက် ဒေတာ အများကြီးကို အမြန် ရွှေ့နိုင်ဖို့ (throughput၊ အချိန် တစ်ခုအတွင်း လုပ်ပြီးနိုင်တဲ့ အလုပ် ပမာဏ) ကို ဦးစားပေး ဒီဇိုင်းထုတ်ထားပါတယ်
- SIMD processing: SIMD ဆိုတာ Single Instruction, Multiple Data (instruction တစ်ခု၊ ဒေတာ အများ) ပါ။ Core အုပ်စု တစ်ခုက တူညီတဲ့ instruction (processor လုပ်ဆောင်ရမယ့် ညွှန်ကြားချက်) ကို မတူတဲ့ ဒေတာ တန်ဖိုးတွေပေါ်မှာ တစ်ချိန်တည်း လုပ်ဆောင်ပါတယ်
- ရိုးရှင်းတဲ့ core များ: core တစ်ခုချင်းက CPU core ထက် စွမ်းဆောင်နိုင်မှု အများကြီး နည်းပါတယ်။ ဒါပေမယ့် workload (လုပ်ရမယ့် အလုပ်) ကို parallel လုပ်လို့ရတဲ့အခါ core အရေအတွက် အလွန်များတာက အဲဒီ အားနည်းချက်ကို ကာမိစေပါတယ်
Deep dive into GPU architecture: parallel cores, SIMD processing, and why GPUs excel at graphics and AI workloads.
ထပ်ဆောင်း လေ့လာစရာ: Rendering Pipeline (ပုံဖော်ဖို့ ဒေတာ ဖြတ်သွားရတဲ့ အဆင့်ဆင့် လုပ်ငန်းစဉ်)
ဒီအပိုင်းက IB syllabus (IB သင်ရိုး) ထက် ကျော်လွန်တဲ့ အပိုင်းပါ။ ဒါကြောင့် IB Computer Science (နိုင်ငံတကာ ကျောင်းတွေမှာ သင်တဲ့ ကွန်ပျူတာသိပ္ပံ သင်ရိုး) စာမေးပွဲမှာ အကဲဖြတ် စစ်ဆေးတာ မရှိပါဘူး။
GPU က 3D မြင်ကွင်း တစ်ခုကို render (ပုံဖော်) လုပ်တဲ့အခါ ဒေတာက rendering pipeline လို့ ခေါ်တဲ့ အဆင့်တွေကို တစ်ဆင့်ပြီး တစ်ဆင့် ဖြတ်သွားပါတယ်:
- Vertex processing (ထောင့်စွန်း အမှတ်တွေကို တွက်ချက်ခြင်း): vertex (ထောင့်စွန်း အမှတ်) တစ်ခုစီရဲ့ 3D coordinate (တည်နေရာကို ပြတဲ့ ကိန်းဂဏန်း) တွေကို screen ပေါ်က 2D နေရာတွေအဖြစ် ပြောင်းပါတယ်။ လှည့်ခြင်း (rotation)၊ အရွယ်အစား ပြောင်းခြင်း (scaling) နဲ့ အဝေးအနီး မြင်ပုံ (perspective) တွေကို ထည့်တွက်ပါတယ်
- Rasterization (ပုံသဏ္ဌာန်တွေကို pixel အဖြစ် ပြောင်းခြင်း): ဂျီဩမေတြီ ပုံသဏ္ဌာန် (တြိဂံ) တွေကို screen ပေါ်က pixel တစ်ခုချင်းစီအဖြစ် ပြောင်းပါတယ်။ တြိဂံ တစ်ခုစီက ဘယ် pixel တွေကို ဖုံးလဲဆိုတာ ဆုံးဖြတ်ပါတယ်
- Fragment processing (pixel တစ်ခုစီရဲ့ အရောင်ကို တွက်ခြင်း): texture၊ အလင်းနဲ့ shading (အလင်းအမှောင် ပေးခြင်း) effect တွေကို ထည့်ပြီး pixel တစ်ခုစီရဲ့ နောက်ဆုံး အရောင်ကို တွက်ပါတယ်
- Display (ပြသခြင်း): ပြီးသွားတဲ့ frame ကို frame buffer ထဲ ရေးထည့်ပါတယ်။ Frame buffer ဆိုတာ screen ပေါ်မှာ ပြနေတဲ့ ပုံကို သိမ်းထားတဲ့ GPU memory ရဲ့ အပိုင်း တစ်ခုပါ။ အဲဒီကနေ monitor (ကွန်ပျူတာ screen) ဆီ ပို့ပါတယ်
အဆင့်တိုင်းမှာ အရာ အများကြီးကို parallel နဲ့ လုပ်ဆောင်ပါတယ်: အရင်ဆုံး vertex ထောင်ပေါင်းများစွာ၊ ပြီးမှ pixel သန်းပေါင်းများစွာပါ။ GPU တွေမှာ core အများကြီး လိုတာ ဒါကြောင့်ပါ။
ထပ်ဆောင်း လေ့လာစရာ: သီးသန့် အလုပ်တွေအတွက် GPU core များ
ဒီအပိုင်းက IB syllabus ထက် ကျော်လွန်တဲ့ အပိုင်းပါ။ ဒါကြောင့် IB စာမေးပွဲမှာ အကဲဖြတ် စစ်ဆေးတာ မရှိပါဘူး။
ခေတ်မီ GPU တွေမှာ သီးသန့် အလုပ်တွေအတွက် ဒီဇိုင်းထုတ်ထားတဲ့ core အမျိုးအစား အမျိုးမျိုး ပါပါတယ်:
- CUDA cores (NVIDIA) / Stream processors (AMD): တွက်ချက်မှု အမျိုးမျိုးကို ကိုင်တွယ်နိုင်တဲ့ general-purpose (အလုပ် အမျိုးမျိုးအတွက် သုံးနိုင်တဲ့) parallel processing core တွေပါ
- Tensor cores: AI နဲ့ machine learning မှာ သုံးတဲ့ matrix operation တွေအတွက် အထူး ဒီဇိုင်းထုတ်ထားပါတယ်။ Mixed-precision (တိကျမှု အဆင့် မတူတဲ့ ကိန်းတွေကို ရောသုံးတဲ့) matrix multiply-and-accumulate (မြှောက်ပြီး ရလဒ်ကို ပေါင်းထည့်ခြင်း) ကို operation တစ်ခုတည်းနဲ့ လုပ်နိုင်ပါတယ်
- RT cores: real-time ray tracing (အလင်းတန်းတွေရဲ့ လမ်းကြောင်းကို လိုက်တွက်ပြီး ပုံဖော်ခြင်း) အတွက် သီးသန့် hardware ပါ။ Ray tracing က အလင်းတန်းတွေ မျက်နှာပြင်တွေကို ထိပြီး ပြန်ကန်သွားတဲ့ လမ်းကြောင်းကို လိုက်တွက်ပြီး တကယ့်အတိုင်း ထင်ရတဲ့ အလင်းကို simulate (အတုလုပ်ပြ) လုပ်ပါတယ်
HL အပိုင်း: CPU နဲ့ GPU (A1.1.3)
CPU နဲ့ GPU နှိုင်းယှဉ်ချက်အကြောင်း အောက်က အပိုင်းကို HL အဆင့်မှာပဲ အကဲဖြတ် စစ်ဆေးပါတယ်။ SL (Standard Level) နဲ့ HL (Higher Level) ဆိုတာ IB Computer Science သင်တန်းရဲ့ အဆင့်နှစ်ဆင့်ဖြစ်ပြီး HL အပိုင်းတွေက ပိုနက်နက်ရှိုင်းရှိုင်း လေ့လာရတဲ့ အပိုင်းတွေပါ။
အသေးစိတ် နှိုင်းယှဉ်ချက်
| အချက် | CPU | GPU |
|---|---|---|
| ဒီဇိုင်း ရည်ရွယ်ချက် | Latency နည်းအောင် ဒီဇိုင်းထုတ်ထား (latency-optimised) | Throughput များအောင် ဒီဇိုင်းထုတ်ထား (throughput-optimised) |
| Core အရေအတွက် | ရှုပ်ထွေးတဲ့ core အနည်းငယ် (4-64) | ရိုးရှင်းတဲ့ core အများကြီး (ထောင်ပေါင်းများစွာ) |
| Core ရဲ့ ရှုပ်ထွေးမှု | ALU (တွက်ချက်ပြီး နှိုင်းယှဉ်ပေးတဲ့ CPU အပိုင်း) အပြည့်အစုံ၊ branch prediction (code ဘယ်လမ်းကြောင်း သွားမလဲ ကြိုခန့်မှန်းခြင်း)၊ out-of-order execution (instruction တွေကို program ထဲက အစဉ်အတိုင်း မစောင့်ဘဲ အဆင်သင့် ဖြစ်တာကို အရင် လုပ်ခြင်း) | ရိုးရှင်းတဲ့ ALU၊ in-order execution (instruction တွေကို program ထဲက အစဉ်အတိုင်းပဲ လုပ်ခြင်း) |
| လုပ်ဆောင်ပုံ model | Sequential / parallel thread (program ထဲမှာ သီးခြား run နေတဲ့ အလုပ်လမ်းကြောင်း) အနည်းငယ် | အလွန် အများကြီး parallel (SIMD/SIMT၊ SIMT: Single Instruction, Multiple Threads) |
| Memory ယူသုံးပုံ | Cache (CPU နဲ့ RAM ကြားက မြန်တဲ့ memory) အကြီးတွေ၊ latency နည်း | Bandwidth မြင့်၊ latency ပိုများ |
| အသင့်တော်ဆုံး အလုပ် | ရှုပ်ထွေးတဲ့ logic၊ branching (condition အရ code လမ်းကြောင်း ခွဲထွက်ခြင်း)၊ sequential အလုပ်တွေ | Dataset ကြီးကြီးပေါ်မှာ ထပ်ခါထပ်ခါ လုပ်ရတဲ့ တွက်ချက်မှုတွေ |
| ပါဝါ သုံးစွဲမှု ထိရောက်မှု | Core တစ်ခုချင်းအလိုက် ပိုကောင်း | Operation တစ်ခုချင်းအလိုက် ပိုကောင်း (parallel workload တွေအတွက်) |
| အလုပ် ညှိနှိုင်းပုံ | OS (operating system: ကွန်ပျူတာကို စီမံတဲ့ အဓိက software) က thread တွေကို ကိုင်တွယ် | GPU scheduler (အလုပ် ခွဲဝေပေးတဲ့ အစိတ်အပိုင်း) က warp / wavefront (အတူတူ run တဲ့ thread အုပ်စု) တွေကို ခွဲဝေ |
GPU တွေ branching မှာ ဘာကြောင့် အခက်တွေ့တာလဲ
GPU တွေက core အုပ်စု တစ်ခုလုံးမှာ instruction တစ်ခုတည်း ကို တစ်ပြိုင်နက် လုပ်ဆောင်ခြင်းနဲ့ မြန်နှုန်းကို ရပါတယ် (SIMD: Single Instruction, Multiple Data)။ Code ထဲမှာ if/else branch (condition အရ run မယ့် code လမ်းကြောင်း) တွေ အများကြီး ပါရင် အုပ်စုထဲက core တွေက မတူတဲ့ လမ်းကြောင်းတွေကို လိုက်ဖို့ လိုလာနိုင်ပါတယ်။ အုပ်စုက လမ်းကြောင်း နှစ်ခုကို တစ်ချိန်တည်း မလိုက်နိုင်လို့ တစ်ခုပြီးမှ တစ်ခု run ပါတယ်: if လမ်းကြောင်းကို ရွေးတဲ့ core တွေ အဲဒီ လမ်းကြောင်းကို run နေစဉ် အုပ်စုထဲက ကျန်တဲ့ core တွေက ဘာမှ မလုပ်ဘဲ စောင့်နေပါတယ်။ ပြီးမှ ကျန်တဲ့ core တွေက else လမ်းကြောင်းကို run ပြီး ပထမ core တွေက စောင့်နေပါတယ်။ အုပ်စုက လမ်းကြောင်း နှစ်ခုလုံး ပေါင်းထားသလောက် ကြာသွားလို့ processing power (တွက်ချက်နိုင်စွမ်း) ကို အလဟဿ ဖြုန်းမိပါတယ်။ ဒါကို branch divergence (core အုပ်စုထဲမှာ code လမ်းကြောင်း ကွဲထွက်သွားခြင်း) လို့ ခေါ်ပါတယ်။
Condition တွေ အများကြီး ပါတဲ့ အလုပ်တွေ (ဥပမာ code ကို compile (code တစ်ခုလုံးကို ကြိုတင် ဘာသာပြန်ခြင်း) လုပ်တာ၊ operating system ကို run တာ၊ ရှုပ်ထွေးတဲ့ စီးပွားရေး စည်းမျဉ်းတွေကို စီမံတာ) အတွက်တော့ CPU ရဲ့ အဆင့်မြင့် branch prediction နဲ့ out-of-order execution က CPU ကို အများကြီး ပိုထိရောက်စေပါတယ်။
SIMD သဘောတရား
Single Instruction, Multiple Data ဆိုတာ instruction တစ်ခုကို core အုပ်စု တစ်ခုဆီ ပို့လိုက်ပြီး core တစ်ခုစီက မတူတဲ့ ဒေတာ တစ်ခုစီပေါ်မှာ အလုပ်လုပ်တာကို ဆိုလိုပါတယ်။ GPU ကြီး တစ်ခုက ဒီလို အုပ်စု အများကြီးကို တစ်ပြိုင်နက် run ပြီး အုပ်စု တစ်ခုနဲ့ တစ်ခု မတူတဲ့ instruction တွေကို လုပ်နေနိုင်ပါတယ်။ ဥပမာ ပုံ တစ်ပုံကို ပိုလင်းအောင် လုပ်ဖို့ “pixel တန်ဖိုးကို 20 ပေါင်းပါ” ဆိုတဲ့ instruction ကို တစ်ကြိမ်ပဲ ပို့ပေမယ့် pixel ထောင်ပေါင်းများစွာပေါ်မှာ တစ်ပြိုင်နက် လုပ်ဆောင်ပါတယ်။ GPU တွေက image processing (ပုံတွေကို ပြင်ဆင် တွက်ချက်ခြင်း)၊ matrix သင်္ချာနဲ့ physics simulation တွေမှာ အလွန်တော်တာ ဒါကြောင့်ပါ: အဲဒါတွေ အားလုံးမှာ dataset ကြီးကြီးပေါ်မှာ တူညီတဲ့ operation ကို လုပ်ရလို့ပါ။
CPU နဲ့ GPU အတူတူ အလုပ်လုပ်ပုံ
GPU ကို သုံးတဲ့ program တစ်ခုက processor နှစ်ခုလုံးပေါ်မှာ run ပါတယ်။ CPU က program ကို run ပြီး GPU နဲ့ သင့်တော်တဲ့ အပိုင်းတွေကို GPU ဆီ လွှဲပေးပါတယ်။ GPU က အဲဒီ အပိုင်းတွေကို လုပ်ဆောင်ပြီး ရလဒ်တွေကို ပြန်ပေးပါတယ်။ စီမံရမယ့် အချက် သုံးချက် ရှိပါတယ်။
Task division (အလုပ် ခွဲဝေခြင်း)။ ဆုံးဖြတ်ချက်တွေ များပြီး အဆင့်တွေက တစ်ခုနဲ့ တစ်ခု မှီခိုနေတဲ့ အလုပ်တွေကို CPU က ကိုယ်တိုင် ဆက်လုပ်ပါတယ်: operating system ကို run တာ၊ file တွေ ဖတ်တာ၊ user ရဲ့ input (program ထဲ ထည့်ပေးတဲ့ ဒေတာ) ကို ကိုင်တွယ်တာနဲ့ နောက်ဘာ ဖြစ်မလဲ ဆုံးဖြတ်တာ စတာတွေပါ။ ဒေတာ အများကြီးပေါ်မှာ တူညီတဲ့ တွက်ချက်မှုကို လုပ်ရတဲ့ အလုပ်ကိုတော့ GPU ဆီ ပို့ပေးပါတယ်။
Data sharing (ဒေတာ မျှသုံးခြင်း)။ GPU က သူ ယူသုံးနိုင်တဲ့ ဒေတာပေါ်မှာပဲ အလုပ်လုပ်နိုင်ပါတယ်။
- သီးခြား graphics card (ကွန်ပျူတာထဲ ထည့်တပ်ရတဲ့ GPU ကတ်) မှာ ကိုယ်ပိုင် memory (VRAM၊ video RAM) ရှိပါတယ်။ CPU က input ဒေတာကို main memory (RAM: ပါဝါပိတ်ရင် ပျောက်တဲ့ အဓိက memory) ကနေ GPU ရဲ့ memory ဆီ နှစ်ခုကြားက connection (ချိတ်ဆက်ထားတဲ့ လမ်းကြောင်း) ပေါ်ကနေ copy ကူးပေးပါတယ်။ GPU က အဲဒီမှာ ဒေတာကို အလုပ်လုပ်ပြီး ရလဒ်တွေကို CPU သုံးဖို့ RAM ဆီ ပြန် copy ကူးပါတယ်။
- Copy ကူးတာ အချိန်ယူလို့ program တွေက တတ်နိုင်သမျှ နည်းနည်းပဲ copy ကူးပါတယ်။ နောက်ထပ် ပြန်လိုမယ့် ဒေတာကို အဆင့်တွေကြားမှာ GPU ရဲ့ memory ထဲမှာပဲ ထားထားပြီး ပြန်ရလာတာက ရလဒ် အသေးလေး တစ်ခုပဲ ဖြစ်လေ့ ရှိပါတယ်။
- ဖုန်း အများစုနဲ့ laptop တော်တော်များများမှာလို CPU နဲ့ chip တစ်ခုတည်းထဲမှာ ပါတဲ့ GPU က CPU နဲ့ main memory ကို မျှသုံးလေ့ ရှိပါတယ်။ Processor နှစ်ခုလုံးက ဒေတာ အတူတူကို ယူသုံးနိုင်လို့ buffer (ဒေတာ သိမ်းဖို့ ဖယ်ထားတဲ့ memory အပိုင်း) အတူတူကို မျှသုံးရင် သီးခြား copy ကူးစရာ မလိုအောင် လုပ်နိုင်ပါတယ်။ ပေးရတဲ့ အဖိုးကတော့ နှစ်ခုလုံးက memory တစ်ခုတည်းကို လုယူ သုံးရတာပါ။ အဲဒီ memory က graphics card ရဲ့ ကိုယ်ပိုင် VRAM ထက် ဒေတာကို ပိုနှေးနှေး ရွှေ့လေ့ ရှိပါတယ်။
Coordinating execution (လုပ်ဆောင်မှုကို ညှိနှိုင်းခြင်း)။ အလုပ်တွေရဲ့ အစဉ်ကို CPU က တာဝန်ယူ စီမံပါတယ်။
- CPU က GPU လုပ်ရမယ့် အလုပ်တွေကို queue (အရင်ထည့်တာ အရင်ထွက်တဲ့ တန်း) ထဲ ထည့်ပါတယ် (“ဒီဒေတာကို copy ကူးပါ”၊ “ဒီဒေတာပေါ်မှာ ဒီ တွက်ချက်မှုကို run ပါ” လို command (ညွှန်ကြားချက်) တွေပါ)။ ပြီးရင် မစောင့်ဘဲ ကိုယ့်အလုပ်ကို ဆက်လုပ်ပါတယ်။
- GPU က queue ထဲက အလုပ်တွေကို အစဉ်အတိုင်း လုပ်သွားပါတယ်။ Copy က memory တွေကြား ဒေတာကို ရွှေ့ပါတယ် (GPU တော်တော်များများမှာ ဒါကို သီးခြား copy unit (copy ကူးတာကို သီးသန့် လုပ်တဲ့ အစိတ်အပိုင်း) က လုပ်ပါတယ်)၊ တွက်ချက်မှုကိုတော့ GPU ရဲ့ core အများကြီးဆီ ခွဲဝေပေးပါတယ်။
- CPU က ရလဒ်ကို မသုံးခင် GPU အလုပ် ပြီးပြီဆိုတာ သိဖို့ လိုပါတယ်။ Program ထဲက သဘောတူထားတဲ့ နေရာမှာ CPU က စောင့်ပါတယ်၊ ဒါမှမဟုတ် GPU က အလုပ် ပြီးပြီလို့ signal (အချက်ပြမှု) ပေးပါတယ်၊ ဥပမာ interrupt (CPU ကို ခဏ ရပ်ခိုင်းတဲ့ signal) နဲ့ပါ။ စောလွန်းပြီး ဖတ်လိုက်တဲ့ ရလဒ်မှာ တန်ဖိုး အဟောင်းတွေ ရှိနေဦးမှာပါ။
ဥပမာ: ပုံတွေကို မှတ်မိတဲ့ model တစ်ခုကို train လုပ်ခြင်း။ Program တစ်ခုက အရွက်ဓာတ်ပုံ 40,000 ကနေ အပင် မျိုးစိတ်တွေကို မှတ်မိအောင် သင်ယူပါတယ်၊ တစ်ကြိမ်မှာ ဓာတ်ပုံ 250 စီ ယူပါတယ်။
| အဆင့် | CPU | GPU |
|---|---|---|
| 1 | Storage (ဒေတာ သိမ်းဆည်းရာ) ကနေ ဓာတ်ပုံ 250 ကို ဖတ်ပြီး decode လုပ်ကာ (ပုံ file ကို pixel တန်ဖိုးတွေအဖြစ် ပြန်ပြောင်းကာ) အရွယ်အစား ပြောင်းပါတယ် | အလုပ် ပေးတာကို စောင့်နေပါတယ် |
| 2 | Batch (တစ်ကြိမ်တည်း လုပ်ဆောင်ဖို့ စုထားတဲ့ ဒေတာ အစု) ကို GPU ရဲ့ memory ထဲ copy ကူးပြီး training step (train လုပ်တဲ့ အဆင့် တစ်ဆင့်) ကို queue ထဲ ထည့်ပါတယ် | Training step ကို စပါတယ် |
| 3 | GPU အလုပ်လုပ်နေစဉ် နောက်ထပ် ဓာတ်ပုံ 250 ကို ပြင်ဆင်ထားပါတယ် | ဓာတ်ပုံ 250 လုံးပေါ်မှာ တူညီတဲ့ တွက်ချက်မှုတွေကို parallel နဲ့ run ပါတယ်၊ model ရဲ့ weight (model သင်ယူထားတဲ့ ကိန်းဂဏန်း တန်ဖိုးများ) တွေက GPU memory ထဲမှာပဲ ရှိနေပါတယ် |
| 4 | ပြီးကြောင်း signal ကို စောင့်ပြီး ကိန်းဂဏန်း တစ်ခုတည်းကို ပြန် copy ကူးယူပါတယ်: ဒီ batch မှာ model ရဲ့ အဖြေတွေက အဖြေမှန်တွေနဲ့ ဘယ်လောက် ကွာနေလဲ ဆိုတာပါ | အဆင့် ပြီးကြောင်း signal ပေးပါတယ် |
| 5 | Batch တစ်ခုစီအတွက် အဆင့် 2 ကနေ 4 အထိ ထပ်လုပ်ပါတယ် (batch 160 ခုနဲ့ ဓာတ်ပုံ 40,000 လုံးကို တစ်ကြိမ် ပြည့်ပါတယ်)၊ ပြီးရင် train ပြီးသား weight တွေကို ပြန် copy ကူးပြီး file ထဲ သိမ်းပါတယ် | Batch တစ်ခုကို training step တစ်ဆင့်စီ run ပါတယ် |
အဆင့် 3 မှာ processor နှစ်ခုလုံး တစ်ချိန်တည်း အလုပ်လုပ်ပါတယ်။ ဒီလို အလုပ်တွေကို ထပ်တူ လုပ်တာက ဘာမှ မလုပ်ဘဲ စောင့်နေရတဲ့ အချိန် (idle time) ကို လျှော့ပေးပါတယ်။ ဒါပေမယ့် အဆင့် 1 နဲ့ 4 မှာလို processor တစ်ခုစီက တချို့ နေရာတွေမှာ စောင့်ရတုန်းပါပဲ။ အဆင့် 2 နဲ့ 4 က copy ကူးတာမှာလည်း ကုန်ကျစရိတ် ရှိပါတယ်။ ဒေတာ နည်းနည်း ဒါမှမဟုတ် တွက်ချက်မှု တိုတိုလေး ဆိုရင် copy ကူးတာက GPU ချွေတာပေးတဲ့ အချိန်ထက် ပိုကြာနိုင်ပြီး CPU တစ်ခုတည်းနဲ့ လုပ်ရင် ပိုစောစော ပြီးပါတယ်။
ကြည့်ရန်: Video များ
How GPUs render 3D graphics in real time - from polygons to pixels on your screen.
Threads, processes, and parallelism explained - key to understanding why GPUs use thousands of cores.
အဆင့်ဆင့် ရှင်းပြထားတဲ့ ဥပမာများ
ဥပမာ 1: ဘယ် Processor လဲ
အလုပ် တစ်ခုစီအတွက် CPU နဲ့ GPU ထဲက ဘယ်ဟာက ပိုသင့်တော်မလဲ ဆုံးဖြတ်ပြီး ဘာကြောင့်လဲ ရှင်းပြပါ။
| အလုပ် | အသင့်တော်ဆုံး processor | အကြောင်းပြချက် |
|---|---|---|
| Word processing (စာစီ စာရိုက်ခြင်း) | CPU | ရှုပ်ထွေးတဲ့ branching ပါတဲ့ sequential operation တွေ (စာလုံးပေါင်း စစ်တာ၊ format ချတဲ့ စည်းမျဉ်းတွေ)၊ parallelism (တစ်ပြိုင်နက် လုပ်နိုင်မှု) နည်းပါတယ် |
| Neural network တစ်ခုကို train လုပ်ခြင်း | GPU | Matrix မြှောက်ခြင်း အများကြီး ပါပါတယ်: weight သန်းပေါင်းများစွာပေါ်မှာ တူညီတဲ့ operation ကို parallel နဲ့ လုပ်ပါတယ် |
| Code ကို compile လုပ်ခြင်း | CPU | Code file တွေကြား ဘယ်ဟာက ဘယ်ဟာကို မှီခိုလဲ ဆိုတာကို ရှုပ်ရှုပ်ထွေးထွေး ခွဲခြမ်းစိတ်ဖြာရပါတယ်၊ branching အများကြီး ပါတဲ့ sequential အဆင့်တွေ ဖြစ်ပါတယ် |
| Real-time 3D rendering | GPU | Frame တိုင်းမှာ pixel သန်းပေါင်းများစွာကို တွက်ရပါတယ်၊ pixel တစ်ခုစီပေါ်မှာ တူညီတဲ့ lighting / shading တွက်ချက်မှုကို parallel နဲ့ လုပ်ပါတယ် |
သတိထားရမယ့် ပုံစံက: အလုပ် တစ်ခုမှာ ဒေတာ တန်ဖိုး အများကြီးပေါ်မှာ တူညီတဲ့ ရိုးရှင်းတဲ့ တွက်ချက်မှုကို ထပ်ခါထပ်ခါ လုပ်ရရင် GPU က သာပါတယ်။ ရှုပ်ထွေးတဲ့ ဆုံးဖြတ်ချက်တွေ၊ branching ဒါမှမဟုတ် တစ်ဆင့်နဲ့ တစ်ဆင့် မှီခိုနေမှု (sequential dependency) တွေ ပါရင် CPU က သာပါတယ်။
ဥပမာ 2: GPU Parallelism ကို ကျောင်းနဲ့ နှိုင်းယှဉ်ကြည့်ခြင်း
ကွာခြားချက်ကို နားလည်ဖို့ ကျောင်းက ဥပမာ တစ်ခုနဲ့ နှိုင်းယှဉ်ကြည့်ရအောင်:
-
CPU နည်းလမ်း = essay (စာစီစာကုံး) 30 ကို တစ်ခုပြီးမှ တစ်ခု အမှတ်ပေးနေတဲ့ ကျွမ်းကျင်တဲ့ ဆရာ 1 ယောက်။ Essay တစ်ခုစီကို သေသေချာချာ ဖတ်ရပြီး အသေးစိတ် ချိန်ဆ ဆုံးဖြတ်ရကာ essay တစ်ခုစီအတွက် မတူတဲ့ feedback (အကြံပြုချက်) ပေးရပါတယ်။ ဆရာက essay တစ်ခုချင်းအတွက် မြန်ပါတယ် (ရှုပ်ထွေးတဲ့ စဉ်းစားမှု)၊ ဒါပေမယ့် sequential (တစ်ခုပြီးမှ တစ်ခု) အလုပ်လုပ်ရပါတယ်။ စုစုပေါင်း အချိန်: essay 30 ခု၊ တစ်ခုကို 10 မိနစ်စီ = 300 မိနစ်။
-
GPU နည်းလမ်း = လက်ထောက် ဆရာ (teaching assistant၊ TA) 1,000 ယောက် က ရိုးရိုး multiple-choice (အဖြေ ရွေးရတဲ့) quiz 1 ခုစီကို တစ်ပြိုင်နက် အမှတ်ပေးနေတာ။ Quiz တိုင်းက ပုံစံ တူညီပြီး အဖြေတွေကို answer key (အဖြေမှန် စာရင်း) နဲ့ တိုက်စစ်ရုံပဲ လိုပါတယ် (operation တူ၊ ဒေတာ မတူ)။ TA တစ်ယောက်ချင်းက ရှုပ်ထွေးတဲ့ အလုပ်တွေမှာ ကျွမ်းကျင်တဲ့ ဆရာထက် နှေးပါတယ်၊ ဒါပေမယ့် အလုပ်ကို parallel နဲ့ လုပ်ပါတယ်။ စုစုပေါင်း အချိန်: quiz 1,000 ခုကို 1 မိနစ်ခန့်။
အဓိက နားလည်ရမယ့် အချက်: ယေဘုယျအားဖြင့် GPU တွေက CPU တွေထက် “ပိုမြန်တာ” မဟုတ်ပါဘူး။ သတ်မှတ်ထားတဲ့ အလုပ် အမျိုးအစားတွေ မှာပဲ ပိုမြန်တာပါ: core အများကြီးဆီ ခွဲဝေပေးလို့ရတဲ့ ရိုးရှင်းပြီး ထပ်ခါထပ်ခါ လုပ်ရတဲ့ operation တွေပါ။
Quick Check (အမြန် စစ်ဆေးမေးခွန်း)
Q1. CPU နဲ့ နှိုင်းယှဉ်ရင် GPU ရဲ့ အဓိက အားသာချက်က ဘာလဲ။
Q2. အောက်က အလုပ်တွေထဲမှာ GPU နဲ့ လုပ်ဖို့ အနည်းဆုံး သင့်တော်တဲ့ အလုပ်က ဘယ်ဟာလဲ။
Q3. SIMD ဆိုတဲ့ အတိုကောက်ရဲ့ အရှည်က ဘာလဲ။
Q4. AI model တွေကို train လုပ်ဖို့ GPU တွေကို ဘာကြောင့် ကျယ်ကျယ်ပြန့်ပြန့် သုံးကြတာလဲ။
Spot the Error (အမှား ရှာခြင်း)
ကျောင်းသား တစ်ယောက်က စာမေးပွဲအတွက် GPU architecture ကို ဒီလို ဖော်ပြ ရေးထားပါတယ်။ Line တစ်ကြောင်းမှာ အများ မှားတတ်တဲ့ အထင်မှား တစ်ခု ပါပါတယ်။ မှားနေတဲ့ line ကို ရွေးပါ၊ ပြီးရင် ပြင်နည်းကို ရွေးပါ။
Line တွေရဲ့ အဓိပ္ပာယ်: (1) GPU ဆိုတာ parallel computation အတွက် ဒီဇိုင်းထုတ်ထားတဲ့ သီးသန့် processor ပါ။ (2) GPU တွေကို graphics rendering၊ AI training နဲ့ သိပ္ပံ simulation တွေမှာ သုံးပါတယ်။ (3) GPU မှာ CPU ထက် အရေအတွက် နည်းပေမယ့် ပိုအားကောင်းတဲ့ core တွေ ရှိလို့ အရာအားလုံးမှာ ပိုမြန်ပါတယ်။ (4) GPU တွေက SIMD (Single Instruction, Multiple Data) လို့ ခေါ်တဲ့ processing model ကို သုံးပါတယ်။ (5) GPU ရဲ့ မြင့်တဲ့ memory bandwidth ကို latency ထက် throughput အတွက် ဦးစားပေး ဒီဇိုင်းထုတ်ထားပါတယ်။
ဒီ line အတွက် မှန်ကန်တဲ့ ပြင်နည်းကို ရွေးပါ:
Fill in the Blanks (ကွက်လပ် ဖြည့်ခြင်း)
ကွက်လပ် တစ်ခုစီကို ဖြည့်ပြီး GPU architecture ဖော်ပြချက်ကို ပြည့်စုံအောင် လုပ်ပါ။
ကွက်လပ်ပါတဲ့ စာကြောင်းတွေက English နဲ့ ဖြစ်ပြီး ကွက်လပ်တွေကိုလည်း English လို ရိုက်ထည့်ရပါမယ်။ စာကြောင်းတွေရဲ့ အဓိပ္ပာယ်က အောက်ပါအတိုင်းပါ:
- GPU မှာ ရိုးရှင်းတဲ့ core …… ရှိပြီး CPU မှာတော့ ရှုပ်ထွေးတဲ့ core …… ရှိပါတယ်။
- GPU တွေကို latency ထက် …… အတွက် ဦးစားပေး ဒီဇိုင်းထုတ်ထားပါတယ်။
- GPU တွေ သုံးတဲ့ processing model ကို …… လို့ ခေါ်ပါတယ် (ဒေတာ တန်ဖိုး အများပေါ်မှာ instruction တစ်ခုတည်း)။
- GPU ရဲ့ အဓိက အသုံးချမှု နှစ်ခုက …… model တွေကို train လုပ်တာနဲ့ …… graphics ကို render လုပ်တာပါ၊ ဘာလို့လဲဆိုတော့ အဲဒါတွေမှာ dataset ကြီးကြီးပေါ်မှာ ထပ်ခါထပ်ခါ တွက်ချက်ရလို့ပါ။
GPU အလုပ်လုပ်ပုံ အနှစ်ချုပ်ကို ပြည့်စုံအောင် ကွက်လပ်တွေ ဖြည့်ပါ:
A GPU contains of simple cores, while a CPU has
complex cores.
GPUs are optimised for rather than latency.
The processing model used by GPUs is called
(same instruction on multiple data points).
Two major GPU applications are training models
and rendering graphics, because these involve
repetitive calculations on large datasets.
Predict the Output (output ကို ကြိုခန့်မှန်းခြင်း)
Program တစ်ခုက နာမည် 1,000 ပါတဲ့ စာရင်းကို အက္ခရာစဉ်အတိုင်း sort (အစဉ်တကျ စီ) လုပ်ဖို့ လိုပါတယ်။ Condition ပါတဲ့ comparison (တန်ဖိုး နှစ်ခုကို နှိုင်းယှဉ်ခြင်း) တွေနဲ့ string (စာသား) operation တွေ အများကြီး ပါပါတယ်။ Comparison တစ်ခုစီက အရင် swap (တန်ဖိုး နှစ်ခု နေရာချင်း လဲခြင်း) တွေရဲ့ ရလဒ်ပေါ် မူတည်ပါတယ်။ ဒီအလုပ်အတွက် CPU နဲ့ GPU ဘယ်ဟာက ပိုသင့်တော်မလဲ။
သင့်အဖြေကို ရိုက်ထည့်ပါ:
ဓာတ်ပုံ ပြင်တဲ့ application (သုံးစွဲသူအတွက် ရေးထားတဲ့ software) တစ်ခုက 4K ပုံ (pixel 8 သန်းကျော်) ထဲက pixel တိုင်းကို ပိုလင်းအောင် လုပ်ဖို့ လိုပါတယ်: colour channel (pixel ရဲ့ အနီ၊ အစိမ်း၊ အပြာ စတဲ့ အရောင် တန်ဖိုး တစ်ခုစီ) တစ်ခုစီကို 20 ပေါင်းရပါမယ်။ CPU နဲ့ GPU ဘယ်ဟာက ပိုသင့်တော်မလဲ။
သင့်အဖြေကို ရိုက်ထည့်ပါ:
Practice Exercises (လေ့ကျင့်ခန်းများ)
[6 marks] လို mark allocation (မေးခွန်း တစ်ခုစီအတွက် ပေးတဲ့ အမှတ်) တွေက IB Computer Science စာမေးပွဲ ပုံစံအတိုင်း ပေးထားတာပါ၊ ဥပမာ [6 marks] ဆိုတာ 6 မှတ်ပါ။ IB သင်တန်း မတက်တဲ့သူတွေကတော့ အဖြေ ဘယ်လောက် အသေးစိတ် ရေးရမလဲ ချိန်ကြည့်ဖို့ လမ်းညွှန်အဖြစ် သုံးနိုင်ပါတယ်။
Core (အခြေခံ အဆင့်)
-
[Core]GPU[6 marks]မတူတဲ့ လက်တွေ့ အခြေအနေ သုံးခုမှာ GPU ရဲ့ အခန်းကဏ္ဍကို Describe (ဖော်ပြရှင်းပြပါ)။ တစ်ခုစီအတွက် GPU က ဘယ်လို ဒေတာမျိုးကို parallel နဲ့ လုပ်ဆောင်လဲ၊ CPU တစ်ခုတည်းနဲ့ဆိုရင် ဘာကြောင့် နှေးလွန်းမလဲ ဆိုတာ ရှင်းပြပါ။ -
[Core]GPU vs CPU[6 marks](HL) CPU နဲ့ GPU architecture ကြားက အဓိက ကွာခြားချက် သုံးခုကို List (ရှင်းပြချက် မပါဘဲ အဖြေတိုတွေကို စာရင်းလိုက် ပေးပါ)။ ကွာခြားချက် တစ်ခုစီက processor ကို ဘယ်လို အလုပ်တွေနဲ့ အသင့်တော်ဆုံး ဖြစ်စေလဲ ဆိုတာ ရှင်းပြပါ။ -
[Core]GPU[4 marks]ခေတ်မီ ဂိမ်းတွေအတွက် GPU တွေ ဘာကြောင့် မရှိမဖြစ် လိုအပ်လဲ Explain (ရှင်းပြပါ)။ Frame တစ်ခုမှာ တွက်ရမယ့် pixel အရေအတွက်နဲ့ parallel processing ဘာကြောင့် လိုအပ်လဲ ဆိုတာကို ထည့်ပြောပါ။
Extension (တိုးချဲ့ အဆင့်)
-
[Extension]GPU vs CPU[6 marks](HL) ကျောင်း တစ်ကျောင်းမှာ ကျောင်းအပ် မှတ်တမ်းတွေကို ကိုင်တွယ်၊ ကျောင်းသား အမှတ်စာရင်း (report card) တွေ ထုတ်ပေးပြီး ကျောင်းသား တစ်ယောက်ချင်းရဲ့ query (ဒေတာ ရှာဖွေ တောင်းဆိုမှု) တွေကို လုပ်ဆောင်ပေးတဲ့ ကျောင်းသား database (ဒေတာ သိမ်းဆည်းတဲ့ စနစ်) စနစ် တစ်ခု run ထားပါတယ်။ GPU ထည့်လိုက်ရင် performance (စွမ်းဆောင်ရည်) သိသိသာသာ တိုးမလား Evaluate (အားသာချက်နဲ့ အားနည်းချက်တွေကို ချိန်ဆပြီး အကဲဖြတ်ပါ)။ ပါဝင်တဲ့ operation အမျိုးအစားတွေကို ခွဲခြမ်းစိတ်ဖြာပြီး သင့်အဖြေကို Justify (ဘာကြောင့် ရွေးတာလဲ အကြောင်းပြချက်နဲ့ ပြပါ) လုပ်ပါ။ -
[Extension]GPU vs CPU[6 marks](HL) ပုံ pixel 1 သန်းကို (ဥပမာ ဓာတ်ပုံ တစ်ပုံကို အရောင်ကနေ greyscale (အဖြူ၊ အမည်း၊ မီးခိုးရောင် အဆင့်ဆင့်) ပြောင်းတာ) CPU နဲ့ GPU တစ်ခုစီက ဘယ်လို လုပ်ဆောင်မလဲ Compare (နှစ်ခုလုံးကို ထည့်ပြီး တူတာနဲ့ ကွာတာကို ဖော်ပြပါ)။ Processor တစ်ခုစီ သုံးမယ့် နည်းလမ်းကို Describe လုပ်ပြီး ကြာချိန် ဘယ်လောက် ကွာမလဲ ခန့်မှန်းပါ။
Challenge (စိန်ခေါ်မှု အဆင့်)
-
[Challenge]GPU vs CPU[8 marks](HL) ကုမ္ပဏီ တစ်ခုက နေ့ဘက်မှာ AI model တစ်ခုကို train လုပ်ချင်ပြီး ရုံးသုံး software တွေ (email၊ spreadsheet၊ word processing) ကိုလည်း တစ်နေ့လုံး run ထားချင်ပါတယ်။ CPU နဲ့ GPU နှစ်ခုလုံးကို ထိထိရောက်ရောက် သုံးတဲ့ စနစ်တစ်ခုကို Design (အစီအစဉ် ဒါမှမဟုတ် model တစ်ခု ရေးဆွဲပါ) လုပ်ပါ။ Workload အမျိုးအစား တစ်ခုစီအတွက် processor တစ်ခုစီရဲ့ အခန်းကဏ္ဍကိုလည်း explaining (ရှင်းပြရင်း) ရေးပါ။ -
[Challenge]GPU vs CPU[7 marks](HL)if/elsebranch တွေနဲ့ sequential dependency တွေ အများကြီး ပါတဲ့ program တစ်ခုကို GPU က ဘာကြောင့် ကောင်းကောင်း မလုပ်နိုင်မလဲ Explain လုပ်ပါ။ သင့်အဖြေမှာ SIMD နဲ့ branch divergence အယူအဆကို သုံးပြီး ဒီလို program ရဲ့ တိကျတဲ့ ဥပမာ တစ်ခု ပေးပါ။
ဆက်စပ် ခေါင်းစဉ်များ
- အရင် လေ့လာထားရမယ့် ခေါင်းစဉ်: CPU Architecture (CPU ရဲ့ ဖွဲ့စည်းပုံ): GPU နဲ့ မနှိုင်းယှဉ်ခင် CPU ရဲ့ အစိတ်အပိုင်းတွေနဲ့ FDE cycle (ညွှန်ကြားချက်ကို ယူ၊ နားလည်၊ လုပ်ဆောင်တဲ့ စက်ဝန်း) ကို နားလည်ထားပါ
- ဆက်စပ် ခေါင်းစဉ်: Logic Gates (logic gate များ): logic gate (digital circuit တွေကို တည်ဆောက်တဲ့ အခြေခံ အစိတ်အပိုင်း) တွေက CPU core ရော GPU core ပါ တည်ဆောက်ထားတဲ့ အခြေခံ အုတ်မြစ်တွေပါ
- နောက်ထပ် လေ့လာမယ့် ခေါင်းစဉ်: Cloud Computing (အင်တာနက်ကနေ ငှားသုံးတဲ့ ကွန်ပျူတာ resource): cloud provider (cloud ဝန်ဆောင်မှု ပေးတဲ့ ကုမ္ပဏီ) တွေက AI/ML workload တွေအတွက် GPU instance (ငှားသုံးလို့ရတဲ့ GPU ပါ virtual server) တွေကို ပေးပါတယ် (ဥပမာ AWS၊ Google Cloud)
- နောက်ထပ် လေ့လာမယ့် ခေါင်းစဉ်: Applications Layer (application အလွှာ): machine learning application တွေက training နဲ့ inference (train ပြီးသား model နဲ့ ခန့်မှန်းချက် ထုတ်ခြင်း) အတွက် GPU acceleration ကို အားကိုးပါတယ်