ആപ്പിൾ സിലിക്കണിൽ ഓൺ-ഡിവൈസ് ഇൻഫറൻസ് ഒപ്റ്റിമൈസ് ചെയ്യുന്നു
പ്രീഫില്ലും ഡീകോഡ് ത്രൂപുട്ടും മെച്ചപ്പെടുത്തുന്ന ഒരു കസ്റ്റം ലോക്കൽ എഞ്ചിൻ.
ആപ്പിൾ സിലിക്കണിലെ ഹൈബ്രിഡ് കമ്പ്യൂട്ട് ക്ലൗഡിലെ ഫ്രണ്ടിയർ ഇന്റലിജൻസും മാക്കിലെ ലോക്കൽ മോഡലും തമ്മിലുള്ള ഒരു ടാസ്ക് ഓർഗനൈസ് ചെയ്യുന്നു. ക്ലൗഡ് മോഡലുകൾ ഗവേഷണവും ന്യായവാദവും കൈകാര്യം ചെയ്യുമ്പോൾ, ഒരു ലോക്കൽ മോഡൽ മാക്കിലെ സ്വകാര്യ ഫയലുകളുമായും ആപ്പുകളുമായും പ്രവർത്തിക്കുന്നു.
ഈ തൊഴിൽ വിഭജനം തടസ്സമില്ലാത്തതായി തോന്നുന്നതിന്, ലോക്കൽ ഇൻഫറൻസ് ടാസ്കിന്റെ ബാക്കിയുള്ളവയുമായി വേഗത നിലനിർത്തണം. അതിന് പ്രോംപ്റ്റുകൾ വേഗത്തിൽ പ്രോസസ്സ് ചെയ്യാനും ഉയർന്ന ടോക്കൺ-ജനറേഷൻ നിരക്ക് നിലനിർത്താനും കഴിയുന്ന ഒരു എഞ്ചിൻ ആവശ്യമാണ്.
ലില്ലി, ഞങ്ങളുടെ ഭാരം കുറഞ്ഞ ലോക്കൽ ഇൻഫറൻസ് എഞ്ചിൻ, ആപ്പിൾ സിലിക്കണിനും Qwen3.6-35B-A3B-നും വേണ്ടി മാത്രമായി നിർമ്മിച്ചതാണ്, പ്രീഫില്ലിനും ഡീകോഡിനുമായി പ്രത്യേക ഒപ്റ്റിമൈസേഷനുകളുമുണ്ട്. ഒരു സ്റ്റാൻഡേർഡ് ഡെമോ GitHub-ൽ പൊതുവായി ലഭ്യമാണ്.
ആമുഖം
മാക്-ൽ എൽഎൽഎം പ്രവർത്തിപ്പിക്കുന്നതിനുള്ള ഒരു സാധാരണ മാർഗ്ഗം ആപ്പിളിന്റെ ആപ്പിൾ സിലിക്കണിനായുള്ള ഓപ്പൺ സോഴ്സ് മെഷീൻ ലേണിംഗ് ഫ്രെയിംവർക്കായ MLX ഉപയോഗിച്ചാണ്. അതിന്റെ കമ്പാനിയൻ ലൈബ്രറിയായ MLX-LM, വൈവിധ്യമാർന്ന ഭാഷാ മോഡലുകൾ ഉപയോഗിച്ച് വാചകം ലോഡ് ചെയ്യാനും ജനറേറ്റ് ചെയ്യാനും ആവശ്യമായ ഘടകങ്ങൾ ചേർക്കുന്നു. ഒന്നിച്ചു, MLX ഉം MLX-LM ഉം ലോക്കൽ എൽഎൽഎം ഇൻഫറൻസിനായി ഒരു ഓഫ്-ദി-ഷെൽഫ്, ജനറൽ-പർപ്പസ് സ്റ്റാക്ക് നൽകുന്നു.
Qwen3.6-35B-A3B എന്നത് ഒരു സ്പാഴ്സ് ഹൈബ്രിഡ് മോഡലാണ്: ഇത് മിക്സ്ചർ-ഓഫ്-എക്സ്പേർട്ട്സ് (MoE) റൂട്ടിംഗ് ഉപയോഗിക്കുകയും ഫിക്സഡ്-സൈസ് റിക്കറന്റ് സ്റ്റേറ്റുകളെ പൂർണ്ണ ശ്രദ്ധയുമായി സംയോജിപ്പിക്കുകയും ചെയ്യുന്നു. ഈ ആർക്കിടെക്ചറൽ തിരഞ്ഞെടുപ്പുകൾ ആവശ്യമായ കമ്പ്യൂട്ടേഷൻ തുക കുറയ്ക്കുന്നു, എന്നാൽ അവ ക്രമരഹിതമായ വർക്ക്ലോഡുകളും സൃഷ്ടിക്കുന്നു. ടോക്കണുകൾ വ്യത്യസ്ത എക്സ്പേർട്ട് വെയിറ്റുകളിലേക്ക് റൂട്ട് ചെയ്യുന്നു, കൂടാതെ റിക്കറന്റ് സ്റ്റേറ്റുകൾ സ്വഭാവത്തിൽ സീക്വൻഷ്യൽ ആണ്.
MLX-LM ഇതിനകം തന്നെ ഇൻഫറൻസ് ഘട്ടങ്ങൾക്കും സാധാരണ വർക്ക്ലോഡ് രൂപങ്ങൾക്കും ഒപ്റ്റിമൈസ് ചെയ്ത കർണലുകൾ തിരഞ്ഞെടുക്കുന്നു, എന്നാൽ അതിന്റെ പുനരുപയോഗിക്കാവുന്ന പ്രവർത്തനങ്ങൾ പല മോഡൽ ആർക്കിടെക്ചറുകളെയും പിന്തുണയ്ക്കണം. ക്യൂവണിനായി സമർപ്പിച്ചിരിക്കുന്ന ഒരു എഞ്ചിന് മോഡൽ, റൺടൈം തലത്തിൽ സ്പെഷ്യലൈസ് ചെയ്യാൻ കഴിയും, മോഡലിന്റെ സ്ഥിരമായ ഘടനയ്ക്ക് ചുറ്റും കർണലുകൾ, ഡാറ്റാ ചലനം, ഷെഡ്യൂളിംഗ് എന്നിവ ഏകോപിപ്പിക്കുന്നു.
ലില്ലി ഒരൊറ്റ പ്രക്രിയയിൽ ഈ സ്പെഷ്യലൈസേഷൻ എൻഡ്-ടു-എൻഡ് നടപ്പിലാക്കുന്നു. ഒരു റസ്റ്റ് റൺടൈം മോഡൽ ചെക്ക്പോയിന്റ് ലോഡ് ചെയ്യുകയും സെഷൻ അവസ്ഥയും ജനറേഷൻ ലൂപ്പും കൈകാര്യം ചെയ്യുകയും ചെയ്യുന്നു, ഒപ്പൺഎഐ-അനുയോജ്യമായ ചാറ്റ്-കംപ്ലീഷൻസ് API അഭ്യർത്ഥനകൾ സ്വീകരിക്കുകയും ടോക്കണുകൾ സ്ട്രീം ചെയ്യുകയും ചെയ്യുന്നു, കൂടാതെ കസ്റ്റം മെറ്റൽ കർണലുകൾ ക്യൂവൺ-നിർദ്ദിഷ്ട പ്രവർത്തനങ്ങൾ നിർവഹിക്കുന്നു. പൈടോർച്ചോ MLX-ഓ എക്സിക്യൂഷൻ പാതയിലില്ല.
ഞങ്ങൾ പ്രീഫില്ലും ഡീകോഡ് പ്രകടനവും വെവ്വേറെ അളക്കുന്നു. പ്രീഫിൽ ത്രൂപുട്ട് എഞ്ചിൻ പ്രോംപ്റ്റ് എത്ര വേഗത്തിൽ പ്രോസസ്സ് ചെയ്യുന്നു എന്ന് പിടിച്ചെടുക്കുന്നു; ഡീകോഡ് ത്രൂപുട്ട് അത് ഔട്ട്പുട്ട് ടോക്കണുകൾ എത്ര വേഗത്തിൽ ജനറേറ്റ് ചെയ്യുന്നു എന്ന് പിടിച്ചെടുക്കുന്നു.
ഒരു M5 Max, 40-കോർ GPU, 128 GB ഏകീകരിത മെമ്മറി എന്നിവയാൽ പ്രവർത്തിക്കുന്ന ഒരു ഒറ്റ MacBook Pro-യിൽ ഞങ്ങൾ Qwen3.6-35B-A3B-നെ ബെഞ്ച്മാർക്ക് ചെയ്യുന്നു. പ്രിഫില്ലിനായി പത്ത് പ്രോംപ്റ്റ് ദൈർഘ്യങ്ങളിലും ഡീകോഡിനായി പത്ത് കോൺടെക്സ്റ്റ് ദൈർഘ്യങ്ങളിലും, 256 മുതൽ 128K ടോക്കണുകൾ വരെ (K = 1,024), എഞ്ചിൻ MLX-LM-ന്റെ പ്രിഫിൽ ത്രൂപ്പുട്ടിന്റെ ശരാശരി 1.22×-ഉം ഡീകോഡ് ത്രൂപ്പുട്ടിന്റെ 1.32×-ഉം കൈവരിക്കുന്നു. 4K-ടോക്കൺ പ്രോംപ്റ്റിലും 4K-ടോക്കൺ ഡീകോഡ് കോൺടെക്സ്റ്റിലും, കസ്റ്റം എഞ്ചിൻ 5,749.9 പ്രിഫിൽ ടോക്കണുകൾ പ്രതിസെക്കൻഡും 186.6 ഡീകോഡ് ടോക്കണുകൾ പ്രതിസെക്കൻഡും കൈവരിക്കുമ്പോൾ, MLX-LM-യ്ക്ക് യഥാക്രമം 4,737.5 ഉം 140.9 ഉം ആണ്. ഒരു മൾട്ടി-ടേൺ സെഷനിലുടനീളം, ഈ സമയം ലാഭങ്ങൾ ഓരോ അധിക മോഡൽ കോളിനോടും കൂടി കൂടിച്ചേർക്കുന്നു.
അടുത്തതായി, ക്യൂവണിന്റെ ആർക്കിടെക്ചർ ആപ്പിൾ സിലിക്കണിൽ മോഡൽ-നിർദ്ദിഷ്ട ഒപ്റ്റിമൈസേഷൻ അവസരങ്ങൾ എങ്ങനെ സൃഷ്ടിക്കുന്നുവെന്ന് ഞങ്ങൾ വിശദീകരിക്കുന്നു. തുടർന്ന് ലഭിച്ച പ്രീഫിൽ, ഡീകോഡ് മാറ്റങ്ങളിലൂടെ ഞങ്ങൾ കടന്നുപോകുന്നു. MLX-LM എതിരെയുള്ള എൻഡ്-ടു-എൻഡ് താരതമ്യത്തിലൂടെ അവസാനിപ്പിക്കുന്നതിന് മുമ്പ് അധിക ഒപ്റ്റിമൈസേഷൻ പണം നൽകുന്നത് എപ്പോഴാണ് നിർത്തുന്നത് എന്നതും ഞങ്ങൾ ഉൾക്കൊള്ളുന്നു.
ആപ്പിൾ സിലിക്കണിലെ ക്യൂവൺ-നിർദ്ദിഷ്ട ഒപ്റ്റിമൈസേഷൻ അവസരങ്ങൾ
ക്യൂവൺ മൂന്ന് വ്യത്യസ്ത വർക്ക്ലോഡ് രൂപങ്ങൾ സൃഷ്ടിക്കുന്നു
Qwen3.6-35B-A3B-ൽ 35 ബില്യൺ പാരാമീറ്ററുകൾ അടങ്ങിയിരിക്കുന്നു എന്നാൽ ഓരോ ടോക്കണിലും ഏകദേശം 3 ബില്യൺ മാത്രമേ സജീവമാക്കുന്നുള്ളൂ. ഒരു റൂട്ടർ 256 എക്സ്പേർട്ട് സബ്നെറ്റ്വർക്കുകൾ സ്കോർ ചെയ്യുകയും എട്ടെണ്ണം തിരഞ്ഞെടുക്കുകയും ചെയ്യുന്നു, ഒപ്പം ഓരോ ടോക്കണും പ്രോസസ്സ് ചെയ്യുന്ന ഒരു പങ്കിട്ട വിദഗ്ദ്ധനുമുണ്ട്. ഈ സ്പാഴ്സ് MoE ഡിസൈൻ കമ്പ്യൂട്ടേഷൻ കുറയ്ക്കുന്നു എന്നാൽ അസമമായ ജോലി ഉണ്ടാക്കുന്നു: വിദഗ്ധർക്ക് വ്യത്യസ്ത എണ്ണം ടോക്കണുകൾ ലഭിക്കുന്നു, കൂടാതെ ഓരോ ടോക്കണും വിദഗ്ദ്ധരുടെ വ്യത്യസ്ത സംയോജനത്തിൽ നിന്നുള്ള വെയിറ്റുകൾ ആവശ്യമാണ്.
ക്യൂവൺ 10 ഫുൾ-അറ്റൻഷൻ ലെയറുകളെ 30 Gated DeltaNet ലെയറുകളുമായി സംയോജിപ്പിക്കുന്നു. ഈ രണ്ട് ലെയർ തരങ്ങളും മുൻകാല വിവരങ്ങൾ വ്യത്യസ്ത രീതികളിൽ നിലനിർത്തുന്നു.
ശ്രദ്ധ പാളികൾ grouped-query attention (GQA) ഉപയോഗിക്കുന്നു. ക്യൂവണിന് 16 ക്വറി ഹെഡുകളും രണ്ട് കീ-വാല്യൂ (KV) ഹെഡുകളും ഉണ്ട്, എട്ട് ക്വറി ഹെഡുകൾ ഓരോ കെവി ഹെഡും പങ്കിടുന്നു. പങ്കിടൽ കെവി കാഷെ ചെറുതാക്കുകയും കാഷെ ചെയ്ത ഡാറ്റ ക്വറി ഹെഡുകളിലുടനീളം വീണ്ടും ഉപയോഗിക്കാൻ അനുവദിക്കുകയും ചെയ്യുന്നു. കാഷെ ഇപ്പോഴും ഓരോ ടോക്കണിനും പുതിയ കീകകളും മൂല്യങ്ങളും സംഭരിക്കുന്നു, അതിനാൽ കോൺടെക്സ്റ്റ് വളരുമ്പോൾ ഓരോ ഡീകോഡ് ഘട്ടവും കൂടുതൽ ഡാറ്റ വായിക്കുന്നു.
Gated DeltaNet പകരം മുൻകാല വിവരങ്ങളെ സ്ഥിര വലുപ്പമുള്ള റിക്കറന്റ് സ്റ്റേറ്റിലേക്ക് കംപ്രസ് ചെയ്യുന്നു. നിലവിലെ ടോക്കണിൽ നിന്നുള്ള വിവരങ്ങൾ ഒരു ഡെൽറ്റ അപ്ഡേറ്റ് ഉൾപ്പെടുത്തുമ്പോൾ, നിലവിലുള്ള അവസ്ഥയുടെ എത്രത്തോളം നിലനിർത്തണം എന്ന് പഠിച്ച ഒരു ഗേറ്റ് നിയന്ത്രിക്കുന്നു. മോഡൽ ഈ അപ്ഡേറ്റുകൾ ആവർത്തിച്ച് നിർവചിക്കുന്നു, അതിനാൽ ഓരോ ടോക്കണും മുൻകൂർ ടോക്കൺ നിർമ്മിച്ച അവസ്ഥയെ ആശ്രയിച്ചിരിക്കുന്നു. എന്നിരുന്നാലും, പ്രീഫിൽ സമയത്ത്, ഒരു എഞ്ചിന് ഒരേ കമ്പ്യൂട്ടേഷൻ രണ്ട് വിധത്തിൽ വിലയിരുത്താൻ കഴിയും. സ്റ്റേറ്റ് മുന്നോട്ട് കൊണ്ടുപോകുമ്പോൾ അതിന് ടോക്കണുകളിലൂടെ നേരിട്ട് സ്കാൻ ചെയ്യാം, അല്ലെങ്കിൽ കൂടുതൽ മാട്രിക്സ് പ്രവർത്തനങ്ങളും ടോക്കൺ-ലെവൽ സമാന്തരതയും വെളിപ്പെടുത്തുന്ന ബ്ലോക്കുകളിലേക്ക് അപ്ഡേറ്റുകൾ പുനഃക്രമീകരിക്കാം. ഏത് സമീപനമാണ് വേഗതയേറിയത് എന്നത് മോഡൽ അളവുകൾ, വർക്ക്ലോഡ്, ഹാർഡ്വെയർ എന്നിവയെ ആശ്രയിച്ചിരിക്കുന്നു.
ഒരുമിച്ച്, ഈ ഘടനകൾ മൂന്ന് കമ്പ്യൂട്ടേഷണൽ പാറ്റേണുകൾ സൃഷ്ടിക്കുന്നു: അസമമായ എക്സ്പേർട്ട് ഗ്രൂപ്പുകൾ, വളരുന്ന കാഷെയിലെ ശ്രദ്ധ, കൂടാതെ നേരിട്ടോ ബ്ലോക്കുകളായോ വിലയിരുത്താൻ കഴിയുന്ന സ്ഥിര വലുപ്പമുള്ള ആവർത്തനം.
ആപ്പിൾ സിലിക്കൺ വ്യത്യസ്ത വർക്ക്ലോഡുകൾക്ക് വ്യത്യസ്ത പാതകൾ നൽകുന്നു
പ്രീഫിൽ ഒരേസമയം നിരവധി പ്രോംപ്റ്റ് ടോക്കൺ ആക്ടിവേഷൻ വരികൾ പ്രോസസ്സ് ചെയ്യുന്നു. ഇവിടെ പരിഗണിക്കുന്ന ലോക്കൽ വർക്ക്ലോഡ് സാധാരണയായി ഒരു സമയത്ത് ഒരു അഭ്യർത്ഥന ഡീകോഡ് ചെയ്യുന്നു (ബാച്ച് 1) കൂടാതെ ഓരോ ഘട്ടത്തിലും ഒരു പുതിയ വരി പ്രോസസ്സ് ചെയ്യുന്നു. ഈ വ്യത്യാസം ഒരേ മോഡൽ വെയിറ്റുകൾ എങ്ങനെ ഉപയോഗിക്കുന്നു എന്ന് മാറ്റുന്നു. പ്രീഫില്ലിന് ഓരോ വെയ്റ്റ് ബ്ലോക്കും നൂറുകണക്കിന് അല്ലെങ്കിൽ ആയിരക്കണക്കിന് വരികളിൽ പുനരുപയോഗിക്കാൻ കഴിയും. ഡീകോഡിന് വലിയ തോതിൽ കഴിയില്ല, കാരണം ഓരോ പുതിയ ടോക്കണിലൂടെയും വെയിറ്റുകളിലൂടെ മറ്റൊരു പാസ് ആവശ്യമാണ്.
ആപ്പിൾ സിലിക്കൺ സിപിയുവും ജിപിയുവും യൂണിഫൈഡ് മെമ്മറിക്ക് പിന്നിൽ സ്ഥാപിക്കുന്നു, ഇത് രണ്ടിനും ആക്സസ് ചെയ്യാവുന്ന ഒരൊറ്റ ഫിസിക്കൽ മെമ്മറി പൂളാണ്. ഒരു പ്രത്യേക ജിപിയു പകർപ്പ് സൂക്ഷിക്കാതെ തന്നെ മോഡൽ റെസിഡന്റ് ആയി തുടരാൻ ഇത് അനുവദിക്കുന്നു, എന്നാൽ ഇത് ഡാറ്റാ ചലനം സൗജന്യമാക്കുന്നില്ല. വെയിറ്റുകളും ഇടനില മൂല്യങ്ങളും വായിക്കുന്നത് ഇപ്പോഴും മെമ്മറി ബാൻഡ്വിഡ്ത്ത് ഉപഭോഗം ചെയ്യുന്നു, അതേസമയം രജിസ്റ്ററുകളും മറ്റ് ഓൺ-ചിപ്പ് സംഭരണവും വേഗതയുള്ളതാണ് എന്നാൽ വളരെ ചെറുതാണ്.
എം5 ജിപിയു വ്യത്യസ്ത കമ്പ്യൂട്ട് പാതകളും നൽകുന്നു. പ്രീഫില്ലിന്റെ ലീനിയർ ലെയറുകൾ ജനറൽ മാട്രിക്സ്-മാട്രിക്സ് ഗുണനം (GEMM) ഉപയോഗിക്കുന്നു, ഒരേസമയം പല വരികളിലേക്കും ഒരു വെയിറ്റ് മാട്രിക്സ് പ്രയോഗിക്കുന്നു. അനുയോജ്യമായ GEMM-കൾക്ക് മെറ്റൽ 4 ടെൻസർ പ്രവർത്തനങ്ങൾ വഴി ഓരോ ജിപിയു കോറിലുമുള്ള ന്യൂറൽ ആക്സിലറേറ്റർ ഉപയോഗിക്കാൻ കഴിയും. ബാച്ച്-1 ഡീകോഡ് പകരം ജനറൽ മാട്രിക്സ്-വെക്റ്റർ ഗുണനം (GEMV) ഉപയോഗിക്കുന്നു, ഒരേ ഭാരങ്ങൾ ഒരു വരിയിലേക്ക് പ്രയോഗിക്കുന്നു. കുറഞ്ഞ ഭാര പുനരുപയോഗത്തോടെ, GEMV പ്രധാനമായും മെമ്മറി ബാൻഡ്വിഡ്ത്താൽ പരിമിതപ്പെടുത്തുകയും വലിയ ഡാറ്റ പുനരുപയോഗത്തോടുകൂടിയ മാട്രിക്സ് പ്രവർത്തനങ്ങൾക്കായി രൂപകൽപ്പന ചെയ്ത ന്യൂറൽ ആക്സിലറേറ്ററുകളേക്കാൾ ജിപിയുവിന്റെ വെക്റ്റർ അരിത്മെറ്റിക് ലോജിക് യൂണിറ്റുകൾക്ക് (ALUs) കൂടുതൽ അനുയോജ്യവുമാണ്.
ഈ എക്സിക്യൂഷൻ പാതകൾ ലില്ലിക്ക് മാത്രമുള്ളതല്ല. MLX ഒരേ യൂണിഫൈഡ് മെമ്മറിയിലൂടെ പ്രവർത്തിക്കുകയും വർക്ക്ലോഡ് രൂപത്തിനനുസരിച്ച് ഒപ്റ്റിമൈസ് ചെയ്ത മാട്രിക്സ്, വെക്റ്റർ കർണലുകൾ തിരഞ്ഞെടുക്കുകയും ചെയ്യുന്നു. MLX-LM-ന്റെ Qwen ഇംപ്ലിമെന്റേഷൻ ഇതിനകം തന്നെ എക്സ്പേർട്ട് ജോലികൾ ഗ്രൂപ്പ് ചെയ്യുന്നു, ഫ്യൂസ്ഡ് റിക്കറന്റ് മെറ്റൽ കർണൽ ഉപയോഗിച്ച് Gated DeltaNet വിലയിരുത്തുന്നു, കൂടാതെ GQA-അവെയർ അറ്റൻഷൻ ഉപയോഗിക്കുന്നു. ആപ്പിൾ സിലിക്കണിൽ കാര്യക്ഷമമായ ക്യൂവൺ ഇൻഫറൻസിനുള്ള പങ്കിട്ട ആരംഭ പോയിന്റാണ് ഈ ശേഷികൾ.
ഒപ്റ്റിമൈസേഷൻ തന്ത്രം
ക്യൂവണിന്റെ കൃത്യമായ ആർക്കിടെക്ചറിനും അളവുകൾക്കും ചുറ്റും ഈ പങ്കിട്ട എക്സിക്യൂഷൻ പാതകൾ ഏകോപിപ്പിക്കാൻ ലില്ലിയുടെ ഇടുങ്ങിയ വ്യാപ്തി അനുവദിക്കുന്നു. ഇത് ഘട്ട-നിർദ്ദിഷ്ട ജിപിയു പാതകൾ ഉപയോഗിക്കുന്നു, ഡാറ്റാ ചലനം കുറയ്ക്കുന്നതിന് ക്യൂവണിന്റെ എക്സ്പേർട്ട്, റിക്കറന്റ്, അറ്റൻഷൻ വർക്ക്ലോഡുകൾ മാപ്പ് ചെയ്യുന്നു, കൂടാതെ അളന്ന വർക്ക്ലോഡ് രൂപത്തിൽ നിന്ന് കർണലുകളും ലേഔട്ടുകളും തിരഞ്ഞെടുക്കുന്നു. തന്ത്രത്തിന് മൂന്ന് ഭാഗങ്ങളുണ്ട്:
- ഇൻഫറൻസ് ഘട്ടവുമായി ജിപിയു പാത പൊരുത്തപ്പെടുത്തുക. പ്രീഫില്ലിന് പല വരികളിലുടനീളം ഭാരങ്ങൾ പുനരുപയോഗിക്കാൻ കഴിയുമ്പോൾ മാട്രിക്സ്-ഓറിയന്റഡ് എക്സിക്യൂഷൻ ഉപയോഗിക്കുക, ബാച്ച്-1 ഡീകോഡ് ഒരേസമയം ഒരു വരി പ്രോസസ്സ് ചെയ്യുമ്പോൾ വെക്റ്റർ-ഓറിയന്റഡ് എക്സിക്യൂഷൻ ഉപയോഗിക്കുക.
- ഡാറ്റാ ചലനം കുറയ്ക്കുമ്പോൾ ക്യൂവണിന്റെ ഘടന ജിപിയുവിൽ മാപ്പ് ചെയ്യുക. ഉപയോഗിക്കുന്നതുവരെ വെയിറ്റുകൾ കംപ്രസ് ചെയ്ത് സൂക്ഷിക്കുക, സിപിയുലേക്ക് മടങ്ങാതെ റൂട്ട് ചെയ്ത എക്സ്പേർട്ട് ജോലി സംഘടിപ്പിക്കുക, Gated DeltaNet അവസ്ഥ അതിന്റെ റിക്കറന്റ് സ്കാനിലൂടെ ചിപ്പിൽ നിലനിർത്തുക, കൂടാതെ ഗ്രൂപ്പ്ഡ്-ക്വറി അറ്റൻഷൻ പങ്കിട്ട കെവി ഡാറ്റ വീണ്ടും ഉപയോഗിക്കുക.
- വർക്ക്ലോഡ് രൂപത്തിന് കർണലുകൾ പൊരുത്തപ്പെടുത്തുക. ഓരോ ഘട്ടത്തിനുള്ളിലും, ലഭ്യമായ വരികളുടെ എണ്ണം, വിദഗ്ധർക്കിടയിലുള്ള വരികളുടെ വിതരണം, പ്രവർത്തനത്തിന്റെ അളവുകൾ, നിലവിലെ കോൺടെക്സ്റ്റ് നീളം എന്നിവയിൽ നിന്ന് ടൈൽ വലുപ്പങ്ങൾ, എക്സിക്യൂഷൻ ലേഔട്ടുകൾ, അറ്റൻഷൻ പാതകൾ എന്നിവ തിരഞ്ഞെടുക്കുക.
ഇതുവരെയുള്ള വിഭാഗങ്ങൾ ഈ തിരഞ്ഞെടുപ്പുകൾ വിശദീകരിക്കുന്നു. എം5 മാക്-ൽ പൊരുത്തപ്പെടുന്ന അബ്ലേഷനുകളിൽ വിലയിരുത്തിയ ഒപ്റ്റിമൈസേഷനുകൾക്കായി, പഠനത്തിലുള്ള ഒപ്റ്റിമൈസേഷനിൽ മാത്രം വ്യത്യാസമുള്ള സമാനമായ എഞ്ചിൻ കോൺഫിഗറേഷനുകൾ താരതമ്യം ചെയ്തുകൊണ്ട് ഞങ്ങൾ അവയുടെ ഫലങ്ങൾ കണക്കാക്കുന്നു. ഈ പരീക്ഷണങ്ങൾ ഞങ്ങളുടെ എഞ്ചിന്റെ പതിപ്പുകളെ സ്വയം താരതമ്യം ചെയ്യുന്നതിനാൽ, അവ MLX-LM-നെ എതിരെയുള്ള അന്തിമ ഫലങ്ങൾ വിഘടിപ്പിക്കുന്നതിനേക്കാൾ സംവിധാനങ്ങൾ വിശദീകരിക്കുന്നു.
പ്രീഫിൽ: ഭാരങ്ങൾ പുനരുപയോഗിക്കുക, റൂട്ടിംഗ് ജിപിയുവിൽ സൂക്ഷിക്കുക
പ്രീഫിൽ ഒരേസമയം നിരവധി ടോക്കൺ വരികൾ തുറന്നുകാട്ടുന്നു, എന്നാൽ ക്യൂവൺ ആ വരികളെ വിദഗ്ധരിലുടനീളം അസമമായി റൂട്ട് ചെയ്യുകയും സീക്വൻസിലൂടെ റിക്കറന്റ് അവസ്ഥ അപ്ഡേറ്റ് ചെയ്യുകയും ചെയ്യുന്നു. അതിന്റെ ഒപ്റ്റിമൈസേഷനുകൾ മൂന്ന് ഗ്രൂപ്പുകളായി തിരിച്ചിരിക്കുന്നു: റൂട്ടുചെയ്ത വരികൾക്ക് ചുറ്റും സ്പാഴ്സ് എക്സ്പേർട്ട് ജോലി സംഘടിപ്പിക്കുക, Gated DeltaNet സ്കാൻ ചിപ്പിൽ സൂക്ഷിക്കുക, നീളമുള്ള പ്രോംപ്റ്റുകളെ പരിമിതമായ കഷണങ്ങളായി വിഭജിക്കുക.
സ്പാഴ്സ് എക്സ്പേർട്ട് കമ്പ്യൂട്ടേഷൻ ഒപ്റ്റിമൈസ് ചെയ്യുക
മാട്രിക്സ് ഗുണന സമയത്ത് ഭാരങ്ങൾ ഡീകോഡുചെയ്യുക
Qwen3.6-35B-A3B ചെക്ക്പോയിന്റ് ഗ്രൂപ്പ്വൈസ് അഫൈൻ 4-ബിറ്റ് ക്വാണ്ടിസേഷൻ ഉപയോഗിക്കുന്നു. ഓരോ ഭാരവും ഒരു 4-ബിറ്റ് പൂർണ്ണസംഖ്യ കോഡായി സംഭരിച്ചിരിക്കുന്നു, അതേസമയം ഓരോ 64 ഭാരങ്ങളുടെ ഗ്രൂപ്പും അതിന്റെ മൂല്യങ്ങൾ പുനർനിർമ്മിക്കാൻ ഉപയോഗിക്കുന്ന ഒരു bfloat16 സ്കെയിലും ബയസും പങ്കിടുന്നു. ഇത് 35 ബില്യൺ പാരാമീറ്റർ മോഡലിനെ ഏകദേശം 70 ജിബി bfloat16 വെയിറ്റുകളിൽ നിന്ന് 19.4 ജിബി ചെക്ക്പോയിന്റാക്കി കുറയ്ക്കുന്നു, ഇത് മോഡൽ മാക്-ൽ റസിഡന്റ് ആയി സൂക്ഷിക്കുന്നത് പ്രായോഗികമാക്കുന്നു.
മാട്രിക്സ് ഗുണനത്തിനായി ഉപയോഗിക്കുന്ന മെറ്റൽ 4 ടെൻസർ പ്രവർത്തനം പായ്ക്ക് ചെയ്ത 4-ബിറ്റ് പ്രതിനിധാനത്തിന് പകരം bfloat16 ഓപ്പറാൻഡുകൾ ഉപഭോഗം ചെയ്യുന്നു. ഗുണനത്തിന് മുമ്പ്, ജിപിയു bfloat16-ൽ വെയിറ്റുകൾ പുനർനിർമ്മിക്കണം. ലില്ലിയിലെ ഒപ്റ്റിമൈസ് ചെയ്ത ഗ്രൂപ്പ്ഡ് GEMM ഈ പരിവർത്തനം ഒരു സമയം ഒരു ചെറിയ വെയ്റ്റ് ടൈൽ വീതം നിർവ്വഹിക്കുകയും റൂട്ട് ചെയ്ത ആക്ടിവേഷൻ വരികൾ ഉപയോഗിച്ച് ഗുണിക്കാൻ മാത്രം മതിയായ സമയം ഓൺ-ചിപ്പ് തേഡ്ഗ്രൂപ്പ് മെമ്മറിയിൽ ഫലം സൂക്ഷിക്കുകയും ചെയ്യുന്നു. അക്യുമുലേഷൻ 32-ബിറ്റ് ഫ്ലോട്ടിംഗ് പോയിന്റ് ഉപയോഗിക്കുന്നു, കൂടാതെ ഔട്ട്പുട്ട് bfloat16-ൽ എഴുതപ്പെടുന്നു. പൂർണ്ണമായ വികസിപ്പിച്ച വെയിറ്റ് അറേ യൂണിഫൈഡ് മെമ്മറിയിൽ ഒരിക്കലും സൃഷ്ടിക്കപ്പെടില്ല.
അബ്ലേഷനിൽ, ഡീകോഡിംഗ് ഒരു പ്രത്യേക പ്രവർത്തനമായി പ്രവർത്തിക്കുന്നു: ഇത് 4-ബിറ്റ് വെയിറ്റുകളെ യൂണിഫൈഡ് മെമ്മറിയിലെ ഒരു bfloat16 അറേയിലേക്ക് വികസിപ്പിക്കുന്നു, അതിനുശേഷം മാട്രിക്സ് കർണൽ ആ അറേ തിരികെ വായിക്കുന്നു. 512-ടോക്കൺ പ്രോംപ്റ്റിൽ, ഡീകോഡിംഗ് ഗ്രൂപ്പ് ചെയ്ത GEMM-ലേക്ക് മാറ്റുന്നത് ഈ ഇടനില എഴുത്തും വായനയും ഇല്ലാതാക്കുന്നതിലൂടെ എൻഡ്-ടു-എൻഡ് പ്രീഫിൽ ത്രൂപുട്ട് 77.4% വർദ്ധിപ്പിച്ചു.
എക്സ്പേർട്ട് റൂട്ടിംഗ് ജിപിയുവിൽ സൂക്ഷിക്കുക
ഗ്രൂപ്പ് ചെയ്ത GEMM-ന് ഓരോ എക്സ്പേർട്ടിനും നൽകിയിട്ടുള്ള ആക്ടിവേഷൻ വരികൾ ഒരുമിച്ച് സൂക്ഷിക്കേണ്ടതുണ്ട്. ഓരോ ടോക്കണും എട്ട് വിദഗ്ധരെ തിരഞ്ഞെടുത്ത ശേഷം, ഓരോ എക്സ്പേർട്ടിനും എത്ര അസൈൻമെന്റുകൾ പോയി എന്ന് ഒരു ഹിസ്റ്റോഗ്രാം എണ്ണുന്നു. ഒരു പ്രീഫിക്സ് സ്കാൻ ആ എണ്ണങ്ങളെ സ്റ്റാർട്ടിംഗ് ഓഫ്സെറ്റുകളാക്കി മാറ്റുന്നു, ഒരു സ്കാറ്റർ ഘപ്പ് വരികളെ അവയുടെ എക്സ്പേർട്ട് ഗ്രൂപ്പുകളിലേക്ക് സ്ഥാപിക്കുന്നു, കൂടാതെ ഒരു ബ്ലോക്ക് മാപ്പ് ഗ്രൂപ്പ് ചെയ്ത GEMM പ്രോസസ്സ് ചെയ്യേണ്ട സ്ഥിര വലുപ്പമുള്ള മാട്രിക്സ് ബ്ലോക്കുകൾ പട്ടികപ്പെടുത്തുന്നു.
ഒപ്റ്റിമൈസ് ചെയ്ത പാത ഓരോ പ്രോംപ്റ്റ് ചങ്കിനും ജിപിയു പ്രവർത്തനങ്ങളുടെ ഓർഡർ ചെയ്ത ബാച്ചായ ഒരു കമാൻഡ് ബഫറിൽ ഈ മുഴുവൻ ക്രമവും സൂക്ഷിക്കുന്നു. പകരം ഒരു അബ്ലേഷൻ താൽക്കാലികമായി നിർത്തുന്നു, അതിനാൽ സിപിയുവിന് റൂട്ടിംഗ് ഇന്റർമീഡിയറ്റുകൾ പരിശോധിക്കാനും അടുത്ത പ്രവർത്തനം സമർപ്പിക്കാനും കഴിയും. ഹിസ്റ്റോഗ്രാമും പ്രീഫിക്സ് സ്കാനും ജിപിയുവിൽ സൂക്ഷിക്കുന്നത് രണ്ട് കർണലുകൾ ചേർക്കുന്നു, എന്നാൽ ഓരോ MoE പാളിക്കുള്ളിലെയും സിപിയു-ജിപിയു സിൻക്രൊണൈസേഷൻ നീക്കംചെയ്യുന്നു.
512-ടോക്കൺ പ്രോംപ്റ്റിൽ, ജിപിയു-റെസിഡന്റ് റൂട്ടിംഗ് പ്രവർത്തനക്ഷമമാക്കുന്നത് എൻഡ്-ടു-എൻഡ് പ്രീഫിൽ 89% വർദ്ധിപ്പിച്ചു. കർണൽ എണ്ണം മാത്രം തെറ്റിദ്ധരിപ്പിക്കുന്നതാകാം എന്നും ഇത് കാണിക്കുന്നു: വേഗതയേറിയ പാത കൂടുതൽ കർണലുകൾ സമാരംഭിക്കുന്നു എന്നാൽ പാളിക്കുള്ളിൽ ഒരിക്കലും സിപിയുവിനായി കാത്തിരിക്കുന്നില്ല.
എക്സ്പേർട്ട് ലോഡുമായി ടൈൽ വലുപ്പം പൊരുത്തപ്പെടുത്തുക
2K-ടോക്കൺ പ്രോംപ്റ്റിൽ, ഓരോ ടോക്കണും 256 എക്സ്പേർട്ട്സിൽ എട്ടെണ്ണത്തിലേക്ക് റൂട്ട് ചെയ്യുന്നത് 16,384 ടോക്കൺ-എക്സ്പേർട്ട് അസൈൻമെന്റുകൾ അല്ലെങ്കിൽ ഓരോ എക്സ്പേർട്ടിനും ശരാശരി 64 ആക്ടിവേഷൻ വരികൾ ഉണ്ടാക്കുന്നു. യഥാർത്ഥ വിതരണം അസമമാണ്: ചില വിദഗ്ധർക്ക് ധാരാളം വരികൾ ലഭിക്കുന്നു, മറ്റുള്ളവർക്ക് കുറച്ച് ലഭിക്കുന്നു.
ഗ്രൂപ്പ് ചെയ്ത GEMM ഓരോ എക്സ്പേർട്ടിന്റെയും ഔട്ട്പുട്ടിനെ ടൈലുകളായി വിഭജിക്കുന്നു, അവ ഒരു മാട്രിക്സ് ഗുണനത്തിന്റെ ഔട്ട്പുട്ടിന്റെ ചെറിയ ദീർഘചതുര ബ്ലോക്കുകളാണ്. ഓരോ ടൈയിലും ഒരു ജിപിയു തേഡ്ഗ്രൂപ്പിന് നൽകിയിരിക്കുന്നു. ആപ്പിൾ സിലിക്കണിന്റെ ജിപിയുകളിൽ, ഒരു തേഡ്ഗ്രൂപ്പിൽ ഒന്നോ അതിലധികമോ സിംഡ്ഗ്രൂപ്പുകൾ അടങ്ങിയിരിക്കുന്നു, ഓരോന്നും ലോക്ക്സ്റ്റെപ്പിൽ നിർദ്ദേശങ്ങൾ നിർവഹിക്കുന്ന 32 ത്രെഡുകൾ ഉൾക്കൊള്ളുന്നു.
വലിയ ടൈലുകൾ കൂടുതൽ വരികളിൽ സജ്ജീകരണച്ചെലവ് വ്യാപിപ്പിക്കുകയും കൂടുതൽ സമാന്തര ജോലി വെളിപ്പെടുത്തുകയും ചെയ്യുന്നു, എന്നാൽ ഒരു എക്സ്പേർട്ടിന് കുറച്ച് വരികൾ മാത്രം ലഭിക്കുമ്പോൾ വലിയ ടൈലിന്റെ ഒരു ഭാഗം നിഷ്ക്രിയമായി തുടരുന്നു. അതിനാൽ ടൈൽ വലുപ്പവും സിംഡ്ഗ്രൂപ്പ് എണ്ണവും ബന്ധപ്പെട്ടിരിക്കുന്നു.
ഒരു അബ്ലേഷൻ ടൈൽ 16 വരികളിൽ ഉറപ്പിക്കുന്നു. ആ നിയന്ത്രണത്തിനെതിരെ, നാല് സിംഡ്ഗ്രൂപ്പുകളുള്ള 32-വരി ടൈൽ പ്രവർത്തനക്ഷമമാക്കുന്നത് 2K ടോക്കണുകളിൽ എൻഡ്-ടു-എൻഡ് പ്രീഫിൽ 13.2% മെച്ചപ്പെടുത്തി.
റിക്കറന്റ് സ്റ്റേറ്റ് ചിപ്പിൽ സൂക്ഷിക്കുക
പ്രീഫിൽ സമയത്ത്, ഓരോ Gated DeltaNet ലെയറും അതിന്റെ റിക്കറന്റ് സ്റ്റേറ്റ് മുന്നോട്ട് കൊണ്ടുപോകുമ്പോൾ ക്രമത്തിൽ പ്രോംപ്റ്റ് സ്കാൻ ചെയ്യുന്നു. രജിസ്റ്റർ റെസിഡൻസി പ്രവർത്തനരഹിതമാക്കി, അബ്ലേഷൻ ഒരു ബ്ലോക്ക്വൈസ് സ്കാൻ ഉപയോഗിക്കുന്നു. 2K-ടോക്കൺ പ്രോംപ്റ്റിൽ, ആ പാത ഓരോ പാളിക്കും 256 MiB (മെബിബൈറ്റുകൾ) സ്റ്റേറ്റ് നീക്കുകയും, പങ്കെടുക്കുന്ന എല്ലാ ത്രെഡുകളും പരസ്പരം കാത്തിരിക്കേണ്ടി വരുന്ന സിൻക്രൊണൈസേഷൻ പോയിന്റുകളായ തടസ്സങ്ങളിൽ സഹകരിക്കുന്ന ത്രെഡുകളെ ആവർത്തിച്ച് നിർത്തുകയും ചെയ്യുന്നു.
റിക്കറന്റ് സ്റ്റേറ്റ് ഒരു മാട്രിക്സാണ്. ഒപ്റ്റിമൈസ് ചെയ്ത കർണൽ ഓരോ കോളണും ഒരു സിംഡ്ഗ്രൂപ്പിന് നൽകുന്നു. സിംഡ്ഗ്രൂപ്പ് കോളണെ അതിന്റെ ത്രെഡുകൾക്കിടയിൽ വിഭജിക്കുന്നു, കോളൺ ഒരിക്കൽ അവരുടെ രജിസ്റ്ററുകളിലേക്ക് ലോഡ് ചെയ്യുന്നു, കൂടാതെ മുഴുവൻ സ്കാനിലൂടെയും അവസ്ഥ കൊണ്ടുപോകുന്നു. ത്രെഡ്ഗ്രൂപ്പ് മെമ്മറിക്ക് പകരം സിംഡ്ഗ്രൂപ്പ് പ്രവർത്തനങ്ങൾ വഴി ത്രെഡുകൾ ഇടനില ഫലങ്ങൾ പരസ്പരം കൈമാറുന്നു, ത്രെഡ്ഗ്രൂപ്പിലുടനീളം പങ്കിടുന്ന ഓൺ-ചിപ്പ് സംഭരണം. സ്കാനിന് ശേഷം മാത്രമേ പൂർത്തിയായ അവസ്ഥ തിരികെ എഴുതപ്പെടുകയുള്ളൂ.
ചെറിയ റൗണ്ടിംഗ് പിഴവുകൾ സീക്വൻഷ്യൽ അപ്ഡേറ്റുകളിൽ സംയോചിക്കുന്നതിനാൽ സ്റ്റേറ്റും അതിന്റെ ഗേറ്റും 32-ബിറ്റ് ഫ്ലോട്ടിംഗ്-പോയിന്റ് ഫോർമാറ്റ് ഉപയോഗിക്കുന്നു. ക്വറി, കീ ആക്ടിവേഷനുകൾ bfloat16-ൽ തുടരുന്നു.
2K-ടോക്കൺ പ്രോംപ്റ്റിൽ, രജിസ്റ്റർ-റെസിഡന്റ് സ്കാൻ പ്രവർത്തനക്ഷമമാക്കുന്നത് എൻഡ്-ടു-എൻഡ് പ്രീഫിൽ 5.6% മെച്ചപ്പെടുത്തി. എക്സ്പേർട്ട് GEMM-കൾ പ്രീഫിൽ സമയത്തിന്റെ ഏകദേശം 90% വരുന്നു. സീക്വൻഷ്യൽ സ്കാൻ ന്യൂറൽ ആക്സിലറേറ്ററുകളിൽ നിന്ന് പ്രയോജനം നേടുന്നതിന് ആവശ്യമായ പുനരുപയോഗിക്കാവുന്ന മാട്രിക്സ് ജോലി തുറന്നുകാട്ടുന്നില്ല.
പ്രോംപ്റ്റ് ചങ്കിംഗ് ഉപയോഗിച്ച് താൽക്കാലിക മെമ്മറി ബന്ധിപ്പിക്കുക
ഓരോ പ്രോംപ്റ്റ് ടോക്കണിനും താൽക്കാലിക ഡാറ്റ മെമ്മറിയിൽ ഒരേസമയം സൂക്ഷിക്കുന്നതിന് പകരം റൺടൈം ഒരു നീണ്ട പ്രോംപ്റ്റുകളെ പരിമിതമായ കഷണങ്ങളുടെ ഒരു പരമ്പരയായി പ്രോസസ്സ് ചെയ്യുന്നു. മോഡൽ വെയിറ്റുകൾ യൂണിഫൈഡ് മെമ്മറിയിൽ റസിഡന്റ് ആയി തുടരുന്നു, അതേസമയം റിക്കറന്റ് സ്റ്റേറ്റും കെവി കാഷെയും ഒരു കഷണത്തിൽ നിന്ന് മറ്റൊന്നിലേക്ക് സന്ദർഭം വഹിക്കുന്നു. മുൻകാല സന്ദർഭങ്ങളൊന്നും ഒഴിവാക്കില്ല.
ചങ്കിംഗ് ഇല്ലാതെ, താൽക്കാലിക ആക്ടിവേഷൻ അറേകൾ മുഴുവൻ പ്രോംപ്റ്റിനൊപ്പം വളരുകയും യൂണിഫൈഡ് മെമ്മറിക്കായി മോഡൽ വെയിറ്റുകൾ, റിക്കറന്റ് സ്റ്റേറ്റ്, കെവി കാഷെ എന്നിവയുമായി മത്സരിക്കുകയും ചെയ്യുന്നു. ചങ്കിംഗ് ഒരു സെഗ്മെന്റിന്റെ താൽക്കാലിക മൂല്യങ്ങൾ ഒരു സമയം സജീവമായി സൂക്ഷിക്കുന്നു, തുടർന്ന് അടുത്ത സെഗ്മെന്റ് പ്രോസസ്സ് ചെയ്യുന്നതിന് മുമ്പ് ആ സംഭരണം റിലീസ് ചെയ്യുകയോ പുനരുപയോഗിക്കുകയോ ചെയ്യുന്നു. ഇത് പീക്ക് വർക്കിംഗ് മെമ്മറി പരിമിതപ്പെടുത്തുകയും മോഡലിന്റെ ഔട്ട്പുട്ട് മാറ്റാതെ തന്നെ നീളമുള്ള പ്രോംപ്റ്റുകൾ പ്രോസസ്സ് ചെയ്യാൻ എഞ്ചിനെ അനുവദിക്കുകയും ചെയ്യുന്നു.
ചങ്ക് ചെയ്ത പ്രീഫിൽ പല എഞ്ചിനുകളിലും ജനപ്രിയമാണ് കൂടാതെ ഈ മെമ്മറി-നിയന്ത്രിത പരിതസ്ഥിതികളിൽ നീളമുള്ള മൾട്ടി-ടേൺ ട്രാജക്ടറികൾ സെർവ് ചെയ്യുന്നതിന് നിർണായകവുമാണ്. മുൻകാല ചങ്കുകളുടെ ആവർത്തിച്ചുള്ള കെവി ലോഡുകളിൽ നിന്നുള്ള ചില അധിക ഓവർഹെഡിനൊപ്പം, അറ്റൻഷൻ ലെയറുകൾക്കായുള്ള മൊത്തം പ്രീഫിൽ സമയം പ്രോംപ്റ്റ് നീളത്തിൽ ക്വാഡ്രാറ്റിക് ആയി തുടരുന്നു.
ഡീകോഡ്: ഒരു ടോക്കണിന് നീക്കിയ ബൈറ്റുകൾ കുറയ്ക്കുക
ബാച്ച്-1 ഡീകോഡ് ഒരു സമയം ഒരു പുതിയ വരി പ്രോസസ്സ് ചെയ്യുന്നു. ഭാര പുനരുപയോഗം വളരെ കുറവായതിനാൽ, ഓരോ ടോക്കണിനും എഞ്ചിൻ എത്ര ബൈറ്റുകൾ നീക്കുന്നു എന്നതിനെ ആശ്രയിച്ചാണ് അതിന്റെ ത്രൂപുട്ട് പ്രധാനമായും ആശ്രയിക്കുന്നത്. ഡീകോഡ് മാറ്റങ്ങൾ നാല് ഗ്രൂപ്പുകളായിെ തിരിയുന്നു: ഒരു വരി ഭാര പാത ഒപ്റ്റിമൈസ് ചെയ്യുക, ഓരോ ഘട്ടവും ജിപിയുവിൽ സൂക്ഷിക്കുക, ഇടനില, സ്റ്റേറ്റ് ട്രാഫിക് കുറയ്ക്കുക, ശ്രദ്ധ കാഷെ കാര്യക്ഷമമായി വായിക്കുക.
ഒരു വരി ഭാര പാത ഒപ്റ്റിമൈസ് ചെയ്യുക
MLX ഇതിനകം തന്നെ പ്രത്യേക മാട്രിക്സ്-വെക്റ്റർ കർണലുകളിലേക്ക് ഒരൊറ്റ വരി ജോലി അയക്കുന്നു. ലില്ലി MLX ഉപയോഗിക്കാത്തതിനാൽ, കസ്റ്റം റൺടൈം അതേ അടിസ്ഥാന തന്ത്രം നൽകണം. ഞങ്ങളുടെ റോ-പാരലൽ GEMV ഒരൊറ്റ ആക്ടിവേഷൻ വരിക്ക് വേണ്ടി രൂപകൽപ്പന ചെയ്തിട്ടുള്ളതാണ്. വെയിറ്റ് മാട്രിക്സിന്റെ വിവിധ ഭാഗങ്ങൾ സമാന്തരമായി വായിക്കുമ്പോൾ ഒരു സിംഡ്ഗ്രൂപ്പ് ഔട്ട്പുട്ടിൽ സഹകരിക്കുന്നു.
ഓരോ ഡീകോഡ് ഘട്ടവും ജിപിയുവിൽ സൂക്ഷിക്കുക
ടോക്കൺ ഹാൻഡ്ഓഫ് ജിപിയുവിൽ സൂക്ഷിക്കുക
ഓരോ ഡീകോഡ് ഘട്ടവും അടുത്ത ടോക്കൺ തിരഞ്ഞെടുക്കുന്നതിലൂടെ അവസാനിക്കുന്നു; തുടർന്നുള്ള ഘട്ടം ഇൻപുട്ടായി ആ ടോക്കണിൽ ആരംഭിക്കുന്നു. തിരഞ്ഞെടുപ്പ് സിപിയുലേക്ക് അയക്കുകയും പിന്നീട് ജിപിയുലേക്ക് തിരികെ നൽകുകയും ചെയ്യുന്നത് ഓരോ ടോക്കണിലേക്കും ഒരു സിൻക്രൊണൈസേഷൻ പോയിന്റ് ചേർക്കുന്നു. ഞങ്ങളുടെ റൺടൈം പകരം രണ്ട് കമാൻഡ് ബഫറുകൾക്കും രണ്ട് ജിപിയു-റെസിഡന്റ് ടോക്കൺ സ്ലോട്ടുകൾക്കും ഇടയിൽ മാറിമാറി വരുന്നു. ജിപിയു ഏറ്റവും ഉയർന്ന സ്കോർ നേടിയ ടോക്കൺ തിരഞ്ഞെടുക്കുകയും അടുത്ത ഡീകോഡ് ഘട്ടത്തിനായുള്ള ഇൻപുട്ട് സ്ലോട്ടിലേക്ക് അതിന്റെ ടോക്കൺ ഐഡി നേരിട്ട് എഴുതുകയും ചെയ്യുന്നു, അതേസമയം സിപിയു തുടർന്നുള്ള ജോലികൾ തയ്യാറാക്കുന്നു.
സ്വതന്ത്ര ജിപിയു ജോലി ഓവർലാപ്പ് ചെയ്യുക
രേഖപ്പെടുത്തിയ ഒരു ബാച്ച്-1 ഡീകോഡ് ഘട്ടത്തിൽ, ഒരു ടോക്കൺ ജനറേറ്റ് ചെയ്യുന്നത് 795 ജിപിയു കർണലുകൾ സമാരംഭിച്ചു. അവയുടെ ഡിപെൻഡൻസികൾ 555 സീക്വൻഷ്യൽ ഘട്ടങ്ങൾ രൂപീകരിച്ചു, ചില കർണലുകളെ ഒരേസമയം പ്രവർത്തിക്കാൻ സ്വതന്ത്രമാക്കി. എന്നിരുന്നാലും മെറ്റലിന്റെ സീരിയൽ എക്സിക്യൂഷൻ മോഡ് ഓരോ കർണലുകളും ക്രമത്തിൽ പ്രവർത്തിപ്പിച്ചു.
ഒപ്റ്റിമൈസ് ചെയ്ത ഡീകോഡ് പാത ഒരു ഒരേസമയം മെറ്റൽ പാസിൽ യഥാർത്ഥ ഡാറ്റ ഡിപെൻഡൻസികൾ രേഖപ്പെടുത്തുന്നു. ജിപിയു ഉറവിടങ്ങൾ അനുവദിക്കുമ്പോൾ സ്വതന്ത്ര കർണൽ ലോഞ്ചുകൾ ഒരേസമയം പ്രവർത്തിക്കാൻ കഴിയും. പിൽക്കാല ജോലിക്ക് മുമ്പത്തെ ഫലം ആവശ്യമുള്ളപ്പോൾ മാത്രമേ ഒരു തടസ്സം ചേർക്കൂ.
ഇടനില, സ്റ്റേറ്റ് ട്രാഫിക് കുറയ്ക്കുക
Separate kernels പലപ്പോഴും ഒരു intermediate materialize ചെയ്യുന്നു: ഒരു kernel ഒരു temporary result memory-യിലേക്ക് എഴുതുന്നു, പിന്നെ അടുത്തത് ആ result തിരിച്ച് വായിക്കുന്നു. Optimized decode path നാല് chains fuse ചെയ്യുന്നു: രണ്ട് expert input projections അവയുടെ gated activation-ോടെ; expert output projection അതിന്റെ routing score-ഉം shared-expert result-ഉം ചേർന്ന്; attention-ന് മുമ്പുള്ള query, key preparation; കൂടാതെ normalization-ോടുകൂടിയ recurrent update. ഓരോ fused kernel-ഉം temporary values memory വഴി അയയ്ക്കുന്നതിന് പകരം registers-ലാണ് നിലനിർത്തുന്നത്.
ഫ്യൂഷൻ ഡിപെൻഡൻസി ഗ്രാഫും ചെറുതാക്കുന്നു: ഒരു ഇടനില എഴുത്ത് അപ്രത്യക്ഷമാകുമ്പോൾ, അതിന്റെ ഉപഭോക്താവിനെ സംരക്ഷിച്ച തടസ്സവും അപ്രത്യക്ഷമാകും.
ശ്രദ്ധ കാഷെ കാര്യക്ഷമമായി വായിക്കുക
അറ്റൻഷൻ-കാഷെ വായനകൾ കോലീസ് ചെയ്യുക
ഓരോ ഡീകോഡ് ഘട്ടത്തിലും അറ്റൻഷൻ കെവി കാഷെയിൽ നിന്ന് കീകളും മൂല്യങ്ങളും വായിക്കുന്നു. അബ്ലേഷനിൽ, അയൽപക്കത്തുള്ള ജിപിയു ത്രെഡുകൾ എല്ലായ്പ്പോഴും അയൽപക്ക ബൈറ്റുകൾ അഭ്യർത്ഥിക്കുന്നില്ല, ഇത് കൂടുതൽ പ്രത്യേക ഇടപാടുകൾ നൽകാൻ മെമ്മറി സിസ്റ്റത്തെ നിർബന്ധിക്കുന്നു. കോലീസ് ചെയ്ത ലോഡുകൾ പ്രവർത്തനക്ഷമമാക്കുന്നത് അടുത്തുള്ള ത്രെഡുകളെ അടുത്തുള്ള ബൈറ്റുകൾ അഭ്യർത്ഥിക്കാൻ പ്രേരിപ്പിക്കുന്നുവെന്ന് ഹാർഡ്വെയറിന് അവയുടെ വായനകൾ സംയോജിപ്പിക്കാൻ കഴിയും.
bfloat16 കോൺഫിഗറേഷനിൽ, കോലീസിംഗ് കീ ബാൻഡ്വിഡ്ത്ത് 33.8-ൽ നിന്ന് 47.9 GB/s ആയി വർദ്ധിപ്പിച്ചു, വാല്യൂ ബാൻഡ്വിഡ്ത്ത് 42.0-ൽ നിന്ന് 61.8 GB/s ആയി വർദ്ധിപ്പിച്ചു, കൂടാതെ 3,840-ടോക്കൺ കോൺടെക്സ്റ്റിൽ എൻഡ്-ടു-എൻഡ് ഡീകോഡ് 2.1% മെച്ചപ്പെടുത്തി.
കെവി വരികൾ വീണ്ടും ഉപയോഗിക്കാൻ ക്വറി ഹെഡുകൾ പാക്ക് ചെയ്യുക
ഗ്രൂപ്പ്ഡ്-ക്വറി അറ്റൻഷൻ എട്ട് ക്വറി ഹെഡുകളെ ഒരു കെവി ഹെഡ് പങ്കിടാൻ അനുവദിക്കുന്നു. അബ്ലേഷനിൽ, ഓരോ ക്വറി ഹെഡും ഒരു പ്രത്യേക സിംഡ്ഗ്രൂപ്പിൽ പ്രവർത്തിക്കുന്നു, അതിനാൽ എട്ടും സ്വതന്ത്രമായി ഒരേ കാഷെ ചെയ്ത കെവി വരി അഭ്യർത്ഥിക്കുന്നു. ഒപ്റ്റിമൈസ് ചെയ്ത കർണൽ നാല് ക്വറി ഹെഡുകളെ ഒരു കോൺക്രീറ്റ് തേഡ്ഗ്രൂപ്പിലേക്ക് പാക്ക് ചെയ്യുന്നു, അത് ഓരോ കെവി വരിയും ഒരിക്കൽ ലോഡ് ചെയ്യുകയും നാല് ശ്രദ്ധ കണക്കുകൂട്ടലുകളിൽ ഉടനീളം അത് വീണ്ടും ഉപയോഗിക്കുകയും ചെയ്യുന്നു. രണ്ടാമത്തെ തേഡ്ഗ്രൂപ്പ് ശേഷിക്കുന്ന നാല് തലകളെ കൈകാര്യം ചെയ്യുന്നു.
സാധാരണയായി GQA പാക്കിംഗ് എന്ന് വിളിക്കപ്പെടുന്ന ഈ സാങ്കേതികവിദ്യ, എട്ട് സ്വതന്ത്ര കെവി അഭ്യർത്ഥനകളെ രണ്ട് പങ്കിട്ട ലോഡുകളായി കുറയ്ക്കുമ്പോൾ അതേ അരിത്മെറ്റിക് നിർമ്മിക്കുകയും സമാനമായ ഔട്ട്പുട്ട് ബൈറ്റുകൾ ഉത്പാദിപ്പിക്കുകയും ചെയ്യുന്നു. അൺപാക്ക് ചെയ്ത അബ്ലേഷനെതിരെ, ഇത് 32K-ടോക്കൺ കോൺടെക്സ്റ്റിൽ എൻഡ്-ടു-എൻഡ് ഡീകോഡ് ത്രൂപുട്ട് 23.8% മെച്ചപ്പെടുത്തി.
നീളമുള്ള കോൺടെക്സ്റ്റുകളിൽ അറ്റൻഷൻ ലേഔട്ടുകൾ മാറ്റുക
ഓരോ ഫുൾ-അറ്റൻഷൻ ലെയറിലുമുള്ള ഓരോ decode ഘട്ടവും നിലവിലുള്ള KV cache സ്കാൻ ചെയ്യുന്നു. ഒരു fixed-block layout ആ cache-നെ GPU സമാന്തരമായി പ്രോസസ് ചെയ്യാനാകുന്ന തുല്യ ഭാഗങ്ങളായി വിഭജിക്കുന്നു. cache ചെറുതായിരിക്കുമ്പോൾ അതിന്റെ അധിക scheduling പ്രയോജനകരമല്ല, പക്ഷേ context വളരുന്നതിനനുസരിച്ച് fixed-block layout ജോലി കൂടുതൽ സമചിതമായി തുലനം ചെയ്യുന്നു.
ഈ മോഡലിനായി, റൺടൈം പൊതുവായ ശ്രദ്ധ പാത 32K ടോക്കണുകൾക്ക് താഴെയായി സൂക്ഷിക്കുകയും 32K അല്ലെങ്കിൽ അതിൽ കൂടുതലായിരിക്കുമ്പോൾ ഫിക്സഡ്-ബ്ലോക്ക് പാത ഉപയോഗിക്കുകയും ചെയ്യുന്നു. ഓരോ തലയ്ക്കും 256 മൂല്യങ്ങളും എട്ട് ക്വറി ഹെഡുകൾ ഒരു കെവി ഹെഡ് പങ്കിടുമ്പോഴും സ്വിച്ച് ബാധകമാണ്; മറ്റ് രൂപങ്ങൾ പൊതുവായ പാതയിൽ തുടരുന്നു. ഒരു അബ്ലേഷൻ ഈ സ്വിച്ച് പ്രവർത്തനരഹിതമാക്കുകയും എല്ലായ്പ്പോഴും പൊതുവായ പാത ഉപയോഗിക്കുകയും ചെയ്യുന്നു. ഫിക്സഡ്-ബ്ലോക്ക് റൂട്ട് പ്രവർത്തനക്ഷമമാക്കുന്നത് 32K-യിൽ 7.7%, 64K-യിൽ 27.4%, 128K-യിൽ 40.2% എന്നിങ്ങനെ എൻഡ്-ടു-എൻഡ് ഡീകോഡ് മെച്ചപ്പെടുത്തി.
കൂടുതൽ ഒപ്റ്റിമൈസേഷന്റെ പരിധികൾ
ചില മാറ്റങ്ങൾ ഒരു ഒറ്റപ്പെട്ട പ്രവർത്തനം മെച്ചപ്പെടുത്തി എന്നാൽ എൻഡ്-ടു-എൻഡ് ഇൻഫറൻസ് മെച്ചപ്പെടുത്തിയില്ല.
Speculative decoding, ചെറുതായ ഒരു model ഉപയോഗിച്ച് full model verify ചെയ്യാൻ tokens നിർദ്ദേശിക്കുന്ന രീതിയാണ്, batch-1 decode 18% മന്ദഗതിയാക്കി. Verification ഈ hardware-ന് അസൗകര്യകരമായ ആകൃതി ആയ രണ്ട് മുതൽ അഞ്ച് വരെയുള്ള rows-ിന്റെ groups പ്രോസസ് ചെയ്തു, കൂടാതെ rows പലപ്പോഴും വ്യത്യസ്ത experts-നെ തിരഞ്ഞെടുക്കുകയും ചെയ്തു, ഇതു വായിക്കേണ്ട expert-weight dataയുടെ അളവ് വർധിപ്പിച്ചു. Drafter-ന്റെ output vocabulary കുറച്ചതോടെ drafter throughput 4.7–5.1% മെച്ചപ്പെട്ടു, പക്ഷേ complete speculative loop വേഗത്തിലായില്ല. ഈ ഫലം workload-specific ആണ്: Blackwell-ലുള്ള ഞങ്ങളുടെ batched Qwen deployment വ്യത്യസ്ത സാഹചര്യങ്ങളിൽ speculative decoding ഉപയോഗിക്കുന്നു.
ജിപിയു ലോഞ്ചുകൾ കുറയ്ക്കുക, മുഴുവൻ ഘട്ടങ്ങളും ഓവർലാപ്പ് ചെയ്യുക, വലിയ പ്രീഫിൽ ടൈലുകൾ ഉപയോഗിക്കുക, വിശാലമായ ഫ്യൂഷൻ പ്രയോഗിക്കുക, റൂട്ടർ വേഗത്തിലാക്കുക, ഔട്ട്പുട്ട് പ്രൊജക്ഷൻ ടോക്കൺ സെലക്ഷനുമായി സംയോജിപ്പിക്കുക എന്നിവ മറ്റ് പരീക്ഷണങ്ങളിൽ ഉൾപ്പെടുന്നു. പൂർണ്ണ ഇൻഫറൻസ് ലൂപ്പ് ഒന്നും മെച്ചപ്പെടുത്തിയില്ല.
പ്രധാന പ്രീഫിൽ, ഡീകോഡ് പ്രവർത്തനങ്ങളിൽ ശേഷിക്കുന്ന ഹെഡ്റൂം വളരെ കുറവാണെന്നും ഹാർഡ്വെയർ പരിധികളുടെ അളവുകൾ കാണിച്ചു. MoE GEMMs-ഉം GEMV-കളും അവയുടെ ആക്സസ് പാറ്റേണുകൾക്കായി ഏറ്റവും വേഗതയേറിയ സുസ്ഥിര വെയിറ്റ്-റീഡ് നിരക്കുകളുടെ 97.9%, 90.3% എന്നിവയിൽ എത്തി. സ്പാഴ്സ് GEMV-ൽ നിന്ന് അരിത്മെറ്റിക് നീക്കം ചെയ്യുന്നത് ത്രൂപുട്ട് 0.2% മാത്രം മാറ്റി, ഇത് കമ്പ്യൂട്ടേഷനേക്കാൾ വെയിറ്റ് റീഡുകളാണ് പരിമിതപ്പെടുത്തുന്ന റിസോഴ്സ് എന്ന് സ്ഥിരീകരിക്കുന്നു. പ്രീഫില്ലിന്റെ മാട്രിക്സ് ഗുണനവും സമാനമായി ഒറ്റപ്പെട്ട അവസ്ഥയിൽ സൈദ്ധാന്തിക മാട്രിക്സ് പരിധിയുടെ 93%-ഉം പരീക്ഷിച്ച മോഡലുകൾക്കുള്ളിൽ 80–86%-ഉം എത്തി.
എൻഡ്-ടു-എൻഡ് പ്രകടനം
എൻഡ്-ടു-എൻഡ് താരതമ്യം രണ്ട് എഞ്ചിനുകളിലും സമാനമായ 4-ബിറ്റ് ചെക്ക്പോയിന്റ് ബൈറ്റുകൾ ലോഡ് ചെയ്യുകയും ഒരൊറ്റ 40-കോർ, 128 ജിബി എം5 മാക്-ൽ ഒരു സമയം ഒരു അഭ്യർത്ഥന നടത്തുകയും ചെയ്യുന്നു. ഓരോ റൗണ്ടിനുള്ളിലും, പശ്ചാത്തല ലോഡിൽ നിന്നും ചിപ്പ് താപനിലയിലെ മാറ്റങ്ങളിൽ നിന്നുമുള്ള പക്ഷപാതം കുറയ്ക്കുന്നതിന് രണ്ട് എഞ്ചിനുകളും മാറിമാറി വരുന്ന ക്രമത്തിൽ പ്രവർത്തിക്കുന്നു. ഞങ്ങൾ MLX-LM-ന്റെ ഏറ്റവും വേഗതയേറിയ നേരിട്ടുള്ള ജനറേഷൻ പാതയുമായി താരതമ്യം ചെയ്യുന്നു, അതിന്റെ സെർവറുമായല്ല, അതിനാൽ അളവ് സെർവിംഗ് ഓവർഹെഡിനേക്കാൾ മോഡൽ എക്സിക്യൂഷനിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നു.
സ്വീപ്പ് പ്രീഫില്ലിനായി പത്ത് പ്രോംപ്റ്റ് നീളങ്ങളും ഡീകോഡിനായി പത്ത് കോൺടെക്സ്റ്റ് നീളങ്ങളും 256 മുതൽ 128K ടോക്കണുകൾ വരെ ഉൾക്കൊള്ളുന്നു. എഞ്ചിൻ കൂടുതൽ ടോക്കണുകളിലുടനീളം സ്ഥിരമായ സജ്ജീകരണച്ചെലവുകൾ വ്യാപിപ്പിക്കുന്നതിനാൽ പ്രീഫിൽ ത്രൂപുട്ട് ആദ്യം ഉയരുന്നു. പ്രീഫിൽ ഏകദേശം 4K-ടോക്കൺ പ്രോംപ്റ്റിൽ കൊടുമുടിയിലെത്തുന്നു, തുടർന്ന് പ്രോംപ്റ്റ് വളരുമ്പോൾ പത്ത് ഫുൾ-അറ്റൻഷൻ ലെയറുകൾ കൂടുതൽ ജോലി ചെയ്യുന്നതിനാൽ കുറയുന്നു. ചെറിയ കോൺടെക്സ്റ്റുകളിൽ ഡീകോഡ് മിക്കവാറും പരന്നതായി തുടരുന്നു കൂടാതെ വളരുന്ന കെവി കാഷെ വായിക്കുന്നത് കാര്യമാകുമ്പോൾ കുറയുന്നു. രേഖപ്പെടുത്തിയ ഓരോ നീളത്തിലും കസ്റ്റം എഞ്ചിൻ വേഗതയുള്ളതാണ്.
സ്പെഷ്യലൈസ്ഡ് എക്സിക്യൂഷൻ ഫ്ലോട്ടിംഗ്-പോയിന്റ് പ്രവർത്തനങ്ങളുടെ ക്രമം മാറ്റാൻ കഴിയുമെന്നതിനാൽ, ഞങ്ങൾ MLX-LM-നെ എതിരെയുള്ള സംഖ്യാ സ്ഥിരതയും പരിശോധിച്ചു. ഒരു ടീച്ചർ-ഫോഴ്സ്ഡ് താരതമ്യത്തിൽ, രണ്ട് എഞ്ചിനുകളും 192 സ്ഥാനങ്ങളിൽ ഓരോന്നിലും ഒരേ റഫറൻസ് പ്രീഫിച്ചിൽ നിന്ന് അടുത്ത ടോക്കൺ പ്രവചിച്ചു, ഇത് മുൻകാല വ്യത്യാസങ്ങൾ പിന്നീടുള്ള ഇൻപുട്ടുകളെ ബാധിക്കുന്നത് തടഞ്ഞു. ലില്ലിയുടെ പെർപ്ലെക്സിറ്റി 0.04% മാത്രം കൂടുതലായിരുന്നു, കൂടാതെ പരീക്ഷിച്ച സ്ഥാനങ്ങളുടെ 96.35%-ൽ ഇത് ഒരേ ടോപ്-റാങ്ക്ഡ് ടോക്കൺ തിരഞ്ഞെടുത്തു.
ലോക്കൽ പ്ലാറ്റ്ഫോമിനായി നിർമ്മിച്ചത്
ആപ്പിൾ സിലിക്കൺ ഒരു ചെറിയ ഡാറ്റാസെന്റർ ജിപിയു അല്ല. സ്വന്തം ഹാർഡ്വെയറും സോഫ്റ്റ്വെയർ സവിശേഷതകളുമുള്ള ഒരു സമ്പൂർണ്ണ ലോക്കൽ ഇൻഫറൻസ് പ്ലാറ്റ്ഫോമാണിത്. യൂണിഫൈഡ് മെമ്മറി ഒരു ഒരൊറ്റ നോഡിന് അതിന് എത്ര മോഡലുകളും സ്റ്റേറ്റുകളും പിടിക്കാൻ കഴിയും എന്നതിൽ വളരെ ഉയർന്ന പരിധി നൽകുന്നു. എം5 ന്യൂറൽ ആക്സിലറേറ്ററുകൾ പ്രീഫില്ലിലെ ഡെൻസ് മാട്രിക്സ് ജോലികൾ ആഗിരണം ചെയ്യുന്നു. വെക്റ്റർ ALU-കൾ ഡീകോഡിലെ ബാൻഡ്വിഡ്ത്ത്-ബൗണ്ട്, ലോ-റീയൂസ് ശേഷി കൈകാര്യം ചെയ്യുന്നു.
ക്യൂവൺ സ്പെഷ്യലൈസേഷനായി കൂടുതൽ അവസരങ്ങൾ നൽകുന്നു: എക്സ്പേർട്ട് റൂട്ടിംഗും റിക്കറന്റ് സ്റ്റേറ്റും ജിപിയുവിൽ സൂക്ഷിക്കുക, അനാവശ്യ ഇടനിലകൾ ഇല്ലാതാക്കുക, സ്വതന്ത്ര ജോലി ഓവർലാപ്പ് ചെയ്യുക, പങ്കിട്ട കെവി ഡാറ്റ വീണ്ടും ഉപയോഗിക്കുക, കൂടാതെ വർക്ക്ലോഡ് രൂപത്തിന് കർണലുകൾ പൊരുത്തപ്പെടുത്തുക.
മോഡൽ-, പ്ലാറ്റ്ഫോം-നിർദ്ദിഷ്ട ഒപ്റ്റിമൈസേഷൻ ഉപയോഗിച്ച്, ഒരു മാക്കിന് ഒരു വലിയ സ്പാഴ്സ് മോഡൽ കാര്യക്ഷമമായി പ്രവർത്തിപ്പിക്കാൻ കഴിയും. ഭാവിയിലെ പ്രവർത്തനം മോഡലുകൾ, ചിപ്പുകൾ, സെർവിങ് വർക്ക്ലോഡുകൾ എന്നിവയിലുടനീളം കവറേജ് വിശാലമാക്കും, കൂടാതെ ഒരു കോൺഫിഗറേഷനിൽ ഇവിടെ സാധുതയുള്ള സംവിധാനങ്ങളെ കൂടുതൽ പൊതുവായ റൺടൈം നയമാക്കി മാറ്റും.
മോഡലിന്റെ ആർക്കിടെക്ചറുമായും ഹാർഡ്വെയറിന്റെ നിർദ്ദിഷ്ട കമ്പ്യൂട്ട്, മെമ്മറി പാതകളുമായും എഞ്ചിനെ പൊരുത്തപ്പെടുത്തുക എന്നതാണ് വിശാലമായ തത്വം. മുൻനിര ഓപ്പൺ-വെയിറ്റ് മോഡലുകളും ഹാർഡ്വെയറും വികസിക്കുമ്പോൾ, ഉയർന്ന പ്രകടനമുള്ള ലോക്കൽ ഇൻഫറൻസ് അവയുടെ വ്യത്യാസങ്ങളെ അമൂർത്തമാക്കുന്നവയ്ക്ക് പകരം രണ്ടിനും അനുയോജ്യമായ എഞ്ചിനുകളെ കൂടുതലായി ആശ്രയിക്കും.
ഉദ്ധരണി
@online{perplexity2026OptimizingOnDeviceInferenceForAppleSilicon,
author = {{Perplexity} and Yibo Wu and Lequn Chen and Kevin Hu and Phi Hoang and Claire Beamer and Jeremy Yang and Denis Yarats},
title = {{Optimizing on-device inference for Apple Silicon}},
date = {2026-09-01},
url = {https://www.perplexity.ai/hub/blog/optimizing-on-device-inference-for-apple-silicon}
}