You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
諸事情でperfのソースコードを読んだのでせっかくなので簡単に解説。 今回はperfの中でもイベントの記録を担当するperf recordコマンドの処理を見ていく。特に近年はCPUがトレース機構を持っておりperfもその恩恵に預かっているため、本記事ではperf recordの中でもCPUのプロセッサトレース機構との連携部分に注目したい。 本音を言えば、perfよりIntel Processor Trace(Intel PT)やARM CoreSightといったプロセッサトレース自体に興味があるのだが、これらはLinux上ではperfイベントとして実装されているためperfコマンドの実装を皮切りに解析する腹づもりだ。 1. Perf アーキテクチャ 元々perfはPerformance counters for Linux (PCL)という名前の前身が存在しており、CPUの提供するパフォー
AMDのAthlonやZenマイクロアーキテクチャ、Apple A4など数々のチップ開発に携わり、「天才エンジニア」と高い評価を受けるジム・ケラー氏は2021年1月にIntelを突如退職し、記事作成時点ではAIチップのスタートアップであるTenstorrentの社長兼最高技術責任者を務めています。そんなケラー氏に、技術系ニュースサイトのAnandTechがインタビューを行っています。 An AnandTech Interview with Jim Keller: 'The Laziest Person at Tesla' https://www.anandtech.com/show/16762/an-anandtech-interview-with-jim-keller-laziest-person-at-tesla なお、ジム・ケラー氏の経歴は以下の通り。 入社退職年企業肩書き関与した製
こんにちは、hachi8833です。今回の翻訳記事は、Railsを含む一般的な開発・システム管理で使えると思います。 Railsのパフォーマンス改善については、先日開催されたぎんざRuby会議01でのk0kubunさんの発表スライドと合わせて読むとさらによいと思います。 Railsアプリケーションのパフォーマンス改善手法 - k0kubun 概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Understanding your benchmarks and easy tips for fixing them 公開日: 2017/07/13 著者: Hongli Lai サイト: https://blog.phusion.nl/: Webサーバー「Passenger」で知られるオランダのPhusion社のブログです。 blog.phusion.nlより 開発者は本質的にスピードを愛
アーキテクチャと実装混ざってるけど 命令dispが32bit届く immも32bit入ることが多い メモリが順序守る(何回も書くが、メモリ順序が緩いことによって得られたCPU時間より失なった人間時間のほうが絶対多いから) ファームウェアがBIOSとUEFIの二種類しかない (ボードごとにカーネルにディレクトリ作るのやめろARM) 周辺デバイスがPCIに統一されててキャッシュの問題が起こりづらい(もうdma_alloc_coherentの挙動調べるの飽きた) キャッシュがソフト的に見れば一階層 (L2の挙動が定義されてないARMとかいう無名CPU) 除算とFPUが付いてる ABIがWin除けば32bitと64bitとx32の3種類しかない。 PCIe がキャッシュスヌープ付けてフルスピード近く出る lock cmpxchg が遅くない *fence が遅くない こういう問題で別のアーキがx8
これまでのあらすじ : https://twitter.com/tanakmura/status/1280152564898557952 FPGAでHello World以上のものが書きたいという気持ちは前からあったので、この機会に少し実用的はHDLを書くことにした。 なにをやっているかの解説を書いておこう。 ソースは、 https://github.com/tanakamura/jisaku_pc_8088 ここにある(上のツイートでは、タイミング問題があってLED点灯しないことがあると書いてるが、これは多分改善してあるはず。) こういう昔のCPUは、CPU側の命令実行とバスが直結していて、ポインタ0x80 を読むと、CPUの足に、そのまま0x80が出てくる。それを正しくハンドリングして、有効な命令バイト列を返せば、8088を動かすことが可能だ。 この実装では、この足から出てくる信号をデ
2019年12月に発表された、Amazon独自設計のARMプロセッサ「Graviton 2」は、すでにAWS EC2のM6gインスタンスなどで利用することができます。そのGraviton 2について、オンラインストレージサービス「MinIO」のエンジニアであるFrank Wessels氏がIntelやAMDのCPUとの性能を比較してみたところ、その結果に衝撃を受けたと語っています。 Intel + ARM Performance Characteristics for S3 Compatible Object Storage https://blog.min.io/intel_vs_gravitron/ MinIOはApacheライセンスに準拠したAWS S3互換のオンラインストレージです。高いパフォーマンスを維持するため、MinIOはGoによって開発されているとのこと。MinIOが使用す
アーキテクチャー コードサイズを小さくするために、今回は命令長を16bitにしました。レジスター幅のデフォルト値は16bitですがパラメーターで可変となっているのでアプリケーションの必要に合わせて32bitや64bitに変更できます。 回路規模の縮小、動作周波数向上のための工夫 深いパイプライン動作周波数を上げるため深めの7段ステージパイプラインの設計にしました。また、完全なパイプライン設計にしているので最小1サイクルで命令を連続実行できます。 乗算命令とシフト命令は深いパイプラインで実行テストの結果、乗算命令とシフト命令が特に遅延が大きいため、実行段で3〜4サイクルの遅延を許容する設計にし、パイプライン化した回路が生成されるようにしました。 レジスターファイルをブロックRAMで構成可能パイプラインはより深くなりますが、多くのレジスターを実装した場合でも回路規模が大きくなりません。(実際に
PC用CPU市場で圧倒的シェアを確保し続け絶対王者として君臨するIntelに対して、今や唯一のライバルであるAdvanced Micro Devices(AMD)は近年低迷を続け、最近では大手IT企業に買収されるのではないかという噂が出ては消える状態です。AMDがどのようにして生まれ、成長し、Intelに戦いを挑み、脅威を与える存在にまで上り詰め、そして打ち破れたのかについて、Hackadayが考察しています。 Echo of the Bunnymen: How AMD Won, Then Lost | Hackaday http://hackaday.com/2015/12/09/echo-of-the-bunnymen-how-amd-won-then-lost/ AMDは1969年にフェアチャイルドセミコンダクター出身のジェリー・サンダースらによって設立されました。ちなみに、フェアチ
複数のスレッドを実行しているとき,あるスレッドのメモリに対する書き込みが別のスレッドからどんなふうに観測される可能性があるかを定めたものをメモリモデルというそうです.プログラミング言語の仕様として定められていたり,CPU の仕様としてマニュアルに解説があったりするものだそうです. マルチスレッドプログラミングを行うときにはこれを前提にするわけですが,困ったことに x86 のマニュアルにある自然言語での説明が曖昧だったり,時に実プロセッサの挙動と合わなかったりといろいろ問題があるそうです. これに対処するために,過去の複数版のマニュアルを読み解き,実プロセッサを調査してメモリモデルを形式的に作ったという論文があります. x86-TSO: A Rigorous and Usable Programmer’s Model for x86 Multiprocessors (論文PDFへのリンク)
CPU パフォーマンススケーリングにより、オペレーティングシステムは消費電力の削減やパフォーマンスの向上のために CPU の周波数を上げ下げすることができるようになります。スケーリングは、システムの負荷に応じて自動的に行ったり、ACPI イベントに応じて調整したり、ユーザスペースのプログラムで手動で変更したりできます。 Linux カーネルは CPUFreq サブシステムを通して CPU パフォーマンススケーリングを提供します。このサブシステムには2つの抽象化レイヤが定義されています: スケーリングガバナーは、望ましい CPU 周波数を計算するアルゴリズムを実装します。システムのニーズに基づいている可能性があります。 スケーリングドライバは、直接 CPU と対話し、現在のガバナーの要求する望ましい周波数に変更します。 デフォルトのスケーリングドライバとスケーリングガバナーは自動的に選択され
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く