FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

2024-07-01から1ヶ月間の記事一覧

OpenMPを使ったプログラムはどのくらいスケーラビリティがあるのか

OpenMPを使った並列プログラムを試していて,いろいろ疑問に思ったことなのだが,場合によっては全然性能が上がらないことがある. 簡単なプログラムを作って,その動作をか確かめてみたい: printf("# of threads: %d\n", nthread); printf("# of processor…

GPUアーキテクチャについての資料を読む (Digital Design & Computer Arch. 4. NVIDIAのGPU)

前のブログエントリの続き: msyksphinz.hatenablog.com msyksphinz.hatenablog.com msyksphinz.hatenablog.com 引き続き、以下の資料を読んでいく。 https://safari.ethz.ch/digitaltechnik/spring2023/lib/exe/fetch.php?media=onur-ddca-2023-lecture20-g…

GPUアーキテクチャについての資料を読む (Digital Design & Computer Arch. 3. 分岐のダイバージェンス)

前のブログエントリの続き: msyksphinz.hatenablog.com msyksphinz.hatenablog.com 引き続き、以下の資料を読んでいく。 https://safari.ethz.ch/digitaltechnik/spring2023/lib/exe/fetch.php?media=onur-ddca-2023-lecture20-gpu-beforelecture.pdf Block…

GPUアーキテクチャについての資料を読む (Digital Design & Computer Arch. 2. Warpの構成法)

前のブログエントリの続き: msyksphinz.hatenablog.com 引き続き、以下の資料を読んでいく。 https://safari.ethz.ch/digitaltechnik/spring2023/lib/exe/fetch.php?media=onur-ddca-2023-lecture20-gpu-beforelecture.pdf -- プログラミングモデルは、プロ…

GPUアーキテクチャについての資料を読む (Digital Design & Computer Arch. 1. SIMDとMIMD)

GPUアーキテクチャの基本について学ぶために、以下の資料を読んでいく。 https://safari.ethz.ch/digitaltechnik/spring2023/lib/exe/fetch.php?media=onur-ddca-2023-lecture20-gpu-beforelecture.pdf -- 以下の資料を読むことを強く推奨する Lindholm et a…

自作CPUの動作周波数改善検討 (14. 命令バッファの切り出し方法の検討)

フロントエンドの命令の切り出し方法について、少し考えなおした。 RVCを展開してプリデコードされた命令は、FIFOに貯められる。 FIFOの各エントリはキャッシュブロックに貯められる命令の最大サイズで格納されるが、これをディスパッチできるサイズに切り出…

幅優先探索におけるTop Down方式とBottom Up方式について

グラフアルゴリズムにおける幅優先探索(Breadth Width Search: BFS)というのは、グラフのスタート・ノードから始まって、ノードに隣接するノードを探索してから、さらにそのノードに隣接するノードを探索するというアルゴリズムだ。 グラフアルゴリズムの授…

自作CPUの動作周波数改善検討 (13. Dhrystoneによるデバッグ)

RVC命令の切り出しの部分を改善について実装を進めていて、Dhrystoneでの基本的な動作を検証している。 もろもろデバッグして、一応最後まで動くようになった。しかしまだいろいろと問題がある。 分岐予測器と結合していない:フロントエンドの分岐予測の結…

自作CPUの動作周波数改善検討 (12. 命令の切り出しデバッグ)

RVC命令の切り出しの部分を改善について実装を進めていて、Dhrystoneでの基本的な動作を検証している。 Dhrystoneの最初の部分が動くようになってきた。いろいろデバッグしている。 今のところは想定内に動作しているが、次は分岐予測とのインテグレーション…

自作CPUの動作周波数改善検討 (11. 命令の切り出しデバッグ)

RVC命令の切り出しの部分を改善について実装を進めていて、Dhrystoneでの基本的な動作を検証している。 おおよそRVCの16ビットの切り出しについては動作するようになった。周波数的にも許容範囲だ。 問題はキャッシュブロックを跨いだ時だ。 キャッシュブロ…

自作CPUの動作周波数改善検討 (10. 命令の切り出しデバッグ)

RVC命令の切り出しの部分を改善について、もうちょっと考え直す。 ちょっと実装を進めて、ちょっとだけ動き始めた。 タイミング的にも、まだ余裕がある。

自作CPUの動作周波数改善検討 (9. RVCを含む命令ブロック抽出の考え直し)

RVC命令の切り出しの部分を改善について、もうちょっと考え直す。 以下の記事だが、なんか違う気がしてきた。 msyksphinz.hatenablog.com RVCの位置を正確に計算するというのなら、以下のようなことを考えなければならないはずだ: 必要なのは、16ビットブロ…

自作CPUの動作周波数改善検討 (8. フロントエンドでのインテグレーション)

RVC命令の切り出しの部分を改善して、とりあえずフロントエンドへのインテグレーションを始めた。 まだ全く動作しないのだが、信号を接続しながら動作を確認していこうと思う。 とりあえず、命令の切り出しとデコードの部分をチェックしていく。あとは、アデ…

"Constable: Improving Performance and Power Efficiency by Safely Eliminating Load Instruction Execution" を読んでみる(3)

ISCA 2024で発表された「Constable: Improving Performance and Power Efficiency by Safely Eliminating Load Instruction Execution」という論文を読んでみることにする。 arxiv.org どうやら Best Paper Awardはこの論文がとったらしい。 Congratulations…

"Constable: Improving Performance and Power Efficiency by Safely Eliminating Load Instruction Execution" を読んでみる(2)

ISCA 2024で発表された「Constable: Improving Performance and Power Efficiency by Safely Eliminating Load Instruction Execution」という論文を読んでみることにする。 arxiv.org どうやら Best Paper Awardはこの論文がとったらしい。 Congratulations…

"Constable: Improving Performance and Power Efficiency by Safely Eliminating Load Instruction Execution" を読んでみる(1)

ISCA 2024で発表された「Constable: Improving Performance and Power Efficiency by Safely Eliminating Load Instruction Execution」という論文を読んでみることにする。 arxiv.org どうやら Best Paper Awardはこの論文がとったらしい。 Congratulations…

自作CPUの動作周波数改善検討 (7. 命令バッファ周辺のクリティカルパスの確認)

前回の続きで,RVCを含んだ命令キャッシュブロックから命令を正しく切り出す方法について、まだちゃんとした実装や検証にはなっていないのだけれど,Vivadoで論理合成してクリティカルパスを確認していく. 命令の切り出しの部分と,最終的な命令をリネーム…

自作CPUの動作周波数改善検討 (6. 命令の切り出し方法のクリティカルパスの確認)

前回の続きで,RVCを含んだ命令キャッシュブロックから命令を正しく切り出す方法について、まだちゃんとした実装や検証にはなっていないのだけれど,Vivadoで論理合成してクリティカルパスを確認していく. 命令の切り出しの部分だけを見ると,以下のような…

自作CPUの動作周波数改善検討 (5. 命令の切り出し方法の検討)

前回の続きで,RVCを含んだ命令キャッシュブロックから命令を正しく切り出す方法を検討していく. ここでは,命令が128ビットであり命令のズレが起きていない(つまり過去のキャッシュブロックの16ビットを引きずっていない)ものとする. 128ビットの命令キャ…

RISC-VのSBC HiFive Unmatched が(たたき売り状態だったので)買った

HiFive Unmatched は SiFive が2020年(と記憶している) に発表したSBC(Single Board Computer) で,当時としては数少ない Linux を動作させることができる開発ボードだった. 問題はこのボードは異常に値段が高く,発表当時は667米ドル(当時の相場で考えても…