1. ごりゅごcast
  2. 585.M1アーキテクチャのMacは..
2020-12-18 15:58

585.M1アーキテクチャのMacはなぜ「速い」のか 後編

spotify apple_podcasts
00:00
こんにちは、ごりゅごキャストです。今日は、M1がなんで速いのかっていうのの続きの話をしたいと思います。
前回にインテルプロセッサーとアームプロセッサーっていう2種類があって、 その2種類がそもそも命令系統が違うよみたいな話を聞いた。
そこからもうちょっと話を発展させて、 そのままインテルさんはその仕組みをどんどん改良して、言ったら後付けの改造なんだけどね、ハイパースレッティングっていう言葉とかって聞いたことある?
ない。 インテルがかつてそういうことを言っていたりとか、こういうことをしたら速くなりましたっていう、
インテルはインテルで、その上でどうやって速くするかっていう工夫をしてきたりだとか、 っていうことをいっぱいやって、今までなんとか、今の印象で言うと延命してきたんだけど。
なんかインテルのチップ系の話でわかる用語って、i7とかi9みたいな、iに数字がどんどん増えてったみたいな。
それブランドだけかな。 そこからの流れで一番わかりやすいなと思ったのが、今デスクトップのパソコンとかって、CPUとGPUってもう一個GPUっていうコンピューターを積んでいるじゃん。
あれってなんでなのかというと、グラフィックの処理って、その正確なことはわかんないんだけど、簡単な計算をとてつもなく大量にするということが必要になってくるというか、グラフィックを処理しようとするとそういう計算ばっかりになってしまうので、
そこはもう外注に回してしまおうという考えが出てきた。 なのでグラフィックの計算のみに関しては外注の人に雇って、その専門家のプロな人にグラフィックの計算だけをしてもらって、その結果を後からCPUがもらって答えを出すみたいなことにした方が全体としてうまく回る。
M1がやったことをすごい大雑把に言うと、画像処理は画像処理の得意なところがあるので、画像処理の得意な人に全部任せてしまいましょう。
グラフィックの処理をする専門のチップだとか、デジタル信号だけを計算する専用のチップとか、ニューラルプロセッシング、機械学習とか自然言語処理専用のチップとか、ビデオエンコード専用のチップとかっていう、いろんな専門家の人を全部自分のCPUの中に入れてしまった。
今まではCPU1個で全部済ませようと思っていたんだけど、グラフィックに関することは別の得意な人に任せた方がいいよねって外付けのGPUっていうのを使っていたんだよね。
03:10
外付けのGPUなので外注さんなわけですよ。
外注さんに仕事を依頼して、これお願いしますって言って渡すんだけど、その仕事がはい、できましたって帰ってくるって言ったら。
一回外に出して処理をしてもらって、また戻してもらうっていう、単純に時間かかるよね。
で、それを内部に雇ってしまおうと。
社内の内製にしてしまったことで、グラフィックに関する仕事は全部社内で素早くできるようになりました。
で、さらにその専門家っていうのをもっといろんな人を雇って、自然言語処理、そのニューラルエンジン専用の専門家みたいな人も自分の社内に雇い入れて内製できるようにしました。
なんかビデオのエンコードだけをする人っていうのを雇って内製できるようにしました。
で、さらにその暗号化専門の人を雇ってとかっていろんな人を全部社内に雇って、得意なことは得意な人に全部任せてしまおう。
しかも外注じゃなくて全部内製できるから、そういう情報伝達のロスというのもめっちゃ少なくできるぞっていうことによってすごく早くなったっていうのが分かりやすい例え話なのかな。
じゃあそのCPUという会社の中にグラフィックの専門家だったり暗号化の専門家だったりそのニューラルエンジンの専門家みたいないろんな得意なことができるパーツっていうかそういう人材をCPUの中、CPU会社の中に全員も入れちゃって、
だから社内でやり取りするだけだからすっごい早い。外注のその外部の何かを使ってやり取りするんじゃなくて、内製でできるからめっちゃ早くいろんなことが高パフォーマンスでできるっていう。
そうそう、だから昔のCPUというかそのシスクという仕組みはすごい大雑把に言うと、何でもできる一人の人に全部ぶん投げてしまって、この人をどんどん優秀にすればもっといろんなことできるでしょ、もっといろんなことできるでしょってその人をどんどん育てていったんだけど、一人の人間には限界があって、あまりにたくさんのことをやらせようとするとこんがらがって発熱してしまったりもするし、
どんなに頑張っても、たくさん得意なことばっかりやらせてもらいたかったのに、何でもかんでもやれって言われてしまうので、どんどん一人だけでは無理が出てきてしまった。
だったらそれは得意なことは得意な人に任せてしまおうよっていう分業家をして、この仕事はこの人が得意だからこの人に任せて、俺はその結果だけをもらえばいいやっていう分業専門家をいっぱい雇ったことによって効率が良くなった。
06:11
で、一個重要なのが、そのAppleがすごいところというのは、それはAppleが全部のパーツを作っているからできることで、
その全部のパーツっていうのはグラフィックのその専門家とか、
OSから何から全部を作っているって言ったらいいのかな。
じゃあ、CPUだけの話じゃなくて、そのシステムから組み立て全部含めてってこと?
そうそう。なので、普通の他の、要するにWindowsで同じことをやろうとしても、それはなんかやっぱり事実上無理っぽくてさ。
それをさっきの外注とか内製とかっていう例えにすると、なんて言えばいいんかな。
なんか、それとはまたちょっと違うんだけど、聞いた話で納得したのが、
MacってAppleが全部作ってる。そのOSから組み立て、ハードからそのパーツを寄せてとかっていう、その全てにおいて一社でやってるから、
Mac OSに合わせたチューニングのそのCPUが完成した。
今までインテルのチップ使ってたけど、あのチップは何にでも使える、そのコンピューターシステム全般、どんなパソコンにでも万能に使えるチップだったから、
どれにでも使えるんだけど、その最高にマッチはしてない。
で、今度そのAppleが作り出したM1チップっていうのは、自分とこで開発して、自分とこのOSで最高のパフォーマンスが埋める仕組みで作ったチップだから早い、みたいな話は聞いた。
うん、そうそう。それを外注と内製っていう例えにしようとするとどうしたらいいかっていうのは、ちょっと上手い例えが今浮かばなくて、上手に説明しづらいんだけど。
さっきの話、例え話の中で、OSのそのソフトウェアについての例えの用語が全く出てきてないから、それを例えると何だろうね。
何にしても、一つのチップの中で全部が済ませられるじゃないな、いろんな役割を任せられるようになったっていうのが結構でかくて、
さっきの自社製にチューニングとか繋がるようなことなんだけど、それが全部を作っていたAppleだから実現できたことで、
これをじゃあ同じことを他のというか、例えばそのWindowsみたいな、いろんな会社のいろんなパーツを組み合わせて動かそうとするっていう仕組みになってしまうと、やっぱり難しく。
09:03
Unified Memoryってさ、今までのメモリーとは概念が全然違うんだぞ、みたいな話とかもあったじゃん。
それとかも言ってみれば、メモリーも以前は外注のメモリだったんだよね。
それを内製のメモリにしたことで、交換とかそういうことは全くできなくて、一個のパーツとしてもう存在するようになってしまったので、
量は少ないんだけど、結局それもまた内製で早いから、処理が早くできるようになった。
そういうことをじゃあ、全く同じことをWindowsで実現しようと思うと、現状それってメモリとCPUセットになったマザーボードって売ってないよねっていう話だったり、
そういう部分であるのかなっていうぐらいの言い方になるのかな。
今回、新しいM1 Macが登場して、メモリが後から変えれませんみたいな注意書きが結構大きく書いてあって、
そもそもメモリ自体も8GBと16GBっていう2択しかそもそもが選べない状態で、
なんでこんな少ないの?って最初はその疑問に思ってたんだけど、よくよくその仕組み、チップの仕組みで今回はチップの中にメモリも組み込まれてますよみたいな話を聞いて、
だからもう最初から8か16どっちかしか選べなくて、選んじゃったら後からその積み替えるっていうか、交換するとか、そういうことがまずできないんだなっていうのも納得できた。
さっきのコンピューターの前編で話したコンピューターの話の補足みたいなところでもあったりするんだけど、コンピューターって何か計算をして、レジストリっていう場所の中に数字とか計算結果を置いといて、後から読みに行くみたいなことをするんだよね。
そのレジストリというものの容量が足りなくなると、メモリにデータを置いておいて、また後で必要になったらメモリにデータを取りに行くっていうことをやるんだけど、そのメモリというものも今までのコンピューターは外注だったので、外注に出してしまうとやっぱり外注から結果が返ってくるのが遅い。
今回はメモリさんというものも社内に置くようになったので、メモリを使ったら当然ちょっとは遅くなるんだけど、でも社内にいるメモリさんなので外注のメモリさんよりは早い。そういう意味でちょっと容量が少なくなっても大丈夫で、さらに実際早くもなっているらしいという例え話を加えればもうちょっとわかりやすくなるのかな。
で、あとよく言われているのが最近聞くようになった言葉で、SOCって聞いたことない?
SOC、SOCみたいな。
12:01
システムオンチップ。MacのM1というものはもうCPUじゃないんだって。いろんなものがいっぱい1枚のチップに乗っかっていて、そのセントラルプロセッサーなんとかだったっけCPUって。セントラルプロセッシングユニットだった。CPUは中央処理演算装置。
真ん中で全部をやるっていうような、いかにも一人でやるっていうイメージだったのがシステムオンチップっていうチップの上にシステムが乗っている。いろんな人がいっぱいいるっていうものに変わってきていて。
なんか最近ね、いろんなポッドキャストだったり、なんかそういうニュース記事なんかを見たりして、もうAppleのCPUっていう言い方をしているんじゃなくて、AppleのSOCがどうのこうのっていう話とかもよく音にして聞いたりしていたんだ。
要するに、CPUっていう1個のことしかできないものじゃなくて、いろんな得意なものの組み合わせなものになったっていう意味で、CPUからSOCっていう言葉に変わってきた。役割というかやることが変わったっていう言い方をすればいいのかなっていうふうに理解すればわかりやすく、なんとなくそんな理由で早くなったのねっていうのがわかるかなっていう。
やっぱあれだね。大きな流れみたいなざっくりとした説明を聞いた後に、最後の単語の意味だったりとか、細かいところの技術みたいなのを調べると、かなり理解しやすいかも。
その言葉を聞いた場合でも、ざっくりとそういう感じのやつねっていう、俺が説明しているのは例え話的なものもあるし、理解力、説明力が足りないものもあるかもしれなくて、100%正確だとは保証できないので、細かいことは参考のリンクというのを載せておくので、そういうものをちゃんと読んでみてください。
大きな流れとして、複雑なことをやらせようとしていたものっていうのを、短くて簡単な命令をできるだけたくさんの人たちにたくさんこなせるようにして、さらにそれらをもう一段階得意な人に任せることによって、より早くなった。
割と人間社会と同じなんだよね。これが本質的なところで。かつては職人が一個一個手作りしていたものを大量生産することによって、より安く、より早く作れるようになった。
かつては一人のいろんなことができていたCPUさんという人に代わって、まず簡単なマニュアルを作って、誰でもできるようにして、同じ時間でこなせるようにした。
さらにそこから得意なことというものを得意な人に振ることによって、もう一段階効率よくっていうのは多分発熱せずにってことだと思うんだけど、熱を発する量を少なくして、さらにたくさんのことがこなせるようになってきたっていう流れなのかな。
15:15
だいたいそんな感じで伝わったでしょうか。俺が学んだことは。
だいぶよくわかった。前半のやつを聞いてからこの後半を聞くとさらにいいかなっていう感じ。
専門用語はいっぱい出てきたんだけど、さっきの話の最後のまとめみたいな話が一番簡単でわかりやすいのかな。
ということで今回はAppleのM1がなんで早いのかっていうのを勉強したのをできるだけ短く簡単にまとめてみようっていうことをやってみたお話でした。
30分でわかるよってやつ。
だね、俺はそうだね、5、6時間かもっと勉強したから一応まとめられたのかな。
15:58

コメント

スクロール