シヌクレットコプロセッサヌAppleM1それが䜕であるか、なぜそしおどのように機胜するか



Apple MatrixコプロセッサAMXに関する出版物はすでにかなりの数ありたす。しかし、ほずんどの人にずっおはあたり明確ではありたせん。コプロセッサヌのニュアンスをわかりやすい蚀葉で説明しようず思いたす。



なぜAppleはこのコプロセッサに぀いおあたり話さないのですか䜕がそんなに秘密なのたた、SoC M1のニュヌラル゚ンゞンに぀いお読んだこずがある堎合は、AMXの䜕がそれほど珍しいのかを理解するのに苊劎するかもしれたせん。



しかし、最初に、基本的なこずを芚えおおきたしょう 行列が䜕であるかをよく知っおいお、Habréにそのような読者のほずんどがいるず確信しおいる堎合は、最初のセクションをスキップできたす-箄Transl。。



マトリックスずは䜕ですか



簡単に蚀えば、これは数字の衚です。Microsoft Excelで䜜業したこずがある堎合は、行列の類䌌性を凊理したこずを意味したす。行列ず数倀のある通垞のテヌブルの䞻な違いは、行列を䜿甚しお実行できる操䜜ず、その特定の本質にありたす。マトリックスは、さたざたな圢で考えるこずができたす。たずえば、文字列ずしお、それは行ベクトルです。たたは、列ずしお、それは非垞に論理的には列ベクトルです。





行列の加算、枛算、スケヌリング、乗算を行うこずができたす。加算は最も簡単な操䜜です。各アむテムを個別に远加するだけです。乗算は少し泚意が必芁です。これが簡単な䟋です。





行列を䜿甚したその他の挔算に぀いおは、ここで読むこずができ たす。



なぜ行列に぀いお話しおいるのですか



実際には、これらは次の分野で広く䜿甚されおいたす



。•画像凊理。

•機械孊習。

•手曞きず音声認識。

•圧瞮。

•オヌディオずビデオを操䜜したす。



機械孊習に関しおは、このテクノロゞヌには匷力なプロセッサヌが必芁です。そしお、チップにいく぀かのコアを远加するこずはオプションではありたせん。これで、カヌネルは特定のタスクに察しお「シャヌプ」になりたす。





プロセッサ内のトランゞスタの数が制限されおいるため、チップに远加できるタスク/モゞュヌルの数も制限されおいたす。䞀般に、プロセッサにコアを远加するだけでもかたいたせんが、それによっお、すでに高速な暙準蚈算が高速化されたす。そのため、Appleは別のルヌトを取り、画像凊理、ビデオデコヌド、機械孊習タスク甚のモゞュヌルを匷調するこずにしたした。これらのモゞュヌルは、コプロセッサヌずアクセラレヌタヌです。



AppleMatrixコプロセッサヌずNeuralEngineの違いは䜕ですか



Neural Engineに興味がある堎合は、機械孊習の問題を凊理するための行列挔算も実行するこずをご存知でしょう。しかし、もしそうなら、なぜあなたはマトリックスコプロセッサヌも必芁ずしたのですか倚分それは同じこずですか私は䜕か混乱しおいたすか状況を明確にし、違いを説明し、䞡方のテクノロゞヌが必芁な理由を説明したす。





メむンプロセッシングナニットCPU、コプロセッサヌ、およびアクセラレヌタヌは、通垞、共通のデヌタバスを介しお通信できたす。通垞、CPUはメモリぞのアクセスを制埡したすが、GPUなどのアクセラレヌタには専甚のメモリがあるこずがよくありたす。



以前の蚘事では、「コプロセッサヌ」ず「アクセラレヌタヌ」ずいう甚語を同じ意味で䜿甚しおいたこずを認めたすが、これらは同じものではありたせん。したがっお、GPUずニュヌラル゚ンゞンは異なるタむプのアクセラレヌタです。



どちらの堎合も、CPUが凊理したいデヌタで満たす必芁のある特別なメモリ領域ず、アクセラレヌタが実行する必芁のある呜什のリストでCPUが満たす必芁のあるメモリの別の領域がありたす。プロセッサはこれらのタスクを完了するのに時間がかかりたす。これらすべおを調敎し、デヌタを入力しおから、結果が受信されるのを埅぀必芁がありたす。



そしお、そのようなメカニズムは倧芏暡なタスクには適しおいたすが、小芏暡なタスクにはこれはやり過ぎです。





これは、アクセラレヌタに察するコプロセッサの利点です。コプロセッサは、メモリたたは特にキャッシュからCPUに送られるマシンコヌド呜什の流れを監芖したす。コプロセッサヌは、凊理を匷制された特定の呜什に応答するこずを匷制されたす。䞀方、CPUはこれらの呜什をほずんど無芖するか、コプロセッサヌによる凊理を容易にしたす。



利点は、コプロセッサヌによっお実行される呜什を通垞のコヌドに含めるこずができるこずです。 GPUの堎合、すべおが異なりたす。シェヌダヌプログラムは別々のメモリバッファヌに配眮され、GPUに明瀺的に転送する必芁がありたす。これには通垞のコヌドを䜿甚できたせん。そのため、AMXは単玔なマトリックス凊理タスクに最適です。



ここでの秘蚣は、マむクロプロセッサの呜什セットアヌキテクチャISAで呜什を定矩する必芁があるずいうこずです。したがっお、コプロセッサヌを䜿甚する堎合は、アクセラレヌタヌを䜿甚する堎合よりもプロセッサヌずの統合が緊密になりたす。



ちなみに、ARMの䜜成者は、ISAにカスタム呜什を远加するこずに長い間抵抗しおきたした。そしお、これはRISC-Vの利点の1぀です。しかし、2019幎に、開発者は次のように述べお諊めたした。「新しい呜什は暙準のARM呜什ず組み合わされおいたす。゜フトりェアの断片化を回避し、䞀貫した゜フトりェア開発環境を維持するために、ARMは、クラむアントが䞻にラむブラリ呌び出しでカスタム呜什を䜿甚するこずを期埅しおいたす。」



これは、公匏ドキュメントにAMX呜什の説明がないこずの良い説明かもしれたせん。ARMは、Appleが顧客この堎合はAppleによっお提䟛されたラむブラリに呜什を含めるこずを単に期埅しおいたす。



マトリックスコプロセッサヌずベクタヌSIMDの違いは䜕ですか



䞀般に、マトリックスコプロセッサをベクトルSIMDテクノロゞず混同するこずはそれほど難しくありたせん。これは、ARMを含むほずんどの最新のプロセッサに芋られたす。SIMDはSingleInstruction MultipleDataの略です。





SIMDを䜿甚するず、マトリックスに密接に関連する耇数の芁玠に察しお同じ操䜜を実行する必芁がある堎合に、システムパフォヌマンスを向䞊させるこずができたす。䞀般に、ARMNeonたたはIntelx86 SSEたたはAVX呜什を含むSIMD呜什は、行列の乗算を高速化するためによく䜿甚されたす。



ただし、SIMDベクトル゚ンゞンは、ALU算術論理挔算ナニットずFPU浮動小数点ナニットがCPUの䞀郚であるのず同様に、マむクロプロセッサコアの䞀郚です。さお、すでにマむクロプロセッサの呜什デコヌダは、どの機胜ブロックをアクティブにするかを「決定」しおいたす。





ただし、コプロセッサヌは別個の物理モゞュヌルであり、マむクロプロセッサヌ・コアの䞀郚ではありたせん。たずえば、以前のIntelの8087は、浮動小数点挔算を高速化するこずを目的ずした別個のチップでした。





浮動小数点呜什を怜出するためにメモリからプロセッサに送られるデヌタを凊理する別のチップを備えた、このような耇雑なシステムを誰かが開発するのは奇劙だず思うかもしれたせん。



しかし、胞は単玔に開きたす。事実、元の8086プロセッサには29,000個のトランゞスタしかありたせんでした。8087にはすでに45,000個ありたしたが、最終的には、テクノロゞヌによっおFPUをメむンチップに統合し、コプロセッサヌを排陀するこずができたした。



しかし、AMXがM1Firestormコアの䞀郚ではない理由は完党には明らかではありたせん。たぶん、Appleは非暙準のARM芁玠をメむンプロセッサの倖に移動するこずを決定したのかもしれたせん。



しかし、なぜAMXはあたり話題にならないのでしょうか。



AMXが公匏ドキュメントに蚘茉されおいない堎合、どうすればそれを知るこずができたすか M1の玠晎らしいリバヌス゚ンゞニアリングを行い、コプロセッサヌを発芋した開発者DougallJohnsonに感謝したす。圌の䜜品はここで説明されおい たす。結局のずころ、Appleは、行列に関連する数孊挔算甚に、Accelerateのような特殊なラむブラリやフレヌムワヌクを䜜成したした 。これらすべおには、次の芁玠が含たれたす。



• vImage –フォヌマット間の倉換、画像の操䜜など、より高レベルの画像凊理。

• BLAS線圢代数行列ずベクトルを扱う数孊ず呌ばれるものの䞀皮の業界暙準です。

• BNNS-ニュヌラルネットワヌクの実行ずトレヌニングに䜿甚されたす。

• vDSP-デゞタル信号凊理。フヌリ゚倉換、畳み蟌み。これらは、画像たたは音声を含む信号を凊理するずきに実行される数孊挔算です。

• LAPACK–線圢方皋匏の解法など、高レベルの線圢代数関数。



Johnsonは、これらのラむブラリがAMXコプロセッサを䜿甚しお蚈算を高速化するこずを理解しおいたした。そのため、圌はラむブラリのアクションを分析および監芖するための専甚゜フトりェアを開発したした。最終的に、圌は文曞化されおいないAMXマシンコヌド呜什を芋぀けるこずができたした。



たた、ARM LTDが原因で、Appleはこれらすべおを文曞化しおいない。あたり倚くの情報を宣䌝しないようにしたす。実際、カスタム関数が実際に広く䜿甚されおいる堎合、前述のように、これはARM゚コシステムの断片化に぀ながる可胜性がありたす。



Appleには、これらすべおを実際に宣䌝するこずなく、埌で必芁に応じおシステムの動䜜を倉曎する機䌚がありたす。たずえば、AMX呜什を削陀たたは远加したす。開発者にずっおは、Accelerateプラットフォヌムで十分であり、残りはシステムが自動的に実行したす。したがっお、Appleはハヌドりェアず゜フトりェアの䞡方を制埡できたす。



AppleMatrixコプロセッサヌの利点



ここにはたくさんのこずがありたす。芁玠の機胜の優れた抂芁は、機械孊習、むンテリゞェンス、知芚を専門ずするNodLabsによっお䜜成されたした。特に、AMX2ずNEONのパフォヌマンス比范テストを実斜したした。



結局のずころ、AMXは、行列を䜿甚した操䜜を2倍の速床で実行するために必芁な操䜜を実行したす。もちろん、これはAMXが最適であるこずを意味するのではなく、機械孊習ずハむパフォヌマンスコンピュヌティングに最適です。



芁するに、Appleのコプロセッサは、AppleARMに機械孊習ず高性胜コンピュヌティングの優䜍性をもたらす印象的なテクノロゞヌであるずいうこずです。






All Articles