タグ

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

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

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

    どのように論文を読むか - FPGA開発日記
  • フルスクラッチから作って理解する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開発日記
  • Vivado HLSをWindows Subsystem on Linuxで動作させるための手順 - FPGA開発日記

    Vivado HLSについて再入門しようと思っている。 最近は環境をVirtual BoxからWindows Subsystem on Linux(WSL)に変更したので、その環境下でVivado HLSが動くようにしておきたい。 私が使うのは、基的にGUIは立ち上げずにスクリプトだけで処理を行いたい。 そのため、これまでに作ったスクリプトがちゃんとWSL上のVivado HLSで動作するのかを確認しておいた。 使用したのは、昔作ったedge_filterのデザインだ。 github.com 実行してみると、どうもincludeファイルが読み込めずに失敗してしまう。 fpga_designs/vivado_hls/edge_filter/test_edge_filter.cpp #include <stdio.h> #include <stdint.h> #include "./edge

    Vivado HLSをWindows Subsystem on Linuxで動作させるための手順 - FPGA開発日記
  • PortSmashで学ぶ高性能プロセッサの同時マルチスレッディング - FPGA開発日記

    CPUの脆弱性として新たに報告された "PortSmash" 、どういう脆弱性なのかを調べるために論文を探すと公開されていた。 Port Contention for Fun and Profit https://eprint.iacr.org/2018/1060.pdf "Port Contention for Fun and Profit" という論文として公開されている。 どうでもいいけれども、"Fun and Profit" (趣味と実益)っていう名前がついているのは謎である。 読み進めていくと、結構理屈としては分かりやすい攻撃手法だということが分かった。 ちなみにこのPortという言葉は、SSHなどのポートのことではない。 現代のアウトオブオーダのプロセッサには、命令の種類に応じて実行されるユニットが分けられている。 例えば算術演算命令ならばALUユニット、メモリアクセス命令だっ

    PortSmashで学ぶ高性能プロセッサの同時マルチスレッディング - FPGA開発日記
  • Intel Software Guard Extensionのチュートリアルを読む(1. SGX Foundation) - FPGA開発日記

    CPU脆弱性についての論文を読んでいると必ずと言っていいほど出てくるIntel SGX(Software Guard Extension)。 なんとなく秘匿データを扱うためのIntelのハードウェア機構なんだろうなと思っていたけど、あまり知ったかぶりをしているのもよくないのでチュートリアルを読んでみることにした。 参考にしたのは、Intel® Software Guard Extensions Tutorial Series だ。ハードウェアの詳細について書いてあるわけではないが、使い方についていろいろ書いてあるので基礎知識を得るのにはよさそう。 software.intel.com 長々と書いているが要するに、 SGXは秘密情報を扱うためにアプリケーション階層内に「飛び地(enclave)」を作成する。この飛び地に秘密情報を格納して管理する。 enclaveに入れるのは、Intelの専用

    Intel Software Guard Extensionのチュートリアルを読む(1. SGX Foundation) - FPGA開発日記
  • 128bitまで対応したRISC-VエミュレータでLinuxが動く (しかも超高速) - FPGA開発日記

    ダウンロードとビルド riscvemuを動作させる riscvemuの実行方法 risvemuを利用したSimple Linuxの起動 Fedoraのディスクイメージでの起動 シレっとRISC-Vメーリングリストに投稿されたこれ、QEMUの開発者でもあるFabrice BellardがRISC-Vの128bitモードまで対応したエミュレータを開発したという話だ。 RISCVEMU groups.google.com ダウンロードとビルド ダウンロードしてみるとソースコードの量も少なく非常にシンプル、こんなのでRISC-Vをサポートしてしまうのか。 makeを一発叩くだけでビルドできるのだが、私の環境の場合ではfreadのエラーを回避するためにオプションを若干変更する必要があった。 gcc -O2 -Wall -g -Werror -D_FILE_OFFSET_BITS=64 -D_LARG

    128bitまで対応したRISC-VエミュレータでLinuxが動く (しかも超高速) - FPGA開発日記
  • Meltdown, Spectre で学ぶ高性能コンピュータアーキテクチャ - FPGA開発日記

    巷ではIntel, AMD, ARMを巻き込んだCPUのバグ "Meltdown", "Spectre" が話題です。 これらの問題、内容を読み進めていくと、コンピュータアーキテクチャにおける重要な要素を多く含んでいることが分かって来ました。 つまり、このCPUセキュリティ問題を読み解いていくと現代のマイクロプロセッサが持つ、性能向上のためのあくなき機能追加の一端が見えてくるのではないかと思い、Google, Intelの文献を読み解いてみることにしました。 が、私はセキュリティの専門家ではありませんし、過去にデスクトップPC向けのような大規模なCPU設計に参加したこともありません。 あくまでコンピュータアーキテクチャに比較的近い場所にいる人間として、この問題の質はどこにあるのか、可能な限り読み解いていき、現代のマイクロプロセッサが持つ高性能かつ高機能な内部実装について解き明かしていき

    Meltdown, Spectre で学ぶ高性能コンピュータアーキテクチャ - FPGA開発日記
  • 1