タグ

fpgaに関するmanabouのブックマーク (83)

  • MN-Coreを素人考察してみる - Ryuz's tech blog

    はじめに 先般 MN-Ccore Challenge なるものが開催され、私もスキマ時間に気分転換的にちょこちょこ挑戦していたのですが(業関係者への言い訳)、とても面白いアーキテクチャだなと思いました(順位はまあその力及ばず微妙な感じでしたが)。 普段 FPGAプログラミングが多い私ですが、いろいろ新しい観点で脳に刺激を頂きました。 今更私なんかが考察する余地もない気はしますが、折角なのでプログラミングではなく、プロセッサアーキの方を少しだけ感想程度に記録しておければと思います。 いろいろ資料も公式に公開されていますし、コンテストも終わったようなので(実は終了日を勘違いしていました)、安心してあれこれと自分用の勉強の教材にして楽しませて頂きたいなと思います。 なお、ほんとに素人考察なので、あんまりマサカリは投げないでおいてあげてください(言い訳)。 どんな構成なのか 最初に「ソフトウェア

    MN-Coreを素人考察してみる - Ryuz's tech blog
  • Netflixによるインスタンス負荷改善のための解析事例 - FPGA開発日記

    LinkedInの記事をめぐっているうちに見つけた、マイクロアーキテクチャに関する面白い事例。 CPUのマイクロアーキテクチャのさらに奥深くまで理解が必要な問題を解決するために、どのようなツールをつかってどのように解決したかの話。 netflixtechblog.com Netflix内でのワークロード最適化のため、AWSのインスタンスサイズを移行(16 vCPUから48 vCPU)し、CPUがボトルネックとなるワークロードの性能向上を図った。 このインスタンスの移行により、性能をほぼ直線的に増加させることを想定し、スループットがおよそ3倍になると予想した。 しかし、結果としてこの移行で想定する性能は達成できなかった。 https://netflixtechblog.com/seeing-through-hardware-counters-a-journey-to-threefold-pe

    Netflixによるインスタンス負荷改善のための解析事例 - FPGA開発日記
  • Sipeed Tang Nanoで遊んでみる (Linux版) - Qiita

    概要 GOWINのLittleBeeシリーズFPGAが載っているFPGAボードTang NanoがSipeedから出たので、Linux上に開発環境を整えてからLチカするまで試した内容を記載します。 Windows版は @tomorrow56 さんが既に書いている のでこちらを参考にしてください。 開発環境のインストール 基的にインストール手順はSipeedのTang NanoのGet Startedページに書いてありますが、現時点でLinux版はTODOとあります。とりあえずLinux版の開発環境バイナリがDLできるので、適当に入れてみました。 Tang Nanoの資料はhttp://dl.sipeed.com/TANG/Nano からDLできます。 http://dl.sipeed.com/TANG/Nano/IDE にあるdownload_link.txt に記載されているとおり、

    Sipeed Tang Nanoで遊んでみる (Linux版) - Qiita
    manabou
    manabou 2020/08/15
  • Nintendo Switchからデジタル音声を「直接」取り出す。FPGAで! - Zopfcode

    Switchイヤホン出力の音がひどいことで有名だ*1。 ブズズズズ………バババババ…… と熱雑音では明らかに説明できない周辺回路のお気持ちが音となって伝わってくる。 そこでUSB DACを使いたいのだが、どうも手持ちだとハイエンド機に限って動かない*2。別なやり方でデジタル音声を取り出さなければ。 取り出し方は様々ある。 ドックのHDMI出力 + S/PDIFスプリッター(TVモード必須) SwitchBluetoothトランスミッター(ぶっちゃけこれが一番オススメ) Switchが認識できるUSB DDCで同軸デジタルなどにする Raspberry PiのUACガジェット Switchに直に接続できないDACを使いたい場合は、DDC必須*3でゴテゴテしてしまう。 「それなら体に流れるデジタル信号(I2S)を直接取り出して、S/PDIFに変換するしかないよね!」と思いついた26の夜。

    Nintendo Switchからデジタル音声を「直接」取り出す。FPGAで! - Zopfcode
  • FPGA で 8088 (D8088-2) を動かして自作PCをやる - w_o’s diary

    これまでのあらすじ : https://twitter.com/tanakmura/status/1280152564898557952 FPGAでHello World以上のものが書きたいという気持ちは前からあったので、この機会に少し実用的はHDLを書くことにした。 なにをやっているかの解説を書いておこう。 ソースは、 https://github.com/tanakamura/jisaku_pc_8088 ここにある(上のツイートでは、タイミング問題があってLED点灯しないことがあると書いてるが、これは多分改善してあるはず。) こういう昔のCPUは、CPU側の命令実行とバスが直結していて、ポインタ0x80 を読むと、CPUの足に、そのまま0x80が出てくる。それを正しくハンドリングして、有効な命令バイト列を返せば、8088を動かすことが可能だ。 この実装では、この足から出てくる信号をデ

    FPGA で 8088 (D8088-2) を動かして自作PCをやる - w_o’s diary
  • Osana Lab.: Lectures

  • Synthesijer入門1 - Qiita

    どうもSynthesijer でステップバイステップで入門できる,チュートリアル的なサイトがないなーという印象なので,自分で書いてみることにしました.流れとしては,以下の通りです. 目次 前提条件 JavaでQuickSortを書く QuickSortをSynthesijer向けに書き直す QuicksortをFPGAボードに実装する 続編のSynthesijer入門2ではマルチスレッド版に変更する内容となっています. 前提条件 このページでは以下のような方を前提としています. Javaのプログラミングの知識はある. HDLもある程度は書ける. FPGAツールの使い方も分かる. Synthesijerの環境設定 最初にJavaでのプログラミングにおいて,クラス,メソッド,コンストラクタ,フィールド変数などの用語は理解していて,簡単なプログラムであれば,Javaでスラスラとプログラミングでき

    Synthesijer入門1 - Qiita
  • CPUの新たな脆弱性 SPOILERの論文を読む - FPGA開発日記

    arxiv.org GIGAZINEでも紹介された新たなCPUの脆弱性の論文"SPOILER"が発表された。GIGAZINEがこのような記事を公開するのは珍しいなと思いつつ、面白そうなので読んでみることにした。 ちなみに、筆者は例によってセキュリティの専門家ではないし、CPUアーキテクチャにしてもデスクトップクラスの格的なものは設計経験がないので、いまいち文から読み取れない部分があったりとか、間違っている部分があるかもしれない。 この攻撃手法も、CPUの高速化を達成するための様々な機構を悪用する手法となっている。 SPOILERが対象とするのは、ストア命令の内容をロード命令でフォワードするためのMOB(Memory Order Buffer)の機構だ。例えば以下のようなコードを書いた場合、 sw a0, 0(sp) lw a1, 0(sp) ストア命令は、投機実行をしてしまうとメモリの

    CPUの新たな脆弱性 SPOILERの論文を読む - FPGA開発日記
  • 論理回路の高位合成について - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに この記事ではFPGA等の論理回路の設計手法の一つのカテゴリーである「高位合成」について概略を説明したいと思います。ただし、筆者の知る限りでも高位合成についてはさまざまな立場の人が各時代の視点で色々なことを語っているので、この記事もそんな中の一つの解釈を述べてるだけととって頂き、他の資料等も参考にして興味を持っていただけると幸いです。 論理回路設計について まずWikipedia英語の記事(日語版はありませんでした)によると https://en.wikipedia.org/wiki/High-level_synthesis

    論理回路の高位合成について - Qiita
  • NVDLAのConvolution DMAが実行する畳み込みの手順の解析 - FPGA開発日記

    NVDLAというか、畳み込み演算をどのようにハードウェアで実現するかということをさらに掘り下げている。 NVDLA : Unit Description Unit Description — NVDLA Documentation NVDLAのConvolution DMAは、以下のような画像に対して入力画像とカーネルを畳み込むことを考える。ここではチャネルについては無視している。 上記の図における、各パラメータは以下の通りである。 Top Padding(TP) : 画像データに対して上部に何ピクセルパディングを入れるか。 Bottom Padding(BP) : 画像データに対して下部に何ピクセルパディングを入れるか。 Left Padding(LP) : 画像データに対して左部に何ピクセルパディングを入れるか。 Right Padding(RP) : 画像データに対して右部に何ピクセ

    NVDLAのConvolution DMAが実行する畳み込みの手順の解析 - FPGA開発日記
  • ソフトウェア技術者から見たFPGAの魅力と可能性

    2021/4/28 に東京大学で開催された<AIセミナーシリーズ> 「Arm CPUにおけるSIMDを用いた高速計算入門」講演会で使用した資料になります。

    ソフトウェア技術者から見たFPGAの魅力と可能性
  • Meltdown, Spectre で学ぶ高性能コンピュータアーキテクチャ - FPGA開発日記

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

    Meltdown, Spectre で学ぶ高性能コンピュータアーキテクチャ - FPGA開発日記
  • 高位合成おぼえがき - Qiita

    この記事は Aizu Advent Calendarの6日目の記事です。 前記事は @stringamp さんの 畳み込み演算を用いた残響効果の理論と実装 はじめに この記事では高位合成に関する説明と、Vivado HLSとSystemCを使った高位合成での簡単な実装例を示します。 前者に関しては寄せ集めの情報を自分なりにまとめたものになりますので、誤情報等を含んでいる可能性があります。 見つけた方はビシバシご指摘いただけると泣いて喜びます。 高位合成とはなんぞや 元来のデジタル回路は、Verilog,やVHDLに代表されるハードウェア記述言語(HDL)によってレジスタトランスファーレベル(RTL)で書かれるのが主でした。 RTLレベルでの加算器表現 Wikipedia - Full-adderより しかし、これらのHDLは記述の抽象度が低く、相対的に記述量が増えてしまうため、近年の半導体

    高位合成おぼえがき - Qiita
  • Reconfigure.io — Program FPGAs with GO!

    Reconfigure.io delivers the power of hardware acceleration technology straight to cloud developers, using AWS EC2 F1 instances. Using our service you can use Go to program and reprogram FPGAs to fit your project. Build, test and deploy quickly and easily in the cloud. Scalable, cost-effective hardware accelerationAWS EC2 services provide convenient, cost-effective and highly scalable access to clo

    Reconfigure.io — Program FPGAs with GO!
  • 実はCPUもGPUも内蔵、いまどきのFPGAを知る

    2回に渡ってFPGAについて説明してきた。最終回であるこの3回目では、実際のFPGAの種類や製品展開をもう少し細かく紹介する。 どんなFPGAベンダーがあるのか 以前は、多数のメーカーがFPGAないしそれに類したものを手がけていた。ただベンダーの買収や製品ラインの統合、売却なども相まって、現在ベンダーはそれほど多くない。「EETimes」でPaul Dillien氏が執筆した記事によると、市場規模はおよそ4500億円程度。その半分以上を米ザイリンクスが占めており、2番手として米インテルが買収した米アルテアが追い上げている。この2社で市場の大半を占めている「2強体制」である。 3番手は2010年に米アクテルというFPGA専業メーカーを買収した米マイクロセミ、4番手が米ラティスセミコンダクターだ。主要FPGAベンダーといえば、この4社を指す。ちなみにラティスセミコンダクターは、中国のファンドが

    実はCPUもGPUも内蔵、いまどきのFPGAを知る
  • FPGAエクストリーム・コンピューティング 第9回 - 資料一覧 - connpass

    終了 2017/09/24(日) 13:00〜 FPGAエクストリーム・コンピューティング 第9回 CPUに縛られたコンピューティングはもう飽きた! FPGAの新しい遊び方を考える会です。 kazunori_279 他 東京都中央区築地1丁目13−1 (ADK松竹スクエア13F)

    FPGAエクストリーム・コンピューティング 第9回 - 資料一覧 - connpass
  • マイコン・ユーザーのための、 FPGA設計ガイド ~ステップ・バイ・ステップでFPGAにトライ!~

    Intel.com サーチを使用 いくつかの方法で Intel.com のサイト全体を簡単に検索できます。 製品名: Core i9 文書番号: 123456 Code Name: Emerald Rapids 特別な演算子: “Ice Lake”, Ice AND Lake, Ice OR Lake, Ice*

    マイコン・ユーザーのための、 FPGA設計ガイド ~ステップ・バイ・ステップでFPGAにトライ!~
  • 第475回 廉価なFPGA開発ボード「Zybo」をUbuntuからプログラムする | gihyo.jp

    みなさん、FPGA使ってますか? スマートフォンの普及によって、ARMデバイスは当に身近な存在になりました。近頃のスマートフォンは一昔前では考えられないほどいいCPU/SoCを搭載しているため、Twitterから3Dゲームに至るまで、手のひらにおさまる大抵の用途において十分に真価を発揮します。ところが「ひたすら行列計算を行いたい」「⁠画像認識や機械学習をより低消費電力で回したい」といった、ちょっと特殊なシチュエーションになると、スマホに搭載されているARM CPU/SoCでは遠からず「性能の限界」がやってきます。この限界を突破するために、FPGAに手を出すのは生き物のサガと言っても差し支えないでしょう。すみません、ちょっと言い過ぎました。 今回はそんな「ちょっと特殊なシチュエーション」に憧れる人に向けて、廉価なFPGA開発ボードの使い方を紹介します。 Digilent製FPGA開発ボード

    第475回 廉価なFPGA開発ボード「Zybo」をUbuntuからプログラムする | gihyo.jp
  • AWSのFPGAインスタンス用サンプルカスタムロジックcl_hello_worldのAFIを構築してみました #fpga | DevelopersIO

    AWSFPGAを搭載したEC2インスタンスであるF1インスタンス用カスタムロジック(CL)のサンプルをビルドして、AFI(Amazon FPGA Image)の構築手順を試してみましたのでご報告します。 はじめに 先日書きましたFPGAの開発ツールでサンプルをビルドする手順ですは、ごく単純なHDL(Hardware Description Language)のサンプルで、特にAWS F1インスタンス用というわけではありませんでした。F1インスタンスで何か有意な処理をさせようとするには、FPGACPUやメモリの間でデータのやりとりを行う必要があり、それなりの中身が必要なはずです。探してみるとちゃんとサンプルがありましたので、今回はこれをビルド(合成)してみました。手順が長くなりましたので、今回はビルドとイメージの作成までを説明します。完成したイメージをロードして動かしてみるのは次の記事に

    AWSのFPGAインスタンス用サンプルカスタムロジックcl_hello_worldのAFIを構築してみました #fpga | DevelopersIO
  • Building a CPU on an FPGA, part 1