RGBからグレーへの変換(Vivado HLS)だけなのに、レイテンシーが高すぎるのはなぜですか?

Ak

私はVivadoHLS2015.4でイメージを使用しています。

約311774クロックサイクルという非常に高いレイテンシーが発生しています。プログラムは2つの入力画像を取得し、RGBからグレーに変換するだけですが。全体的な待ち時間は、私は3つのすべてのために77-78kの待ち時間を取得していますよう311774であるAxi2MatRGB2GRAYMat2AXI

それをパイプライン化して最終的なレイテンシーを約78kにすることができるように、それを減らす方法はありますか?

コードと合成レポートを添付しています:

#include <hls_video.h>
#include <hls/hls_video_types.h>
#include "top.h"


void toGray(AXI_IN_STREAM &IN_STREAM_1, AXI_IN_STREAM &IN_STREAM_2, AXI_OUT_STREAM &OUT_STREAM_1, AXI_OUT_STREAM &OUT_STREAM_2, unsigned int cols, unsigned int rows){
    #pragma HLS INTERFACE axis port=IN_STREAM_1
    #pragma HLS INTERFACE axis port=OUT_STREAM_1

    #pragma HLS INTERFACE axis port=IN_STREAM_2
    #pragma HLS INTERFACE axis port=OUT_STREAM_2


    #pragma HLS RESOURCE core=AXI_SLAVE variable=rows metadata="-bus_bundle CONTROL"
    #pragma HLS RESOURCE core=AXI_SLAVE variable=cols metadata="-bus_bundle CONTROL"
    #pragma HLS RESOURCE core=AXI_SLAVE variable=return metadata="-bus_bundle CONTROL"

    #pragma HLS INTERFACE ap_stable port=rows
    #pragma HLS INTERFACE ap_stable port=cols

    hls::Mat<MAX_HEIGHT, MAX_WIDTH, HLS_8UC3> inMat_1(rows, cols);
    hls::Mat<MAX_HEIGHT, MAX_WIDTH, HLS_8UC3> inMat_2(rows, cols);

    hls::Mat<MAX_HEIGHT, MAX_WIDTH, HLS_8UC1> grayMat_1(rows, cols);
    hls::Mat<MAX_HEIGHT, MAX_WIDTH, HLS_8UC1> grayMat_2(rows, cols);


 // hls::Mat<MAX_HEIGHT, MAX_WIDTH, HLS_8UC1> outMat(rows, cols);

    hls::AXIvideo2Mat(IN_STREAM_1, inMat_1);
    hls::AXIvideo2Mat(IN_STREAM_2, inMat_2);

    hls::CvtColor<HLS_BGR2GRAY, HLS_8UC3, HLS_8UC1>(inMat_1, grayMat_1);
    hls::CvtColor<HLS_BGR2GRAY, HLS_8UC3, HLS_8UC1>(inMat_2, grayMat_2);
 // hls::EqualizeHist(grayMat, outMat );




    hls::Mat2AXIvideo(grayMat_1, OUT_STREAM_1);
    hls::Mat2AXIvideo(grayMat_2, OUT_STREAM_2);

}
ゼセン

UG902:Vivado DesignSuiteユーザーガイドP.293:関数はすでにパイプライン化されているため、DATAFLOW最適化を追加すると、パイプライン化された関数が並列に実行されます。

したがって、#pragma HLS dataflowディレクティブをコードに追加するだけで、関数間のデータフローを使用して、クロックごとに1つのサンプルを処理していることを確認できます。結果として、レイテンシーは77-78kに減少するはずです(私が想定しているのはcols*rows)。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

「標準」RGBからグレースケールへの変換

分類Dev

CUDAを使用したRGBからグレースケールへの変換

分類Dev

Python RGBからグレースケールへの変換(ExGG)行列演算

分類Dev

メインコンテナが広すぎるのはなぜですか?col-9とcol-3だけ

分類Dev

再帰関数がテンプレートに1回だけ印刷されるのはなぜですか?

分類Dev

静的ファイルを提供するGAEアプリのレイテンシーが非常に高いのはなぜですか?

分類Dev

[☓]ボタンだけがグレー表示されているのに、[☐]と[—]はグレー表示されていないのはなぜですか?

分類Dev

非定数イテレータから定数イテレータへの変換は避けるべきですか?

分類Dev

コンパイラー/ JVMがオートボクシングを「機能するだけ」にできないのはなぜですか?

分類Dev

Pythonでシグナルハンドラーを設定できるのはメインスレッドだけなのはなぜですか

分類Dev

18.04から20.04へのアップグレードがまだ利用できないのはなぜですか?

分類Dev

OpenCVを使用してRGB画像をグレースケールに変換すると緑色の画像が表示されるのはなぜですか?

分類Dev

「-」が付いたjson変数がテーブルにNaNを表示するだけなのはなぜですか?

分類Dev

PDFをプレーンテキストに変換するのが難しいのはなぜですか?

分類Dev

1台のサーバーだけが「配列から文字列への変換」というエラーをスローするのはなぜですか?

分類Dev

検証の精度がトレインの精度よりもはるかに高いのに、テストの精度が0.5しかないのはなぜですか?

分類Dev

一部のバッテリー駆動デバイスが高電力レベルでシャットダウンするのはなぜですか?

分類Dev

コンパイラが0だけ左にシフトするのはなぜですか?

分類Dev

レイテンシスタックトレースに平均がないのはなぜですか?

分類Dev

フレックスアイテムがフレックスグローなしで全高に拡張するのはなぜですか?

分類Dev

CLの高さがwrap_Contentに設定されているのに、座標レイアウト(CL)がフローティングアクションボタンの半分を非表示にするのはなぜですか?

分類Dev

「すべてがファイルである」がUnixオペレーティングシステムに固有なのはなぜですか。

分類Dev

RGBからYUVへの変換なし

分類Dev

最後のメニュー項目だけにアイコンがあるのはなぜですか?

分類Dev

phpDocのオープニングシーケンスで、 `/ *`だけでなく `/ **`に2つの星が付いているのはなぜですか

分類Dev

「インタラクティブシェル」モードのPHPがこのスクリプトを1回だけ実行するのはなぜですか?

分類Dev

レイヤー変換がUIViewのフレームに影響するのはなぜですか?

分類Dev

Windows 10でシステムトレイのWi-Fiアイコンが白から灰色に点滅し続けるのはなぜですか?

分類Dev

グリッド行の高さが高すぎるのはなぜですか?

Related 関連記事

  1. 1

    「標準」RGBからグレースケールへの変換

  2. 2

    CUDAを使用したRGBからグレースケールへの変換

  3. 3

    Python RGBからグレースケールへの変換(ExGG)行列演算

  4. 4

    メインコンテナが広すぎるのはなぜですか?col-9とcol-3だけ

  5. 5

    再帰関数がテンプレートに1回だけ印刷されるのはなぜですか?

  6. 6

    静的ファイルを提供するGAEアプリのレイテンシーが非常に高いのはなぜですか?

  7. 7

    [☓]ボタンだけがグレー表示されているのに、[☐]と[—]はグレー表示されていないのはなぜですか?

  8. 8

    非定数イテレータから定数イテレータへの変換は避けるべきですか?

  9. 9

    コンパイラー/ JVMがオートボクシングを「機能するだけ」にできないのはなぜですか?

  10. 10

    Pythonでシグナルハンドラーを設定できるのはメインスレッドだけなのはなぜですか

  11. 11

    18.04から20.04へのアップグレードがまだ利用できないのはなぜですか?

  12. 12

    OpenCVを使用してRGB画像をグレースケールに変換すると緑色の画像が表示されるのはなぜですか?

  13. 13

    「-」が付いたjson変数がテーブルにNaNを表示するだけなのはなぜですか?

  14. 14

    PDFをプレーンテキストに変換するのが難しいのはなぜですか?

  15. 15

    1台のサーバーだけが「配列から文字列への変換」というエラーをスローするのはなぜですか?

  16. 16

    検証の精度がトレインの精度よりもはるかに高いのに、テストの精度が0.5しかないのはなぜですか?

  17. 17

    一部のバッテリー駆動デバイスが高電力レベルでシャットダウンするのはなぜですか?

  18. 18

    コンパイラが0だけ左にシフトするのはなぜですか?

  19. 19

    レイテンシスタックトレースに平均がないのはなぜですか?

  20. 20

    フレックスアイテムがフレックスグローなしで全高に拡張するのはなぜですか?

  21. 21

    CLの高さがwrap_Contentに設定されているのに、座標レイアウト(CL)がフローティングアクションボタンの半分を非表示にするのはなぜですか?

  22. 22

    「すべてがファイルである」がUnixオペレーティングシステムに固有なのはなぜですか。

  23. 23

    RGBからYUVへの変換なし

  24. 24

    最後のメニュー項目だけにアイコンがあるのはなぜですか?

  25. 25

    phpDocのオープニングシーケンスで、 `/ *`だけでなく `/ **`に2つの星が付いているのはなぜですか

  26. 26

    「インタラクティブシェル」モードのPHPがこのスクリプトを1回だけ実行するのはなぜですか?

  27. 27

    レイヤー変換がUIViewのフレームに影響するのはなぜですか?

  28. 28

    Windows 10でシステムトレイのWi-Fiアイコンが白から灰色に点滅し続けるのはなぜですか?

  29. 29

    グリッド行の高さが高すぎるのはなぜですか?

ホットタグ

アーカイブ