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
Satoru Takeuchi
PRO
July 15, 2020
Technology
550
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
機械語の観点から見るCPUの違い
以下動画のテキストです。
https://youtu.be/-mlle9FgNyI
Satoru Takeuchi
PRO
July 15, 2020
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
Machine Check Exception
sat
PRO
2
37
バイナリダンプの模様を読む
sat
PRO
0
68
cpコマンドはディスク上でデータを コピーしないことがある
sat
PRO
3
54
114-ファイルのshallow_copy.pdf
sat
PRO
2
38
113-Btrfsのスナップショット.pdf
sat
PRO
0
16
システム強制終了時にファイルシステムの整合性を保つ~ コピーオンライト編 ~
sat
PRO
0
59
システム強制終了時に ファイルシステムの整合性を保つ ~ ジャーナリング編 ~
sat
PRO
2
63
ファイルシステムの整合性を回復するfsck
sat
PRO
1
65
小学校5,6年生向けキャリア教育 大人になるまでの道
sat
PRO
8
5.3k
Other Decks in Technology
See All in Technology
ボーイスカウトルールでメモリやスキルを改善しよう
azukiazusa1
4
1.5k
[2026-07-15] AI Ready なはずだったアーキテクチャと、見えてきた課題・次に目指す状態
wxyzzz
9
4k
Type-safe IaC for Dart
coborinai
0
160
AIが当たり前の組織で エンジニアはどう育つか
nishihira
0
140
Multicaで30個のミニプロジェクトをAIエージェント運用して見えてきたこと
eiei114
0
270
凡エンジニアがこの先生きのこるためには。〜TypeScript完全に理解したい〜
alchemy1115
2
310
AmplifyHostingConstructからSSRフレームワークのためのホスティング設計を考察する/amplify-hosting-construct
fossamagna
1
250
Kaggleで成長するために意識したこと
prgckwb
2
420
仕様駆動開発、導入半年。「本当に速くなってるの?」にデータで答える / AICon2026_hirakawa
rakus_dev
0
150
公式ドキュメントの歩き方etc
coco_se
1
120
Playwright × AI Agent でE2Eテストはどう変わるか AI駆動テストの可能性と実用検証の結果
taiga7543
1
540
タスクの複雑さでモデルを選ぶ ── Thompson Samplingで動かす“トークン/コスト最適化
satohy0323
0
570
Featured
See All Featured
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
370
The SEO Collaboration Effect
kristinabergwall1
1
510
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
500
Discover your Explorer Soul
emna__ayadi
2
1.2k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
510
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
150
BBQ
matthewcrist
89
10k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Ruling the World: When Life Gets Gamed
codingconduct
0
280
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ディストリビューションごとに命令の違いへの対応は様々