අපි කවුරුත් දන්නවා වර්තමාන පරිගණක වැඩ කරන්නේ කොහොමද කියලා. ඔයා ලියන Java කෝඩ් එකක් වුණත්, Python script එකක් වුණත් අවසානයේදී processor එක ඇතුලට යන්නේ 0 සහ 1 කියන බිට්ස් (Bits) විදියටයි. මේකට අපි කියනවා Von Neumann Architecture එක කියලා. හැම දත්තයක්ම එක්කෝ 32-bit, නැත්නම් 64-bit අගයන් විදියට තමයි මතකයේ ගබඩා වෙන්නේ. මේ ක්රමය ගිය ශතවර්ෂයේ ඉඳන් අපි පාවිච්චි කරන, අපිට හුරුපුරුදු ක්රමයයි.
හැබැයි ඔයා කවදාහරි හිතලා තියෙනවද මිනිස් මොළය වැඩ කරන්නේ මේ විදියටද කියලා? අපේ මොළයේ "0 සහ 1" කියලා වෙනම වෙන් වුණු මතක ගබඩාවල් නෑ. RAM එකක් නෑ, Hard Disk එකක් නෑ. මොළයේ එක සංකල්පයක් (උදාහරණයක් විදියට "ඇපල් ගෙඩියක්" කියන රූපය, එහි සුවඳ, රස) මතක තියාගන්නේ නියුරෝන (Neurons) බිලියන 86 ක එකතුවකින් හැදෙන දැවැන්ත ජාලයක රටාවක් (Pattern) විදියටයි. අන්න ඒ ස්වභාවික රටාව කෘතිමව පරිගණක තාක්ෂණයට ගේන්න හදන, ලංකාවේ තබා ලෝකයේවත් ප්රධාන පෙළේ මාධ්යයක තවම ගැඹුරින් කතා නොකරපු අතිශය රහසිගත සහ දියුණු විද්යාත්මක මාතෘකාවක් තමයි Hyperdimensional Computing (HDC) කියන්නේ.
Pentti Kanerva කියන ශ්රේෂ්ඨ විද්යාඥයා විසින් 1990 ගණන් වලදී අඩිතාලම දාපු මේ සංකල්පය අද වෙද්දී Edge AI, Robotics සහ Bioinformatics කියන ක්ෂේත්ර උඩුයටිකුරු කරන්න පටන් අරන්. අද KP Tech Gear මේ Mega Deep Dive ලිපියෙන් අපි කතා කරන්නේ, සාමාන්ය පරිගණක ක්රමවේද සම්පූර්ණයෙන්ම අභියෝගයට ලක් කරමින් බිහිවෙන්න යන මේ අපූරු තාක්ෂණය ගැන පතුලටම බහිමින්. විනාඩි 30ක් වෙන් කරගන්න, මේක ඔයාගේ Tech ජීවිතය වෙනස් කරන ලිපියක් වේවි!
🧠 1. මොකක්ද මේ Hyperdimensional Computing (HDC) කියන්නේ?
සරලවම කිව්වොත්, Hyperdimensional Computing කියන්නේ 32-bit හෝ 64-bit වැනි කුඩා දත්ත කොටස් වෙනුවට, මාන 10,000කට වඩා වැඩි (10,000-dimensional space) දැවැන්ත Vectors මත කෙලින්ම ගණනය කිරීම් සිදු කරන ක්රමවේදයකටයි. මේ දැවැන්ත vectors වලට අපි කියනවා Hypervectors කියලා.
මේ හැම Hypervector එකකම අහඹු ලෙස (Randomly) සැකසුණු බිට්ස් 10,000ක් (හෝ ඊට වැඩි ගණනක්) තියෙනවා. උදාහරණයක් විදියට, සාමාන්ය පරිගණකයක "රතු පාට" කියන දේ #FF0000 (Hex code) එකකින් හෝ 24-bit අගයකින් පෙන්නද්දී, HDC පරිගණකයක "රතු පාට" කියන්නේ අහඹු ලෙස හැදුණු 0 සහ 1 පේළි 10,000ක එකතුවකින් හැදුණු එකම එක දැවැන්ත Hypervector එකකටයි.
මේක තවදුරටත් තේරුම් ගන්න අපි මානයන් (Dimensions) ගැන පොඩි උදාහරණයක් ගමු:
- 1D (ඒකමාන): සරල රේඛාවක්. (ඉදිරියට හෝ පසුපසට යා හැක).
- 2D (ද්විමාන): තිරයක් හෝ කොළයක්. (X සහ Y අක්ෂ).
- 3D (ත්රිමාන): අපි ජීවත් වෙන ලෝකය. (X, Y, Z අක්ෂ).
- 10,000D (අධි-මාන): අපිට හිතාගන්නවත් බැරි, අක්ෂ 10,000ක් තියෙන අවකාශයක්. අන්න ඒ අවකාශයේ තියෙන එක ලක්ෂ්යයක් (Point එකක්) තමයි එක Hypervector එකක් කියන්නේ.
අධි-මාන අවකාශයක (High-dimensional space) තියෙන පුදුමාකාර ගණිතමය විශේෂත්වයක් තමයි, ඔයා අහඹු ලෙස (Randomly) Hypervectors දෙකක් හැදුවොත්, ඒ දෙක 90° ක කෝණයකින්, ඒ කියන්නේ එකිනෙකට සම්පූර්ණයෙන්ම ලම්බක (Orthogonal / Unrelated) වෙන්න තියෙන සම්භාවිතාව 99.99% කටත් වඩා වැඩියි.
මෙන්න මේ ගුණය නිසා එකිනෙකට වෙනස් සංකල්ප බිලියන ගණනක් (උදා: ඇපල්, බල්ලා, කාරය, නිල් පාට) එකිනෙකා පටලවා නොගෙන එකම පද්ධතියක් ඇතුලේ ගබඩා කරන්න පුළුවන් වෙනවා. එක සංකල්පයක් අනිත් සංකල්පයට කිසිම බාධාවක් කරන්නේ නෑ.
🧮 Math Deep Dive: Cosine Similarity
Vector දෙකක් කොච්චර දුරට සමානද කියලා මනින්නේ Cosine Similarity කියන න්යායෙන්. $A$ සහ $B$ කියන්නේ Hypervectors දෙකක් නම්, ඒ දෙක අතර කෝණය $\theta$ නම්:
සාමාන්යයෙන් 10,000D වලදී අහඹු Vectors දෙකක තිත් ගුණිතය (Dot Product) $A \cdot B \approx 0$ වෙනවා. ඒ කියන්නේ $cos(\theta) \approx 0$ (එනම් $\theta = 90^\circ$). ඒවා සම්පූර්ණයෙන්ම එකිනෙකට වෙනස් (Orthogonal) වෙනවා. මේක තමයි HDC වල තියෙන ලොකුම මැජික් එක!
⚙️ 2. Von Neumann Architecture එක සහ HDC අතර ගැඹුරු විශ්ලේෂණය
අපි දැනට Campus වල ඉගෙන ගන්නා සාමාන්ය පරිගණක රටාව (Traditional Computing) සහ මේ අලුත්ම HDC රටාව අතර තියෙන වෙනස්කම් තේරුම් ගැනීම අනිවාර්යයි. මේක නිකන්ම Software වෙනසක් නෙවෙයි, Hardware සහ Logic මට්ටමේ තියෙන දැවැන්ත වෙනසක්.
| ලක්ෂණය (Feature) | සාමාන්ය පරිගණක (Traditional/Von Neumann) | Hyperdimensional Computing (HDC) |
|---|---|---|
| දත්ත මානය (Data Dimension) | 32-bit හෝ 64-bit (Scalar values - නිශ්චිත අගයන්). | 10,000+ bit (Massive Holographic Vectors). |
| මතකයේ ස්වභාවය (Memory Locality) | Local (එක් දත්තයක් එක් Memory Address එකක පවතී). | Distributed/Holographic (එක් දත්තයක් බිට්ස් 10,000 පුරාම පැතිරී පවතී). |
| වැරදි වලට ඔරොත්තු දීම (Fault Tolerance) | ඉතා අඩුයි. එක බිට් එකක් වෙනස් වුවහොත් (Bit-flip) මුළු file එකම හෝ program එකම crash වේ. (Fragile). | ඉතා ඉහළයි. බිට්ස් 1000ක් විනාශ වුවද (10% Noise), දත්තයේ අර්ථය නැති නොවේ. (Robust). |
| කෘතිම බුද්ධිය (AI Learning) | මිලියන ගණනක් දත්ත සහ දැවැන්ත Backpropagation පුහුණුවීම් අවශ්යයි (Deep Learning). දවස් ගණන් ගතවේ. | එක් වරකින් මතක තබා ගත හැක (One-shot Learning). ක්ෂණිකව ඉගෙන ගනී. |
| ශක්ති පරිභෝජනය (Energy Consumption) | Mega-Watts ගණනක විශාල විදුලි බලයක් අවශ්යයි (උදා: Nvidia GPUs). | Micro-Watts ගණනක ඉතා අවම විදුලි බලයකින්, Edge devices වල ක්රියාත්මක විය හැක. |
සාමාන්ය පරිගණක මතකයක "Kaweesha" කියන නම සේව් කරද්දී, ඒක මතකයේ නිශ්චිත ලිපිනයක (Specific Memory Address: උදා:
0x00A1F) විතරයි තියෙන්නේ. ඒ address එකේ එක බිට් එකක් කැඩුණොත් (Hardware fault) නම නැති වෙනවා. හැබැයි HDC වලදී දත්තය පැතිරිලා තියෙන්නේ මුළු බිට් 10,000 පුරාමයි. හරියට Hologram එකක් වගේ. Hologram එකක් භාගයක් කැඩුවත්, ඉතුරු භාගෙන් මුළු රූපයම පේනවා. ඒ වගේ HDC වල බිට් 10,000න් 2,000ක්ම අහඹු ලෙස මැකී ගියත්, ඉතිරි බිට් 8,000 ඇසුරෙන් 100% ක් නිවැරදිව මුල් දත්තය නැවත ලබාගන්න (Recover කරන්න) පුළුවන්!
🛠️ 3. HDC වල සිදුවන ඉන්ද්රජාලික ගණිතමය මෙහෙයුම් 3 (The MAP Operations)
සාමාන්ය පරිගණක වල ALU (Arithmetic Logic Unit) එකක් ඇතුලේ Addition, Subtraction, Multiplication, Division වගේ දේවල් තියෙනවනේ. හැබැයි HDC වලදී මුළු මොළයක ක්රියාකාරීත්වයම පාලනය වෙන්නේ ප්රධාන මෙහෙයුම් තුනකින් විතරයි. මේවා සරල Bitwise operations නිසා hardware මට්ටමින් මාරම වේගවත්. මේ තුනට කෙටියෙන් MAP (Multiply, Add, Permute) කියලා කියනවා.
1️⃣ Binding (බැඳීම / Multiply / ✖️ මෙහෙයුම)
Binding මඟින් කරන්නේ සංකල්ප දෙකක් එකතු කරලා අලුත්ම සංකල්පයක් බිහිකිරීමයි. මේ සඳහා පාවිච්චි කරන්නේ සරල XOR (Exclusive OR) ගේට් එකක් (බයිනරි වලදී) හෝ Element-wise Multiplication (Bipolar -1/+1 වලදී).
උදාහරණයක් විදියට අපිට "පලතුරු" කියන එකට Hypervector එකක් ($V_{fruit}$) සහ "රතු පාට" කියන එකට තව Hypervector එකක් ($V_{red}$) තිබ්බොත්, ඒ දෙක Bind කිරීමෙන් "රතු පලතුරු (ඇපල්)" කියන අලුත්ම ගුණය සහිත Hypervector එකක් ලැබෙනවා.
විශේෂත්වය තමයි, මේ ලැබෙන අලුත් vector එක ($V_{apple}$), මුල් vectors දෙකටම ($V_{red}$ සහ $V_{fruit}$) සමාන වෙන්නේ නෑ. එය අර මාන 10,000 අවකාශයේ වෙනමම තැනක තියෙන ලම්බක (Orthogonal) vector එකක් වෙනවා. ඒ කියන්නේ "රතු පාටයි", "පලතුරයි" මිශ්ර වෙලා හැදෙන අලුත් දේ, ඒ දෙකටම වඩා වෙනස් අනන්යතාවයක් ගන්නවා.
2️⃣ Bundling (එකතු කිරීම / Add / ➕ මෙහෙයුම)
Bundling මඟින් කරන්නේ සංකල්ප කිහිපයක් එකතු කරලා කට්ටලයක් (Set හෝ Context එකක්) සෑදීමයි. හරියට පෙට්ටියක් ඇතුලට බඩු ගොඩක් දානවා වගේ. මේ සඳහා කරන්නේ vectors වල බිට්ස් එකින් එක එකතු කරලා, බහුතරය (Majority Vote) අනුව අලුත් vector එකක් තේරීමයි.
විශේෂත්වය තමයි, මෙසේ සාදාගන්නා පොදු vector එක ($V_{basket}$) ඇතුලේ මුල් සියලුම vectors වල ජාන (Information) අඩංගු වෙනවා. අපිට ඕනෑම වෙලාවක මේ $V_{basket}$ එක ඇතුලේ "ඇපල්" ($V_{apple}$) තිබ්බද කියලා Cosine Similarity එක මඟින් පරික්ෂා කරන්න පුළුවන්. ඒක හරියට සුප් එකක් බිව්වම, ඒක ඇතුලේ ලුණු තියෙනවා, ගම්මිරිස් තියෙනවා කියලා වෙන වෙනම අපේ දිවට දැනෙනවා වගේ වැඩක්.
3️⃣ Permutation (ස්ථාන මාරු කිරීම / Permute / 🔄 මෙහෙයුම)
මොළයට යම් කිසි දේක අනුපිළිවෙල (Sequence හෝ Order) මතක තබා ගැනීමට මේ මෙහෙයුම වැදගත් වෙනවා. මෙහිදී කරන්නේ Hypervector එකේ තියෙන බිට්ස් ටික එක ස්ථානයක් දකුණට හෝ වමට නෙරපා හැරීමයි (Cyclic Shift). අපි මේක $\rho$ අකුරෙන් පෙන්නනවා.
උදාහරණයක් විදියට "A ඊට පසු B" සහ "B ඊට පසු A" කියන අවස්ථා දෙක වෙන් කරලා හඳුනාගන්නේ මේ Permutation එක ආධාරයෙනුයි.
- Sequence 1 (A -> B): $V_{seq1} = \rho(V_A) \otimes V_B$
- Sequence 2 (B -> A): $V_{seq2} = \rho(V_B) \otimes V_A$
මේ දෙකෙන් හැදෙන Vectors දෙක අහසයි පොළොවයි වගේ වෙනස්. ඒ නිසා පරිගණකයට පේළියක අනුපිළිවෙල කවදාවත් පැටලෙන්නේ නෑ!
🧩 4. සැබෑ ලෝකයේ දත්ත HDC වලට Encoding කරන්නේ කොහොමද?
දැන් ඔයාට ප්රශ්නයක් ඇති, මේ Hypervectors වලින් අපේ ඇත්ත ලෝකයේ තියෙන රූප, සද්ද, වචන වගේ දේවල් Represent කරන්නේ කොහොමද කියලා. මේකට පාවිච්චි කරන Encoding ක්රම කිහිපයක් තියෙනවා.
4.1 Record-based Encoding (Key-Value Pairs)
හිතන්න අපිට Database එකක තියෙන විස්තරයක් HDC වලට දාන්න ඕනේ කියලා. උදාහරණයක් විදියට: Name: Kaweesha, Age: 25, Country: SriLanka.
අපි මුලින්ම Keys වලටයි Values වලටයි අහඹු Vectors හදාගන්නවා. ඊට පස්සේ අර අපි ඉගෙන ගත්ත Binding සහ Bundling පාවිච්චි කරනවා.
දැන් මේ $V_{person}$ කියන එකම එක 10,000D Vector එක ඇතුලේ අර සම්පූර්ණ Database Record එකම ගැබ් වෙලා තියෙනවා. අපිට ඕනේ නම් මේ person ගේ වයස කීයද කියලා හොයන්න, $V_{person}$ එකට $V_{Age}$ එකෙන් ආයෙත් Bind (De-bind) කළාම, කෙලින්ම $V_{25}$ කියන vector එකට සමාන උත්තරයක් එළියට පනිනවා. පිස්සු හැදෙනවා නේද?
4.2 N-gram Encoding (වචන සහ DNA සඳහා)
අපි "HELLO" කියන වචනය මතක තියාගන්නවා නම්, අකුරෙන් අකුර අනුපිළිවෙලට මතක තියාගන්න ඕනේ. ඒකට අර Permutation (Shift) මෙහෙයුම පාවිච්චි කරනවා.
මේ ක්රමය DNA Sequencing වලදී (A, C, G, T) ජාන වල රටාවන් හොයන්න දැනටමත් සාර්ථකව පාවිච්චි කරනවා.
💻 5. Python ඇසුරෙන් HDC පද්ධතියක් Simulate කර බලමු (Advanced)
අපි දැන් අපේ පරිගණකයේ සැබෑ ලෙසම මාන 10,000ක Hypervectors නිර්මාණය කරලා, ඒවායේ Binding සහ Bundling ක්රියාත්මක වෙන්නේ කොහොමද කියලත්, පොඩි Machine Learning Task එකක් HDC වලින් කරන්නේ කොහොමද කියලත් Python වලින් බලමු. (මේක ඔයාගේ වෘත්තීය දැනුමට වගේම Final Year Research වලට මාරම වටිනවා).
import numpy as np # --- 1. CORE HDC OPERATIONS (MAP) --- DIMENSIONS = 10000 def generate_hypervector(): """මාන 10,000ක අහඹු Bipolar Hypervector එකක් සෑදීම (-1 සහ 1)""" return np.random.choice([-1, 1], size=DIMENSIONS) def bind(hv1, hv2): """Binding: Element-wise Multiplication (XOR වලට සමානයි)""" return hv1 * hv2 def bundle(hv_list): """Bundling: Vectors එකතු කර බහුතරය සෙවීම (Majority Vote)""" sum_hv = np.sum(hv_list, axis=0) # 0 ට වැඩි නම් 1, අඩු නම් -1 (0 ආවොත් අහඹු ලෙස තෝරනවා) return np.where(sum_hv > 0, 1, np.where(sum_hv < 0, -1, np.random.choice([-1, 1], size=DIMENSIONS))) def cosine_similarity(hv1, hv2): """Cosine Similarity මගින් Vectors අතර සමානකම මැනීම (-1 සිට 1 දක්වා)""" return np.dot(hv1, hv2) / (np.linalg.norm(hv1) * np.linalg.norm(hv2)) # --- 2. SIMULATION: One-Shot Learning --- print("🚀 Starting HDC Simulation...") # මූලික සංකල්ප නිර්මාණය (Item Memory) colors = { 'RED': generate_hypervector(), 'GREEN': generate_hypervector(), 'YELLOW': generate_hypervector() } objects = { 'APPLE': generate_hypervector(), 'BANANA': generate_hypervector() } # 'රතු ඇපල්' සහ 'කහ කෙසෙල්' යන සංකල්ප Bind කිරීම red_apple = bind(colors['RED'], objects['APPLE']) yellow_banana = bind(colors['YELLOW'], objects['BANANA']) # 'පලතුරු කූඩය' සඳහා Bundling කිරීම fruit_basket = bundle([red_apple, yellow_banana]) print("\n🔍 Querying the HDC Memory:") # ප්රශ්නය 1: කූඩයේ තියෙන රතු පාට දේ මොකක්ද? # (පලතුරු කූඩය RED vector එකෙන් de-bind කරමු. Bipolar වලදී bind එකමයි de-bind එකටත් පාවිච්චි කරන්නේ) query_result = bind(fruit_basket, colors['RED']) # ලැබුණු උත්තරය අපේ Item memory එකේ තියෙන දේවල් එක්ක සසඳමු sim_apple = cosine_similarity(query_result, objects['APPLE']) sim_banana = cosine_similarity(query_result, objects['BANANA']) print(f" Similarity to APPLE: {sim_apple:.4f} (High Match!)") print(f" Similarity to BANANA: {sim_banana:.4f} (Noise / Orthogonal)") # Output එකේ පැහැදිලිව පෙනේවි Apple සඳහා ~0.5 කට ආසන්න (හෝ ඊට වැඩි) අගයකුත්, Banana සඳහා ~0.0 අගයකුත් ලැබෙනවා. # මේක තමයි HDC වල මැජික් එක! කිසිම Neural Network Training එකක් නැතුව AI එකකට තර්ක කරන්න පුළුවන්.
🚀 6. ඇයි මේ තාක්ෂණය අනාගත AI ලෝකය වෙනස් කරන්නේ? (Real-world Applications)
අද කාලේ පාවිච්චි කරන ChatGPT, Midjourney වගේ දැවැන්ත AI (Deep Learning Models) මාදිලි වැඩ කරන්නේ Supercomputers ඇතුලේ තියෙන දහස් ගණනක් Nvidia GPUs වල විශාල විදුලි බලයක් වැය කරලයි. හැබැයි HDC තාක්ෂණයට පුළුවන් මේ හැමදේම ඉතාම සුළු ශක්තියකින්, පොඩි චිප් එකක් ඇතුලේ කරන්න.
වත්මන් Deep Learning වලදී එක බල්ලෙක්ව හඳුනාගන්න බල්ලන්ගේ රූප මිලියන ගණනක් AI එකට පෙන්නන්න ඕනේ (Gradient Descent). ඒකට දවස් ගණන් යනවා. හැබැයි කුඩා ළමයෙක්ට එක පාරක් බල්ලෙක්ව පෙන්නුවාම ඌව මතක හිටිනවා.
HDC වැඩ කරන්නේ අන්න ඒ විදියටයි. එකම එක Hypervector එකක් මතකයට එකතු කිරීමෙන් (One-shot learning) පද්ධතියට අලුත් දෙයක් ක්ෂණිකව ඉගෙන ගන්න පුළුවන්. මේ නිසා අනාගතයේ එන ස්මාර්ට්ෆෝන්, රොබෝවරු සහ Wearable Devices වලට කිසිදු Internet හෝ Cloud සම්බන්ධතාවක් නැතුව, තමන්ගේම කුඩා චිප් එකක් ඇතුලෙන්ම ලෝකය ඉගෙන ගැනීමේ හැකියාව ලැබෙනවා.
6.1 Smart Healthcare සහ Wearables ⌚
EEG (මොළයේ තරංග) හෝ ECG (හෘද ස්පන්දන) දත්ත විශ්ලේෂණය කරන්න HDC ඉතාමත් සාර්ථකයි. අද තියෙන Smart Watches වලට Heart Attack එකක් එන්න කලින් කියන්න පුළුවන් වුණාට, ඒකට ලොකු බැටරි බලයක් ඕනේ. HDC පාවිච්චි කළොත් ඒකෙ තියෙන Pattern recognition හැකියාව නිසා ඉතා කුඩා බැටරියකින් (Micro-watts) අවුරුදු ගාණක් මේ දත්ත විශ්ලේෂණය කරන්න පුළුවන්. රෝගියෙක්ගේ හදවතේ රිද්මය අහඹු Hypervector එකකට Map කරලා, අසාමාන්ය රිද්මයක් ආපු ගමන් (Similarity වෙනස් වුණ ගමන්) Alert කරන්න මේකට පුළුවන්.
6.2 DNA Sequencing සහ Bioinformatics 🧬
DNA කියන්නේ A, C, G, T කියන අකුරු බිලියන 3ක විතර එකතුවක්. මේවායේ රටාවන් හොයන්න (Pattern matching) සාමාන්ය පරිගණක වලට සති ගණන් යනවා. හැබැයි N-gram encoding පාවිච්චි කරලා මුළු DNA Sequence එකම එක Hypervector එකකට බාගත්තට පස්සේ, රෝගී ජාන හොයන එක තත්පර ගාණක වැඩක් බවට පත් වෙනවා.
6.3 Robotics සහ Sensor Fusion 🤖
රොබෝ කෙනෙක්ට ඇස් වලින් පේන දේවල් (Vision), කනට ඇහෙන දේවල් (Audio) සහ අතට දැනෙන දේවල් (Touch) එකපාර තේරුම් ගන්න ඕනේ. Traditional AI වලදී මේ තුනට වෙනම Neural Networks 3ක් දුවන්න ඕනේ. හැබැයි HDC වලදී අර Bundling මෙහෙයුම පාවිච්චි කරලා මේ සංවේදනයන් තුනේම vectors එකතු කරලා එකම එක Multi-modal Vector එකක් හදන්න පුළුවන්. එතකොට රොබෝගේ මොළයට බරක් නෑ.
🏗️ 7. HDC සඳහා අනාගත Hardware (In-Memory Computing)
ඔයාට හිතෙන්න පුළුවන් "ඉතින් මේක මෙච්චර හොඳනම් ඇයි තවම හැමතැනම පාවිච්චි කරන්නේ නැත්තේ?" කියලා. ඒකට හේතුව තමයි අපේ Hardware තාම මේකට ලෑස්ති නෑ.
අපේ පරිගණක වල තියෙන Von Neumann Architecture එකේදී, Processor එකයි, RAM එකයි තියෙන්නේ වෙනම තැන් දෙකක. Processor එකට දත්ත ඕනේ වුණාම RAM එකෙන් අදින්න ඕනේ. මාන 10,000ක Vectors එහාට මෙහාට අදිද්දී අර Bus එක (Data Bus) හිර වෙනවා. මේකට කියන්නේ Von Neumann Bottleneck කියලා.
මේකට විසඳුමක් විදියට දැන් ලෝකයේ In-Memory Computing (IMC) කියලා අලුත් Hardware තාක්ෂණයක් හදාගෙන යනවා. මේකේදී Memory එක ඇතුලෙම ගණනය කිරීම් (Compute) කරන්න පුළුවන්. විශේෂයෙන්ම Memristors (Memory + Resistors) කියන අලුත් ඉලෙක්ට්රොනික උපාංගය පාවිච්චි කරලා, බිට්ස් 10,000ක XOR operations (Binding) එකවර (Parallel) ක්ෂණිකව කරන්න පුළුවන් චිප්ස් දැන් පර්යේෂණාගාර වල නිර්මාණය වෙනවා. IBM සමාගමේ TrueNorth චිප් එක සහ Intel සමාගමේ Loihi කියන Neuromorphic chips මේ තාක්ෂණයට ගොඩක් කිට්ටුයි.
⚔️ 8. HDC vs. Neural Networks vs. Quantum Computing
අපි මේ තාක්ෂණයන් තුන සසඳලා බලමු, එතකොට ඔයාට HDC වල තියෙන සුවිශේෂී තැන හරියටම තේරෙවි.
- Deep Neural Networks (DNN): මේක හරියට විශාල කර්මාන්තශාලාවක් වගේ. ගොඩක් දත්ත ඕනේ, ගොඩක් ශක්තිය ඕනේ, හැබැයි ඉතාම නිවැරදියි (High Precision). උදාහරණ: ChatGPT.
- Quantum Computing: මේක Qubits (0 සහ 1 එකවර පවතින) පාවිච්චි කරලා ලෝකයේ විසඳන්න අමාරුම ගණිත ගැටළු (උදා: Cryptography පද්ධති කැඩීම, අලුත් ඖෂධ සෙවීම) විසඳන්න පාවිච්චි කරනවා. හැබැයි මේවා පවත්වාගන්න අධි-ශීතකරණ (Absolute zero temperatures) ඕනේ. සාමාන්ය ලෝකයේ පාවිච්චි කරන්න අමාරුයි.
- Hyperdimensional Computing (HDC): මේක මැද තියෙන රන් මාර්ගය. මොළය වගේම වැරදි වලට ඔරොත්තු දෙනවා. සාමාන්ය කාමර උෂ්ණත්වයේ සාමාන්ය චිප් එකක (FPGA/ASIC) දුවන්න පුළුවන්. ක්ෂණිකව ඉගෙන ගන්නවා (One-shot). විශේෂයෙන්ම Edge Devices (IoT) වලට කියාපු තාක්ෂණය.
🚧 9. ඉදිරි අභියෝග සහ අනාගතය
HDC තාක්ෂණය තවමත් ලැබ් මට්ටමෙන් එළියට එන්න ප්රධානම බාධාව තමයි අර කලින් කිව්ව Hardware නොගැලපීම. ඒ වගේම තවමත් Software Engineers ලා මේ ගැන දන්නේ නෑ. අපි Campus වල ඉගෙන ගන්නේ සම්ප්රදායික Data Structures (Arrays, Linked Lists, Trees). හැබැයි HDC වලදී මේ ඔක්කොම Data structures එකම එක Hypervector එකක් විදියට Represent කරන්න පුළුවන්. මේක සම්පූර්ණයෙන්ම වෙනස්ම Paradigm Shift (මනෝභාවයේ වෙනසක්) එකක්.
කෙසේ වෙතත්, ඉදිරි වසර 5-10 ඇතුළත, විශේෂයෙන්ම AI Model වල තියෙන Energy Crisis (විදුලි අර්බුදය) එක්ක, ලෝකයට අනිවාර්යයෙන්ම HDC වගේ සැහැල්ලු සහ මොළය ආශ්රිත (Brain-inspired) තාක්ෂණයන් වෙත යන්න සිද්ධ වෙනවා.
Hyperdimensional Computing කියන්නේ පරිගණක විද්යාවේ ඊළඟ මහා පිම්මයි. බිට් වල සිරවෙලා සිටි යුගය අවසන් කරලා, මිනිස් මොළයේ ඇති අසිරිමත් ගුණයන් කේතයන් බවට පත් කරන මේ අපූරු තාක්ෂණය ගැන ඔයාගේ අදහස කමෙන්ට් කරන්න.
Advanced Computer Science ක්ෂේත්රයේ මෙවැනි කවුරුත් නොදන්නා රහස් තොරතුරු සිංහලෙන්ම, ගැඹුරින්ම දැනගන්න KP Tech Gear සමඟම රැඳී සිටින්න! ජය වේවා! 👇

Discussion