ブックマーク / msyksphinz.hatenablog.com (10)

  • 「プログラマーのためのCPU入門」を買いました - FPGA開発日記

    面白そうなので買ってみました。物理は送料が意外と高かったので電子書籍版を買いました。 https://www.lambdanote.com/products/cpu プログラマーのためのCPU入門 ― CPUは如何にしてソフトウェアを高速に実行するかwww.lambdanote.com ざっくりと眺めましたが、タイトルに偽りなし、ソフトウェアエンジニアにとって、ハードウェアをどのように理解すればよいか、ということに重きが置かれています。これでハードウェアが書けるようになるというわけではないので、そこは勘違いしないようにしたい。 実際問題、ソフトウェアエンジニアの人たちは、サービスの速度向上を図りたいとき、どのようなアプローチをとっているのだろう?というのは興味があるところです。まさかフロントエンドエンジニアが「このサブルーチンはこういう命令に変換されるから...」ということを考えてプログ

    「プログラマーのためのCPU入門」を買いました - FPGA開発日記
    toshikish
    toshikish 2023/01/27
  • 2022年のRISC-V業界振り返り - FPGA開発日記

    2022年はRISC-VというISAが大きく進化した年だったと思う。 自分の見える範囲ではあるのだが、今年のRISC-V業界を少し振り返ってみたいと思う。 組み込みでもHPCでも、RISC-Vを避けて通ることはできなくなった。 ありとあらゆるところで、CPUに関わる話はRISC-Vを避けて通ることはできなくなっている。組み込み向けマイコンでは、もはやRISC-V ISAを搭載したマイコンは把握できないレベルで増加している。HPC向けでも、高性能試行のRISC-Vコアは全世界で開発が行われており、特にBarcelona Supercomputing Center(BSC)ではRISC-Vをベースとしたスーパーコンピュータの開発に向けての発表が多くみられるようになっている。 RISC-VのISA・コアの開発をリードするSiFiveは、最近では高性能向けにかじを切っているように見える。設立当時か

    toshikish
    toshikish 2023/01/01
  • どのように論文を読むか - FPGA開発日記

    仕事柄論文を読む機会は多くあって、自分なりの読み方、まとめ方、深堀の仕方などはある程度ルーティンがあります。しかしそれが当に最適解なのかどうかは分かりません。もっと自分に合ったやり方があるかもしれないし、今の方法がベストなのかもしれない。 "How to read a paper" という、論文、というか論文形式のメモがあり、これは当時カナダのWaterloo大学にいたSrinivasan Keshav先生が長年の経験からどのように論文を読めばよいのかというのをまとめたものになっています。これを読んでみて、なるほどなと思ったのでメモとして残しておきます。 ちなみに検索するとこの先生は現在はケンブリッジ大学の先生のようです。よく見てみると日語に訳されている方もいるようで、原文と日語訳は一読の価値があります。 http://svr-sk818-web.cl.cam.ac.uk/kesha

    どのように論文を読むか - FPGA開発日記
    toshikish
    toshikish 2022/12/30
  • 自作CPUのリグレッションテストをGitHub Actionsで行うための手法の調査 - FPGA開発日記

    自作CPUのリグレッションテストやCIをGitHub上で行いたくて、いくつか手法を調査している。 1つの手法としては、Dockerfileを使ってリグレッション環境を構築する。Dockerイメージ上にRISC-VツールチェインとVerilatorをインストールしておく。これをDockerHubに登録しておいた。 以下がDockefileの一部。VerilatorとRISC-Vツールチェインをインストールしている。 FROM ubuntu:22.04 RUN apt update ## ... 途中省略 ... # ------------------ # Install Verilator # ------------------ RUN curl -L https://github.com/verilator/verilator/archive/refs/tags/v4.228.tar.

    自作CPUのリグレッションテストをGitHub Actionsで行うための手法の調査 - FPGA開発日記
    toshikish
    toshikish 2022/11/05
  • 「RISC-V+LLVM本 付録2. 浮動小数点命令」を無償公開しました - FPGA開発日記

    「作って学ぶコンピュータアーキテクチャ」では、執筆時点ですでに500ページを超えてしまい、泣く泣く2章分を削除しています。 1つ目の付録である「付録1. 関数呼び出しのバリエーションと高度な機能」についてはすでに公開済みですが、もう一つの「付録2. 浮動小数点命令」についても公開しました。 こちらは、LLVMに浮動小数点命令を追加し、いくつかのアプリケーションを動かそうというものです。 github.com この章は、当は基的な演算や機能の実装後に挿入したかった章で、以下の範囲をカバーしています。 この章は割と頑張ったもので、浮動小数点の説明から、実装、さらにアプリケーションを2つ実装しています。 後半のレイトレーシングはかなり頑張った部分で、最後に画像が正しく出力されたときは若干感動しました。 こちらも、担当編集の方の校正が入っていないので怪しい文章やもしかしたら誤った情報が入ってい

    「RISC-V+LLVM本 付録2. 浮動小数点命令」を無償公開しました - FPGA開発日記
    toshikish
    toshikish 2022/07/11
  • フルスクラッチから作って理解するQEMU (Rust編) - FPGA開発日記

    モチベーション なぜRustを選んだか? 私はQEMUは「アーキテクチャエミュレーション界のLLVM」だと思っている QEMUが高速な理由:TCG Binary Translation ゲスト命令(RISC-V) → TCGホスト命令(x86)の処理をRustで作ろう RISC-Vの命令をフェッチしてデコードする RISC-Vの命令をTCGに変換する TCGをx86に変換する 実装結果 Binary Translation実行を高速化するための様々なテクニック BasicBlock分まで複数命令をまとめて変換 TCG Block Chainingの実装 評価結果 TB Lookup and Jumpの実装 評価結果 まだ完成していないところ 一部の最適化はまだ未実装となっている ゲストアーキテクチャがx86のみとなっている。TCGによる複数プラットフォーム対応として、まずは環境のそろ

    フルスクラッチから作って理解するQEMU (Rust編) - FPGA開発日記
    toshikish
    toshikish 2020/12/29
  • ブログを毎日書き続けるためのテクニック - FPGA開発日記

    このブログ「FPGA開発日記」は約2100日で2000記事に到達した。特に2019年と2020年は殆どサボることなく記事を書き続けることができている。ブログの品質は置いておいて、毎日日記を書くことは何となく楽しいものだ。2015年にブログを開設したときに「よしこの日記はなるべく毎日書くようにしよう」と決めて以来休まずに書き続けることができている。 元来物書きは嫌いではない。私はエンジニアだが、仕様書を書くのもそこまで嫌いじゃない。自分の実装するものを綺麗にまとめて、「一点の曇りもなく上手くできてるやろ、ドヤ」みたいにするのは楽しいし、バグ発見の報告書とかまとめて、「回避方法は1.と2.あるけどどうする?ニヤニヤ」みたいなのも何となく楽しい。自分がバグを出すのは嫌だけど。 5年以上にわたってブログを書き続けるにあたり、これほどまでに継続することができたのはいくつかの理由がある。この記事ではブ

    ブログを毎日書き続けるためのテクニック - FPGA開発日記
    toshikish
    toshikish 2020/10/19
  • 歳を取ったエンジニアとして腕力のある若手にどうやって立ち向かおうか考えた - FPGA開発日記

    この記事はFPGA開発日記の祝2,000記事到達の記念に書いているものです。 普段の記事と比べて非常にエモい内容となっております。 FPGA開発日記を始めたのが2015年の1月4日。それからおよそ5年と10か月で2,000記事に到達した。 計算してみると2,115日での2,000記事達成となっていた。我ながらよく頑張った。 ブログを書き始めてもう5年以上経った。5年も経てば周りの状況も変わるし、生活環境も変わる。 私も歳を取り、決して若いとは言えない年齢になった。昔のように徹夜で勉強とか実装はできなくなったし、肩は凝るし集中力は続かない。夜になるとすごく眠たくなる。仕事が終わったらすぐ眠たくなってしまい、趣味やブログを執筆する時間を取るのがとても難しくなってきた。 私が年を取れば取るほど、若い実装力のある、優秀な人たちが参入してきて、私の何倍ものスピードで成果を出していく。 私が持っている

    歳を取ったエンジニアとして腕力のある若手にどうやって立ち向かおうか考えた - FPGA開発日記
    toshikish
    toshikish 2020/10/18
  • CQ出版のインターフェース6月号に「Rustで作る命令セット・シミュレータ」を寄稿しました - FPGA開発日記

    インターフェースを毎号買って読んでいる方なら「おいおいこの話は先月号に載せるべき話じゃないのかい?」と言うことに気が付くと思います。私もそう思います。が、どうやら編集担当さんによりページ数のミスが発生した模様(当かどうかは知りませんが)で、なぜか私の記事が吹っ飛ばされて次号に掲載となりましたとさ。なんじゃそりゃ。 CQ出版さんの雑誌インターフェースの6月号「Rustで作る命令セット・シミュレータ」として原稿を寄稿させて頂きました。ちなみに6月号はどんな特集の内容なのか私も把握していないので、どういう話の流れでRustの特集が挿入されるのか全く知りません。たぶん単発記事として前後に関係なく載るのでしょう。 正直私はRustについてまだまだ初心者で、とても原稿を書けるような技術力の持ち主ではないのですが、C++をメインに使っている人間がRustに移行するために色々と試行錯誤した話だととらえて

    CQ出版のインターフェース6月号に「Rustで作る命令セット・シミュレータ」を寄稿しました - FPGA開発日記
    toshikish
    toshikish 2020/04/26
  • 本当に私の人生を変えた技術書10選 - FPGA開発日記

    年末ですね。年末に技術っぽいことを書いても誰も見ていないので、どうでもいいことを書こうと思います。 皆さん技術書は好きですか?好きですよね。読みもしないのに技術書典なんかに大挙して押しかけて、結局積読が増えていく。積んでいるとなんか落ち着くのかもしれません。 私は現在ハードウェア関連の技術者として働いているわけですが、短い人生の中で読んだ技術書の中で、当に私の人生を変えてしまった技術書を思い出しながら紹介してみたいと思います。 あらかじめ断っておきますが、「名著」や「良い」を紹介するのではなく、あくまでも私の人生を変えたです。逆にいうと、あまり名著は出てきません。名著の紹介はすでにいろんなところでやられているので、そちらを見ていただければ。 1. 図解で分かるPCアーキテクチャのすべて(初版) 〈最新〉図解でわかる PCアーキテクチャのすべて 作者:小泉 修出版社/メーカー: 日

    本当に私の人生を変えた技術書10選 - FPGA開発日記
    toshikish
    toshikish 2019/12/28
  • 1