මේ කොටස විශේෂයෙන් වෙන්කරලා තියෙන්නේ GPU හා RAM එක වෙනුවෙන්. මුලින් GPU එකගැන කියන්නම්.
GPU
ඇන්ඩ්රොයිඩ් ෆෝන් වල Cpu එක පස්සේ ෆෝන් එකේ වඩා වැදගත්ම පාර්ට් එකක් තමා GPU එක. ඩෙස්ක්ටොප් වල වගේම තමා ෆෝන් වල GPU. ඩෙස්ක්ටොප් වල තියෙනවා ඔන්බෝඩ් හා සෙපරේට් විදිහට gpu ටයිප් 2ක්. ඔන්බෝඩ් කියන්නේ GPU සර්කිට් එක මදර් බෝඩ් එකේමයි තියෙන්නේ. මේ ඔන්බෝඩ් ඒවයි වෙනම මෙමරි එකක් නෑ. රැම් එක පාවිච්චි කරනවා ඒ වෙනුවට. නමුත් සෙපරේට් ඒවා එහෙම නෑ. ඒවගේ වෙනම මෙමරි එකක් තියනව.
GPU කියන්නේ GRAPHICS PROCESSING UNIT කියන එක. මේකෙන් වෙන්නේ ඉතින් හැමෝම දන්න විදිහට 3D ග්රැෆික් සැකසීම්. මතක තියාගන්න 2D ඒකිව්වේ ද්විමාන ග්රැෆික් සැකසුම් බොහොමයක් වෙන්නේ CPU එකෙන්. ඒකට GPU එකේ ලොකු සම්බන්ධයක් නෑ.
ඇන්ඩ්රොයිඩ් ෆෝන් වල තියෙන්නේ ඔන්බෝඩ් වර්ගේ GPU. මෙවට වෙනමම මෙමරි එකක් නෑ. සිස්ටම් එකේ රැම් එක තමා පාවිච්චි වෙන්නේ.
මේ GPU වැඩකරන හැටි මම කෙටියෙන් කියන්නම්.
මුල්ම යුගයේ ඒකිව්වේ DOS පාවිච්චි වුනු කාලේ සොෆ්ට්වෙයා වලට පුලුවන් උනා සෘජුව හාඩ්වෙයා වලට අණකිරීම කරන්න. මේකට හාඩ්වෙයා ගැන පට්ට දැනුමක් ඕන. නමුත් වින්ඩෝස් වගේ ඕඑස් එකකදී මේදේ බෑ. මෙහෙයුම් පද්ධතිය හරහා ඕන හාඩ්වෙයා වලට අණු කරන්න. මේ නිසා වින්ඩෝස් වලදි සෑම සොෆ්ට්වෙයා එකකටම අවශ්ය පොදු හාඩ්වෙයා වලට අණ කරන්න පුලුවන් වෙන ක්රමයක් අවශ්ය උනා. මේකේ ප්රථිපලයක් ලෙස DIRECT X බිහිවෙනවා. පස්සේ සෑම GPU නිශ්පාදකයෙක්ම මේ DIRECT X පාවිච්චි කරන්න ගත්තා. අද වෙද්දී මේක සම්මතයක් වෙලා. මේ විදිහට වෙනත් මෘදුකාංග කොටසක් හරහා හාඩ්වෙයා වලට අණ කරන මේ මෘදුකාංග කොටසට කියනවා API කියලා. (මේගැන පස්සේ සොෆ්ට්වෙයා කොටසින් වැඩි පැහැදිලි කිරීම් කරන්නම්)
මේ DIRECT X වල තියනව කොටස් කිහිපයක්. 3D ප්රොසෙසින් වලට Direct3D වගේ API කිහිපයක්ම. මේකේ තියන 3D හා 2D ප්රොසෙසින් API වලට සමාන API එකක් තමා OPEN GL කියන්නේ.
මේ OpenGL වල ක්රොස් ප්ලැට්ෆෝම්, ඒකිව්වේ විවිධ හාඩ්වෙයා සොෆ්ට්වෙයා වල වෙනසකින් තොරව පාවිච්චි කරන්න පුලුවන් API එක තමා OpenGL කියන්නේ.
මෑතකදී (2015දී) Direct3D 12 වලට සමානව OpenGL වෙනුවට ආපු API එක තමා Vulcan කියන්නේ. මේක opengl වලට වඩා ගොඩක් වේගවත් වගේම තමා මේක බොහොම කාර්යක්ශම එකක්. නමුත් තාම opengl අයින් වෙලා නෑ . වුල්කන් තියනවනම් ඕපන් ජීඑල් තියනවම තමා.
වඩා පාවිච්චි වෙන OpenglES වල වර්ශන් කිහිපයක් තියනවා. මේ වර්ශන් වල විවිධ වෙනස්කම් තියනවා. 2.0 , 3.0 , 3.1 , 3.2 වගේ. (අලුත් එක 4.5) වුල්කන් නං අලුත් නේ තාම ඉතින් 1.0 තමා.
ඇන්ඩ්රොයිඩ් 7.0 වලින් තමා මුලින්ම මේ Vulcan API එකට සපෝට් කරන්න පටන් ගත්තේ. නමුත් වුල්කන් සපෝට් වෙන්න Nougat තිබිලා මදි GPU එකත් වුල්කන් සපෝට් වෙන්න ඕන.
මං තව පැහැදිලි කරන්නම් කොහොමද මේ GPU එකෙන් ග්රැෆික් ගොඩනගන්නේ කියලා.
මූලිකව ගත්තම ග්රැෆික් ගොඩනැගීම කොටස් 2කින් වෙනවා. මේ ගොඩනැගීම කරන්නේ Shaders වලින්.
- Vertex Shader වස්තුවල මූලික හැඩය ගොඩනැංවීම
- Pixel Shader වස්තුවල පාට, සෙවනැලි, මතුපිට ගොඩනැංවීම
මේ Vertex Shader වලින් කරන දේ බොහොම සරලයි. අපි දකින සෑම දෙයක්ම ගොඩනැංවිලා තියෙන්නේ සරල රේඛා එකතුවෙලා. මේ රේඛා ගොඩනැගීම තමා Vertex Shader එකෙන් වෙන්නේ. මැත්ස් කරපු අය දෛශික දන්නවනේ. ත්රිමාණයේ දෛශික ගොඩනැගීම තමා හරියටම වෙනදේ. සරල රේඛාවක දෛශික නිරූපණය a(x,y,z) හා |a|=N ආකාරයට. GPU වලින් ත්රිමාන පරිසරය ගොඩනගන්නේ ඉතින් ත්රිමාණයේ. ඒකයන්නේ XYZ අවකාශයක. මේකේ ඕනම සරල රේඛා ඛන්ඩයක් දෛශිකයකින් දක්වන්න පුලුවන්. දෛශික බිලියන ගනනකින් තමා ගේම් එකක කාර් එකක හැඩය වගේ දෙයක් ගොඩනැගෙන්නේ.
නමුත් Pixel Shader එක අතිශය සංකීර්ණයි. Vertex Shader එකෙන් ගොඩනැගෙන්නේ මොඩල් එක විතරයි. පික්සල් ශේඩර් එකෙන් තමා අනිත් සේරම අපි දකින කොටස් වෙන්නේ. පාට,සෙවනැලි,පරාවර්තන,පාරදෘෂ්යබව වගේ ඒවා.මේ Pixel Shader පැහැදිලි කරන්න නං පොතක් ලියන්න ඕන.
මේ Pixel & Vertex Shader වලත් එකඑක වර්ශන් එනවා. සෑම GPU එකක්ම සෑම වර්ශන් එකටම සපෝට් නෑ. 1.0/2.0/3.0/4.0/5.0/6.0 වගේ වර්ශන් එනවා.
GPU එකෙන් වෙන්නේ මේ Shadesz ප්රොසෙසින් වෙන එක.
මම මුලින් කිව්වා ඇන්ඩ්රොයිඩ් GPU වලට වෙනම මෙමරි එකක් නෑ කියලා. ඉතින් ඒනිසා GPU එකේ මෙමෙරි පවර් එක රැම් එක මත තියෙන්නේ. GPU එකට මුලු රැම් එකම පාවිච්චි කරන්න බෑ. නමුත් රැම් එක වැඩි තරමට හොදයි.
මේ GPU වලත් තියෙනවා CPU වල වගේ Core. නමුත් CPU වගේ නෙවේ මේ GPU වල තියෙන්නේ Shader Core. (මං දැක්ක කෙනෙක් කියලා තිබ්බා ඇපල් වල GPU එක මල්ටි කෝ ඇන්ඩ්රොයිඩ් වල සින්ගල් කෝ කියලා. පව් ඉතින්)
දැනට තියන ප්රසිද්ධම Mobile Phone GPU වර්ග නිශ්පාදකයන් පහල තියනවා.
- NVidia
- ARM
- Qualcomm
- Imagination
(ඔව් ඔව් ඇපල් නෑ තමා. එයාලා පාවිච්චි කරන්නේ Imaginationලගේ ඒවා)
මේ නිශ්පාදකයන් හදන GPU පහල තියෙනවා
- NVidia – Tegra
- ARM – Mali
- Qualcomm – Adreno
- Imagination – PowerVR
මේ සේරම අතරින් Most PowerFull එක තමා NVidia Tegra. මේවා තියෙන්නේ Nvidia Shield ටීවී එකෙයි ටැබ් එකෙයි. ඒදෙකම ඇන්ඩ්රොයිඩ්.
Tegra X1,P1 වගේ GPU කීපයක් තියනවා.
ඊලග අනිත් 3න් දෙනාගේ එවා අතරින් කව්ද හොදම කියන එක ඉතින් මට කියන්න බෑ. නමුත් එක එක්කෙනාගේ හොදම GPU ගැන ටිකක් කියන්නම්.
ARM Mali
(මෙයාලම තමා ARM Processors හදන්නේ)
- Mali-G77
- Mali-T860 & T880
- Mali-T760
- Mali-T628
- Mali-T624
G71 GPU එක ටිකක් විශේෂයි. මේකේ Core 32ක් තියන වර්ශන් එකක් උනත් හදන්න පුලුවන්!
මේ මාලි GPU වල සාමාන්යයෙන් නමේ අගට MP කියලා කොටසක් තියෙනව. ඒකේ අගින් තියන අංකයෙන් කියන්නේ ඒකේ තියන Core ගාන. (Eg:- Mali-G71 MP8 මේකේ Core 8යි). මාලි GPU ගොඩක් පාවිච්චි වෙනවා සෑම හුවාවි හා හොනර් ෆෝන් එකකම වගේ. සැම්සන්ග් එහෙමත් Mali තමා පාවිච්චි කරන්නේ.
Qualcomm Adreno
මේක තමා Snapdragon SoC එක තියන ෆෝන් වල එන්නේ. පහල GPU එකේ ඉස්සරහි ඒක එන SoC එක දාලා ඇති.
- Adreno 418 Snapdragon 808
- Adreno 420 Snapdragon 805
- Adreno 430 Snapdragon 810
- Adreno 530 Snapdragon 820
- Adreno 540 Snapdragon 835
- Adreno 630 Snapdragon 845
- Adreno 640 Snapdragon 855
- Adreno 650 Snapdragon 865
Adreno 540 ගැන ඉතින් අමුතුවෙන් කියන්න ඕන නෑනේ.පට්ට Mali G71 එක්ක ටොප් ලෙවල් එකේ ඉන්නවා.
>>>Imagination PowerVR<<<
මේක ගොඩක් පාවිච්චි වෙන්නේ ඇපල් ෆෝන් වල. සැම්සන්ග් වලත් තියෙනවා.
මේක ඇන්ඩ්රොයිඩ් වලට ඒහැටි ගෑවෙන්නේ නැති නිසා ඒහැටි දෙයක් කියන්න යන්නේ නෑ.
ෆෝන් එකක් ගනිද්දී ඔය GPU වලින් එකක් තියන එකක්වත් ගන්න. නැත්තං පස්සේ ගේම් ස්ලෝ කියලා කෑගහන්න වෙන්නේ.
දැං එමු RAM එකට (RAM = Random Access Memory)
රැම් එක ගැන මොනාකියන්නද මංදා. කොහොම හරි රැම් එකෙත් එක එක වර්ශන් එනවා. LPDDR විදිහට. දැන් නං LPDDR4X තමා මෝස්ට් පවර් ෆුල්. 1.8GHz වගේ ඒකේ ස්පීඩ් එක.
සාමාන්යයෙන් ඇන්ඩ්රොයිඩ් ෆෝන් එකකට (Android 5.0 and UP) අවම ලෙස තිබිය යුතු රැම් එක 2GB කියලා කියන්න පුලුවන්. නමුත් ඊට වැඩි නං හොදයි. (කොහොම නමුත් මගේ පෞද්ගලික මතයනං ඇන්ඩ්රොයිඩ් ෆෝන් එකකට 8GB තමා උපරිමේ. ඊට වඩා වැඩි වුනාට තේරුමක් නෑ කියලා තමා මම හිතන්නේ. හැබැයි Honor එකේ CEO කියනවා 4GB උනත් ඇතිලු. ඇත්ත ඉතින් මොනාකරන්නද ඊට වැඩි මෙමරි එකකින්. මොකෝ 3D Rendering හරි Algorithm Analysis කරන්නද?)
රැම් එක ගැන එච්චරයි ඔන්න.
ඊලග කොටස CAMERA ගැන වෙන්කරලා තියෙන්නේ. ඔන්න කට්ටිය කෙල ගන්න එක.
(වැරදි තියෙනවා නං කියන්න. ඕගොල්ලන්ගේ අදහස් යෝජනා දෙන්න. අඩුමගානේ කමෙන්ට් එකක් වත් දාන්න. අනිත් අයටත් කියවන්න ටැග් කරන්න)