タグ

CPUに関するtekimenのブックマーク (16)

  • x86-64機械語入門 AVX/AVX-512編

    この記事はx86-64機械語入門の続きです。SSE/AVX/AVX-512の紹介と、それに伴うVEXプリフィックス、EVEXプリフィックスの紹介を行います。 SSE x86-64で単精度・倍精度の浮動小数点数を扱うには、SSE (Streaming SIMD Extensions) と呼ばれる機能(命令セットとレジスター)を使います。元々は命令セット拡張でしたが、x86-64ではSSE2が常に利用可能なので、標準で使える機能だと思って構いません。 SSEでは128ビット幅のレジスターを16(32ビットモードでは8)利用できます。データ型は無印SSEでは単精度浮動小数点数(32ビット幅)が、SSE2以降では倍精度浮動小数点数(64ビット幅)や整数が使えます。 SSEの128ビット幅のレジスターはXMMレジスターと呼ばれ、xmm0, xmm1, ..., xmm15のように番号をつけて呼ば

    x86-64機械語入門 AVX/AVX-512編
  • メモリアクセスのセマンティクスとApple siliconの裏技(?)について - yamasaのネタ帳

    アウト・オブ・オーダー実行について補足 前回の記事で「アウト・オブ・オーダー実行」について特に説明せずに話を進めてしまったことに気づいたので、まずはそれについて簡単に補足しておこう。 コンピューターの性能向上の歴史はレイテンシーとの戦いの歴史でもある。 colin-scott.github.io 上のサイトは年代毎にコンピューターシステムでの各種レイテンシーがどのように変化していったかを紹介している。1990年代前半はキャッシュメモリとメインメモリとの間のレイテンシー差はそれほど大きくなかったが、その後の技術革新によって現在はL1キャッシュとメインメモリとの間に100倍くらいのレイテンシー差があるようになってしまった。これはつまり、プログラム実行中にメインメモリへのアクセスが発生してしまうと、それだけ長いレイテンシーの間CPUの処理を進めることができなくなってしまうことを意味する。そのため

    メモリアクセスのセマンティクスとApple siliconの裏技(?)について - yamasaのネタ帳
  • An Entire RISC-V Operating System In 2000 Lines

    While Microsoft and Apple don’t release the source code for their operating systems, a good estimate is that it takes around 50 million lines of code to run these software behemoths. The Linux kernel alone holds around 30 million lines, with systemd containing over one million lines on its own, which doesn’t include estimates for the desktop environment or other parts of a standard installation. B

    An Entire RISC-V Operating System In 2000 Lines
  • Armの命令セットとNEON拡張 - Qiita

    このアドベントカレンダーのスコープ、対象読者について この記事はひとりNEONアドベントカレンダー2020 1日目の記事です。 目次にも書きましたが、あくまで手島個人の知識の範囲内で書くので、すべて公開情報がもとになっています。 個人で趣味の範囲で書くので、筆者の勤務先とは無関係です 一人advent calendarなので、省エネモードがモットーになってます。悪しからず。 Arm v8.4、SVEと行ったArmの現在進行形の拡張に関しては実機が手元に無いこともあって、あまり深入りはしない予定 実際のコードはアセンブラではなく、GCCのintrinsicをもとに解説する C/C++のコードからNEON命令を使うコードを解説するので、それが読めるぐらいの読者を想定。 日のトピック いきなり「NEONとは」、と飛び込んでもわからない人が居ると思うので、第1日目は概要を説明しようと思います。

    Armの命令セットとNEON拡張 - Qiita
  • SIMDプログラミング入門(AVX-512から始める編) - Qiita

    最近、SIMD命令を使ったプログラミングというものに触れる機会があったので、どうやって入門していったかについてまとめます。この分野はどうしても「分かっている人向け」の記事が多くなりがちのようなので、基的な知識についてまとめつつ、発展的な資料へのURL等も極力載せるようにしました。 ※ 記事で取り扱うSIMD命令はAVX-512を対象としますが、その他の命令体系(e.g. x86のAVX/AVX2やARMのNEON等)とも多少は共通点があるかもしれません 前提知識とスコープ C/C++のごく基的な構文を理解している人向けの記述になっています 記事を読む上で、計算機の構造についての基的な理解が必要かもしれません e.g. CPUがあってメモリがあって〜程度でたぶん大丈夫です 開発環境としてLinux上のClang 5.0.1を想定します(とはいえGCC等でも同じような話になるはずです)

    SIMDプログラミング入門(AVX-512から始める編) - Qiita
  • opv86

    opv86 Opcode/Instruction finder for x86_64 GitHub: hikalium/opv86 Decoder output (experimental)

  • 実践的低レイヤプログラミング

    はじめに 学校で習わないが(習う学校もある)、現実に必要になるプログラミング技術に、低レイヤプログラミングなどと呼ばれるものがある 厳密な定義は聞いたことがないし、おそらく存在しないとは思うが、大体のみんなの共通認識として、 「高級プログラミング言語を使わないプログラムを書き、OSで抽象化されないデバイスの機能を使う」といったような認識があると思う。 筆者の経験から言わせてもらうならば、低レイヤプログラミングに関する知識は、プログラミングにおいてあらゆる場面で、常に、少しずつ役立てられる知識だと言えると思う。 普段はRubyPHPなどを書いてる人であったとしても、メモリが足りなくなった場合や、デバッガを使っている場合、性能が足りなくなった場合など、 厳しい環境におかれた時に低レイヤプログラミングに関する知識が必ず役に立つ場面が来ると信じている。 また、役に立つかどうかは置いておいても、「

  • Webエンジニアが知るべき低レイヤーの技術とその学習方法 - Qiita

    初めまして NewsPicks Advent Calendar 2018の 20日目を担当させていただきます、NewsPicks の @takugi です。 弊社 CTO 杉浦が2年程前に書いた 普通のやつらの下を行け! NewsPicks CTOが新人エンジニアに伝えたい3つのこと という記事を読み、 低レイヤー技術を身につけるべき という考えに共感しました。その後、目の前の仕事に関する技術のキャッチアップに時間を取られる日々が続いていましたが、今年の半ば頃から低レイヤー技術を身につけることに少しずつ取り組み始めました。この記事においては、Webエンジニアが知るべき低レイヤー技術について と 低レイヤー技術の学び方について 共有したいと思います。 Webエンジニアが知るべき低レイヤー技術について 低レイヤー技術とは ここで言う低レイヤー技術とは言い換えると、 コンピュータシ

    Webエンジニアが知るべき低レイヤーの技術とその学習方法 - Qiita
  • 「Sandy Bridgeおじさん」とは何か? : 因画応報

    4月17 「Sandy Bridgeおじさん」とは何か? カテゴリ:日記PC 皆さんはパソコンやスマートフォンのCPUについて考えたことはありますか? このブログは写真のブログですが、RAW現像の負荷が重いため、ハイパワーなCPUが必要となっています。そのため、2017年末、ついに新しいPCを自作してしまいました。 さて、自作PCといえば外すことのできない「おじさん」達がいます。 「今は時期が悪いおじさん」 「Sandy Bridgeおじさん」 ん?Sandy Bridgeおじさんって何?そもそもSandy Bridgeって? 目次 ■Sandy Bridgeとは? ■Sandy Bridgeの性能は? ■Sandy Bridge vs Haswell ■Sandy Bridge vs Skylake / Kaby Lake ■Sandy Bridge vs Coffee Lake ■Sa

    「Sandy Bridgeおじさん」とは何か? : 因画応報
    tekimen
    tekimen 2018/04/19
  • 1日目: 方針 - しかくいさんかく

    この記事はひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 2017の1日目の記事です。 自己紹介 はじめまして。都内のIT屋で働いている解答略という者です。 去年の冬まで物理系の大学院博士課程に在籍していて、情報系とは無縁でした。 大学を離れる間際に、何の知識も無いままIT業界に入ると怖い人に怖い事を言われると思い、情報科学科の後輩を訪ねたところ「低レイヤを知れ」というアドバイスをもらい、 大急ぎでエミュレータとコンパイラとCPUを作りました。 時系列で振り返ると 2017年1月下旬、1週間弱かけてx86のニーモニックを調べ、しょぼいエミュレータを作った 次の2週間でC言語のサブセットのしょぼいコンパイラを作った その後、3月上旬までFPGAと格闘し、マジでしょぼいCPUを作った 大急ぎで作ったのでマジでくそしょぼいやつしかできませんでしたが、「PCの動作原

    1日目: 方針 - しかくいさんかく
  • AMD、RyzenのSEGV問題を認める | スラド

    Linux上で、kernelやgccなど大きなソフトウェアを繰り返しMakeするとコンパイラがSegmentation Faultで失敗する問題についてAMDは問題の存在を認めたようです(techpowerup、HotHardware)。 AMDは問題がマザーボードやメモリではなくCPUの問題であること、Linuxで発生するもWindowsでは再現しないこと、初期のRyzenで発生するもEPYCやThreadripperでは発生しない事を報告しました。その上で、影響を受けるユーザーに対してはカスタマサポートで個別対応するようです。 また、どうやらWindowsユーザに対しては交換対応はしないようです。株価が上がったとはいえ、AMDにはリコールする財務的余裕はなさそうです。 B2ステップでアンコアの修正をするとの話が出てましたが、ThreadripperはB1ステップですので、製造上の問題な

    AMD、RyzenのSEGV問題を認める | スラド
  • Ryzen General Protection Exception - 日記 (2017 年 6 月下旬)

    20 (火) %1 かようび 朝は整形外科でリハビリテーション。 牽引こんでなかった。 %2 Ryzen General Protection Exception やっと噂の一般保護例外が出た。 例によって cc1 だがとても楽しいことになっている。 GPE flags 00003202 err 00000000 0033:0101356e * RAX 00000001 RCX 00000AED RDX A656C63796320 RBX 012B7050 RSP 7FFE731E3668 RBP 00000000 RSI 00000007 RDI 015B7AED R8 015B7AED R9 0000007F R10 00000005 R11 00000007 R12 7F146FCAB410 R13 7F146FCC0078 R14 015B7AED R15 7F146FC8C248

  • Ryzenにまつわる2つの問題 - 覚書

    NOTE1: 2017/8/12に2つ目の問題について更新しました。ついに両方の問題が解決しました。 NOTE2: 2つ目の問題についてはすべての経緯をまとめた書籍があります。 4月にRyzenを積んだデスクトップマシンを買いました。その上で日課であるカーネルビルド&テストをした*1ことをきっかけに、2つの問題が発生しました。先代のCore i5を積んだマシンでは起きなかった現象です。 このエントリは自分用のメモがてら、新しいことがわかれば随時更新していきます。後者については9月に開催されたkernelvm北陸にて、ブログには書かれていない解析の詳細などについて発表してきました。 Ryzen segv battle from Satoru Takeuchi www.slideshare.net 環境 ハードウェア CPU: Ryzen 1800X Motherboard: ASUS PR

    Ryzenにまつわる2つの問題 - 覚書
  • CPU使用率は間違っている | Yakst

    Netflixのパフォーマンスエンジニアである筆者からの、topコマンドなどで表示されるCPU使用率(%CPU)は、いまや当の使用率を表しておらず、チューニングなどのための指標として使えないという指摘。なぜそうなってしまったのか、何を見れば当のCPU使用率がわかるのかをわかりやすく解説した記事。 私たちみんながCPU使用率として使っている指標は非常に誤解を招くもので、この状況は毎年悪化しています。CPU使用率とは何でしょうか?プロセッサーがどのくらい忙しいか?違います。CPU使用率が表しているのはそれではありません。私が話しているのは、あちこちで、あらゆる人たちに、あらゆる監視製品で、あるいはtop(1)でも使われている、"%CPU"という指標のことです。 あなたの考えているであろうCPU使用率90% : 実際 : "stalled"(訳注 : 以下ストールと言う)とは、プロセッサーが

    CPU使用率は間違っている | Yakst
  • 【後藤弘茂のWeekly海外ニュース】 AMDが次世代CPU「Ryzen 7」ファミリを3月2日から発売 ~最上位のRyzen 7 1800Xで59,800円

    【後藤弘茂のWeekly海外ニュース】 AMDが次世代CPU「Ryzen 7」ファミリを3月2日から発売 ~最上位のRyzen 7 1800Xで59,800円
  • ハード素人が32bit CPUをFPGAで自作して動かすまで読んだ本のまとめ - スティルハウスの書庫の書庫

    男子たるもの一度は自分でCPUを作ってみたいものだけど、ICでLEDをピカピカさせた程度の経験しかないハード素人な俺だったので、CPUを自作してる東大生などを遠くから見て憧れてるだけだった。しかしおよそ一年前のこと、「MIPSなんて簡単に作れますよ!」とKさん(←FPGAでLispマシンを自作するような人)に言われて、お、おぅ。。そりゃKさんはそうでしょうよ。。あれ、もしかして俺にもできるかな。。? と思った。この一言がなければ32bitCPUを自作しようなんて考えなかっただろう。 それから一年ちょい、とくに今年の正月休みやFPGA温泉でがっつりがんばって、なんとかMIPS Iサブセットの自作CPUが動いた。これはフィボナッチを計算してるところ。 ちなみに、これはこんな感じのフィボナッチのコードをCで書いて、 void main() { int i, *r = (int *)0x7f00

    ハード素人が32bit CPUをFPGAで自作して動かすまで読んだ本のまとめ - スティルハウスの書庫の書庫
  • 1