Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
機械語の観点から見るCPUの違い
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Satoru Takeuchi
PRO
July 15, 2020
Technology
0
520
機械語の観点から見るCPUの違い
以下動画のテキストです。
https://youtu.be/-mlle9FgNyI
Satoru Takeuchi
PRO
July 15, 2020
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
書籍執筆での生成AIの活用
sat
PRO
1
300
ChatGPTに従って体調管理2026
sat
PRO
0
150
eBPF
sat
PRO
1
110
waruiBPF
sat
PRO
0
110
eBPFとwaruiBPF
sat
PRO
5
3.9k
Pythonのコードの気になる行でスタックトレースを出す
sat
PRO
1
100
ソースコードを読むときの思考プロセスの例 ~markdownのレンダリング方法を知りたかった2 markdownパッケージ~
sat
PRO
0
200
様々なファイルシステム
sat
PRO
0
340
ソースを読む時の思考プロセスの例-MkDocs
sat
PRO
1
430
Other Decks in Technology
See All in Technology
1,000 にも届く AWS Organizations 組織のポリシー運用をちゃんとしたい、という話
kazzpapa3
0
200
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
200
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
480
pool.ntp.orgに ⾃宅サーバーで 参加してみたら...
tanyorg
0
1.5k
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
360
Context Engineeringの取り組み
nutslove
0
380
SRE Enabling戦記 - 急成長する組織にSREを浸透させる戦いの歴史
markie1009
0
170
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
480
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.4k
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
150
SREじゃなかった僕らがenablingを通じて「SRE実践者」になるまでのリアル / SRE Kaigi 2026
aeonpeople
6
2.6k
Tebiki Engineering Team Deck
tebiki
0
24k
Featured
See All Featured
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
110
Code Reviewing Like a Champion
maltzj
527
40k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
68
Discover your Explorer Soul
emna__ayadi
2
1.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
A Tale of Four Properties
chriscoyier
162
24k
30 Presentation Tips
portentint
PRO
1
230
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
440
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
Transcript
機械語の観点から見る CPUの違い Jul 15th, 2020 Satoru Takeuchi Twitter: satoru_takeuchi
もくじ • いろいろな「CPUの違い」 • アーキテクチャによる違い • メーカーによる違い • モデルによる違い •
まとめ
もくじ • いろいろな「CPUの違い」 • アーキテクチャによる違い • メーカーによる違い • モデルによる違い •
まとめ
CPUの違い • CPUはものによって様々な違いがある • 機械語という観点に絞って違いを説明 ◦ 機械語: CPUが命令として解釈できるバイナリ • 大きく分けて、次の点によって機械語レベルの違いが出る
◦ アーキテクチャ: x86_64, ARM… ◦ メーカー: x86アーキテクチャにおける IntelとAMDなど ◦ モデル: 「第<n>世代Coreアーキテクチャ」の<n>による違いなど
もくじ • いろいろな「CPUの違い」 • アーキテクチャによる違い • メーカーによる違い • モデルによる違い •
まとめ
アーキテクチャの違い • 演習 ◦ X86_64 CPUとARM CPUで機械語レベルの違いを見る • 必要なパッケージ(Ubuntu 18.04)
◦ golang ◦ Binutils ◦ Binutils-arm-linux-gnueabi • やること ◦ Goでx86_64とarmの実行ファイルを作る ▪ X86_64: go build -o test-x86_64 test.go ▪ Arm: GOARCH=arm go build -o test-arm test.go ◦ それぞれのアセンブリ言語と機械語を出力して違いを見る • 互換性があるアーキテクチャもある: x86_64はx86の命令もサポート
もくじ • いろいろな「CPUの違い」 • アーキテクチャによる違い • メーカーによる違い • モデルによる違い •
まとめ
メーカーによる違い • CPUのメーカーによってサポートする命令セットは異なりうる • 例) 仮想化機能 ◦ IntelはVT-x、AMDはSVM ◦ /proc/cpuinfoのflagsフィールドを見ればわかる
◦ 互換性は無い • 仮想マシンを起動する命令 ◦ Intel VT-x: vmlaunch: バイナリ列は”0F 01 C2” ◦ AMD SVM: vmrun: バイナリ列は”0f 01 d8” • カーネル内でも使い分けている ◦ コード: arch/x86/kvm/{vmx,svm} ◦ モジュール: /lib/modules/<カーネルバージョン>/kernel/arch/x86/kvm/kvm-{amd,intel}.ko
もくじ • いろいろな「CPUの違い」 • アーキテクチャによる違い • メーカーによる違い • モデルによる違い •
まとめ
モデルによる違い • 同じメーカーでもモデルによってサポートする命令セットは異なる • 例) AVX2: 一度に複数の浮動小数点演算をする命令セットの一つ ◦ いわゆるSIMD ◦
第三世代Coreプロセッサ(ivybridge): サポートしない ◦ 第四世代Coreプロセッサ(haswell): サポートする • Gccではオプションによって命令セットを使うかどうかを分けられる ◦ -mavx2: AVX2命令セットを使う ◦ -march=haswell: haswellでサポートされている命令セット (AVX2を含む)を使う • Linuxディストリビューションによって対応方法は様々 ◦ なるべく多くの環境で動くバイナリを標準パッケージとする ◦ ユーザがCPUモデルを選択してビルドできるようにする
もくじ • いろいろな「CPUの違い」 • アーキテクチャによる違い • メーカーによる違い • モデルによる違い •
まとめ
まとめ • 様々な理由によってCPUの機械語レベルでの違いが出る ◦ アーキテクチャ ◦ メーカー ◦ モデル •
Linuxディストリビューションごとに命令の違いへの対応は様々