[20Q1.01A] PYNQを使ってPythonで手軽にFPGAを活用

  • このトピックには5件の返信、5人の参加者があり、最後にアバターthamadaにより8ヶ月前に更新されました。
5件の返信スレッドを表示中
  • 投稿者
    投稿
    • #221
      Forum AdminForum Admin
      キーマスター

      [20Q1.01A] PYNQを使ってPythonで手軽にFPGAを活用
      に関する意見交換の場です。

    • #405
      アバターoguram
      参加者

      大変丁寧に書かれていて参考になりました。
      できれば、Ultra96 v1、v2とVivadoとの接続に関しても同じように解説頂けると大変ありがたいです。

    • #406
      アバターmiyo
      参加者

      コメントありがとうございます。
      Ultra96もPYNQのターゲットとして魅力的ですよね。執筆者の環境が整えば書いてみたいとは思ってます。

    • #409
      アバターmiyo
      参加者

      すごく簡単にですが、Ultra96v1で、同じようにPYNQでオリジナルロジックを作る話を https://wasa-labo.com/wp/?p=646 に書いてみました。

    • #483
      アバターtoriten1024
      参加者

      大変有益な記事が多く、いつも参考にさせていただいてます。
      早速ですが、PYNQ を使って Python で手軽に FPGA を活用の第五回における「PL → PS の性能の目安を知っておこう」関してですが、4.5MBpsという数値をみて、そんなマイコンのような速度ではないだろうと思い検証実験を行いました。

      for l in range(LOOP):
      # 測定の本体
      input_buffer = allocate(shape=(SIZE//4,), dtype=np.uint32)  ←この行
      output_buffer = allocate(shape=(SIZE//4,), dtype=np.uint32)  ←この行
      dma.sendchannel.transfer(input_buffer)
      dma.recvchannel.transfer(output_buffer)

      となっておりましたが、ループ内で毎回メモリ領域を確保しているので、かなり実際の転送速度より遅くなっていると思います。
      私はPYNQ-Zシリーズを持っておらず、Ultra96ーV2で検証を行いました。結果は以下の通りです。

      ループ内メモリ確保:7.48074647765804 MBps
      最初に1度だけメモリ確保:25.72652065440237 MBps

      ループ内でアロケーションした場合と、ループの外でアロケーションした場合を比較すると、ループ内でのアロケーションの場合の方が70パーセント程度速度が劣化しました。
      またバッファのサイズとメモリ転送速度にも大きく関連性があります。

      DMAの速度は皆様参考にする重要な数値だと思いますので、是非再計測していただきたいです。

    • #563
      アバターthamada
      参加者

      いつも参考にさせていただいてます。

      2023年7月時点でPYNQ-Z1で最新のSDカードイメージ(v3.0.1)を使うとJupyterが動かなかったのでご報告いたします。
      v2.1に変更したSDカードで起動するとJupyter notebookが動きました。
      理由はわかりません。

      ご報告まで

5件の返信スレッドを表示中
  • このトピックに返信するにはログインが必要です。
タイトルとURLをコピーしました