$30 off During Our Annual Pro Sale. View Details »

FPGAを用いたフルパイプラインによるバイラテラルフィルタの高速化手法 (RECONF 2021/06)

FPGAを用いたフルパイプラインによるバイラテラルフィルタの高速化手法 (RECONF 2021/06)

電子情報通信学会研究会のリコンフィギャラブルシステム研究会 (RECONF) での発表資料です (2021/06/09)。
バイラテラルフィルタの高速化手法についての研究であり、バイラテラルグリッドを改良することで、ウィンドウ半径に応じた演算回数や回路規模の増大を抑え、フルパイプライン化することでその高速な FPGA 実装を実際に行いました。
・プログラムと抄録: https://www.ieice.org/ken/paper/20210609fCeE/
・論文 (Copyright ©2021 by IEICE): https://projects.n-hassy.info/paper/RECONF2021-8.pdf
・プロフィール: https://n-hassy.info/ja/

Nobuho Hashimoto

June 09, 2021
Tweet

More Decks by Nobuho Hashimoto

Other Decks in Research

Transcript

  1. FPGAΛ༻͍ͨϑϧύΠϓϥΠϯʹΑΔ
    όΠϥςϥϧϑΟϧλͷߴ଎Խख๏
    ౦ژେֶ େֶӃ৘ใཧ޻ֶܥݚڀՊ
    ίϯϐϡʔλՊֶઐ߈
    ڮຊ ৴าɾߴલా ৳໵
    2021/06/09
    ϦίϯϑΟΪϟϥϒϧγεςϜݚڀձ (RECONF)

    View Slide

  2. ຊݚڀͷ֓ཁ
    ❖όΠϥςϥϧάϦουͷվྑख๏ΛఏҊ
    Ø όΠϥςϥϧάϦου͸όΠϥςϥϧϑΟϧλΛߴ଎Խ͢Δख๏
    Ø ΞϧΰϦζϜϨϕϧͰͷߩݙ
    ❖ϑϧύΠϓϥΠϯʹΑΓόΠϥςϥϧάϦουͷখن໛Ͱߴ଎ͳ
    FPGA ࣮૷ΛఏҊ
    Ø ϋʔυ΢ΣΞϨϕϧͰͷߩݙ
    ❖ఏҊख๏ͷ଎౓ɾճ࿏ن໛Λ࣮ػͰධՁ
    2021/6/29 1

    View Slide

  3. όΠϥςϥϧϑΟϧλͷಛ௃
    ❖ΤοδΛอ࣋ͨ͠··ฏ׈Խ͕Ͱ͖Δ
    ❖Ԡ༻ൣғ͕޿͍
    Ø ϊΠζআڈ
    Ø ςΫενϟฤू
    Ø τʔϯ੍ޚ
    Ø σϞβΠΫ
    Ø ΦϓςΟΧϧϑϩʔਪఆ
    2021/6/29 2
    ϑΟϧλલ ϑΟϧλޙ

    View Slide

  4. όΠϥςϥϧϑΟϧλͷఆٛ
    ❖े෼ʹߴ଎ͱ͸ݴ͍೉͍
    2021/6/29 3
    C. Tomasi and R. Manduchi, “Bilateral filtering for gray and color images,” ICCV, 1998
    ۭؒΧʔωϧ ৭Χʔωϧ
    ਖ਼نԽ߲
    ۭؒతʹ΋৭తʹ΋
    ͍ۙըૉʹେ͖ͳॏΈ͕ͭ͘

    View Slide

  5. ܭࢉ্ͷ໰୊఺
    ❖΢Οϯυ΢൒ܘ 𝑟 ʹԠͯ͡ԋࢉճ਺ɾճ࿏ن໛͕૿େ͢Δ
    Ø ܭࢉྔ͸ϐΫηϧ͝ͱʹ 𝑂 𝑟!
    ❖ඇઢܗͳϑΟϧλͳͷͰ࣍ݩ͝ͱʹ෼ׂͰ͖ͳ͍
    ➜ըૉ਺͕ଟ͘ɼ΢Οϯυ΢൒ܘ͕େ͖͘ͳΓ΍͍͢େن໛ߴղ૾
    ౓ը૾ͷϦΞϧλΠϜॲཧΛখن໛ͳճ࿏Ͱߦ͏ͷ͸೉͍͠
    2021/6/29 4
    ߴղ૾౓ ௿ղ૾౓

    View Slide

  6. ຊݚڀͰͷऔΓ૊Έ
    ❖େن໛ߴղ૾౓ը૾Ͱ͋ͬͯ΋ɼখن໛ͳճ࿏Ͱߴ଎ʹಈ࡞͢Δ
    όΠϥςϥϧϑΟϧλͷ࣮ݱ
    Ø ճ࿏ن໛͕΢Οϯυ΢൒ܘʹԠͯ͡૿Ճ͠ͳ͍
    l όΠϥςϥϧάϦουͱ͍͏ख๏ΛԠ༻͢Δ͜ͱʹΑͬͯୡ੒
    Ø ߴεϧʔϓοτɾ௿஗Ԇ
    l II = 1 ͷύΠϓϥΠϯԽɼೖྗͷஞ࣍తॲཧʹΑͬͯୡ੒
    2021/6/29 5
    II (Initiation Interval):
    ͋ΔೖྗΛॲཧ࢝͠Ί͔ͯΒ
    ࣍ͷೖྗΛॲཧ࢝͠ΊΔ·ͰͷΫϩοΫ਺
    ͋Δըૉͷॲཧ
    ࣍ͷըૉͷॲཧ
    ࣌ؒ
    II

    View Slide

  7. όΠϥςϥϧάϦου
    1. ը૾Λۭؒํ޲ͱً౓ํ޲ʹ཭ࢄԽͯ͠άϦουʹ֨ೲ
    2. άϦου্ͰϑΟϧλϦϯά
    3. ิؒ͢Δ͜ͱͰݩͷ࠲ඪͰͷॲཧޙͷ஋Λܭࢉ
    2021/6/29 6
    J Chen, S Paris, and F Durand, “Real-time edge-aware image processing with the bilateral grid,” ACM Trans. Graph., 2007

    View Slide

  8. όΠϥςϥϧάϦουͷվྑ
    ❖άϦου্Ͱͷ΢Οϯυ΢൒ܘͷΈมԽͤ͞Δ͜ͱ͕Մೳ
    Ø ࡾ࣍ݩͳͷͰɼ΢Οϯυ΢൒ܘΛ૿Ճͤͨ͞ͱ͖ͷճ࿏ن໛ͷ૿େ͕େ
    ͖͍
    Ø όΠϥςϥϧϑΟϧλͷग़ྗͱؔ࿈͚ͮΔͷ͕೉͍͠
    ❖ݩͷը૾্Ͱͷ΢Οϯυ΢൒ܘΛมԽ͍ͤͨ͞
    Ø 𝒓 × 𝒓 ͷਖ਼ํܗΛմͱͯ͠ݟΔ
    Ø άϦου্ͷ΢Οϯυ΢൒ܘΛ 1 ʹݻఆ͢Δ
    2021/6/29 7
    طଘख๏ ఏҊख๏
    ݩը૾্ͷ൒ܘ ߟྀ͍ͯ͠ͳ͍ Մม
    άϦου্ͷ൒ܘ Մม 1 ʹݻఆ

    View Slide

  9. ఏҊख๏ͷΞϧΰϦζϜ
    1. άϦουੜ੒: ೖྗը૾ΛάϦου্ʹࣹӨ
    Ø ೖྗըૉ͝ͱʹ࣮ߦ
    2. Ψ΢γΞϯϑΟϧλ: άϦου্ͰͷΨ΢γΞϯϑΟϧλ
    Ø άϦουͷཁૉ͝ͱʹ࣮ߦ
    3. ࡾ࣍ݩઢܗิؒ: ೖྗը૾ͷً౓஋Λݩʹࡾ࣍ݩઢܗิؒ
    Ø ೖྗըૉ͝ͱʹ࣮ߦ
    ➜ஞ࣍తʹߦ͏ͱ஗͍ͷͰɼ͜ΕΒͷϧʔϓΛ݁߹͢Δ
    2021/6/29 8

    View Slide

  10. ఏҊΞΫηϥϨʔλΞʔΩςΫνϟ
    2021/6/29 9
    όΠϥςϥϧ
    άϦουΛ༻͍ͨ
    όΠϥςϥϧ
    ϑΟϧλΛ
    ࣮૷ͨ͠ྫ͸ͳ͍

    View Slide

  11. ϧʔϓͷ݁߹
    ❖2.5 𝑟 ߦ෼ఔ౓ͷ஗ԆͰ 𝑟 ߦͷೖྗʹରͯ͠ 𝑟 ߦͷग़ྗ͕ಘΒΕΔ
    2021/6/29 10
    ಛʹ੨৭ͷ෦෼ʹ஫໨
    ಉ͡৭ͰృΒΕͨ෦෼͕ॱʹ׬੒͢Δ
    ˞֤৭͸ը૾ͷ৭Λද͢ͷͰ͸ͳ͘ɼ
    આ໌ͷͨΊʹ৭෼͚Λߦ͚ͬͨͩͰ͋Δ

    View Slide

  12. ϑϧύΠϓϥΠϯԽ
    ❖৭ಉ࢜ΛύΠϓϥΠϯԽ
    Ø ϚΫϩύΠϓϥΠϯ
    ❖৭͝ͱʹύΠϓϥΠϯԽ
    Ø ϚΠΫϩύΠϓϥΠϯ
    2021/6/29 11

    View Slide

  13. ఏҊख๏ͷ࠷దԽ
    ❖άϦουੜ੒Ͱ͸ಉ͡ཁૉʹࣹӨ͞ΕΔ͜ͱ͕͋ΔͨΊɼRead-
    Modify-Write ॲཧʹͳΔ (֤ਫ৭͸ಉ͡ཁૉʹࣹӨ)
    Ø II = 1 Ͱ͸࣮ݱͰ͖ͳ͍
    ❖y ࣠ํ޲ʹ͸࿈ଓͯ͠ 𝑟 ճͷΞΫηε͕͋Δ (੺৭) ͜ͱΛར༻
    ❖1.5~2ഒఔ౓ͷߴ଎Խ
    2021/6/29 12
    ֤ཁૉ΁ͷ
    ΞΫηεύλʔϯ
    ೖྗը૾

    View Slide

  14. ࣮ݧ
    ❖ఏҊख๏Λ ZCU 104 Ϙʔυʹ࣮૷
    ❖࢖༻ͨ͠πʔϧ౳
    Ø Vivado HLS 2019.2
    l ߴҐ߹੒Λߦ͍ɼVerilog ͷίʔυ౳Λੜ੒
    Ø Vivado 2019.2
    l ϏοτετϦʔϜΛੜ੒
    Ø PYNQ v2.6
    l Ϙʔυͱͷσʔλͷ΍ΓͱΓ౳Λࢧԉ
    2021/6/29 13
    ZCU 104 Ϙʔυ
    (૊ΈࠐΈγεςϜͰ࢖͑Δ
    ఔ౓ͷখن໛ͳ FPGA)

    View Slide

  15. ϊΠζআڈੑೳ
    2021/6/29 14
    ݩͷը૾ ඪ४ภࠩͷΨ΢γΞϯϊΠζΛͷͤͨը૾
    όΠϥςϥϧϑΟϧλͰॲཧޙ όΠϥςϥϧάϦουͰॲཧޙ

    View Slide

  16. ճ࿏ن໛ɾ଎౓ͱ΢Οϯυ΢൒ܘͷൺֱ
    2021/6/29 15
    ΢Οϯυ΢൒ܘΛ
    େ͖ͯ͘͠΋֤ࢦ
    ඪʹେ͖ͳมԽ͸
    ݟΒΕͳ͍
    ΢Οϯυ΢൒ܘͱճ࿏ن໛ɾ଎౓ͷؔ܎

    View Slide

  17. ఏҊख๏ͱGPU࣮૷ɾطଘख๏ͷൺֱ
    ❖ճ࿏ن໛Λ཈͑ͭͭɼ
    େ͖ͳը૾ɾେ͖ͳ
    ΢Οϯυ΢൒ܘͰ࣮ࡍ
    ʹߴ଎ʹॲཧՄೳ
    Ø ଎౓ʹؔͯ͠͸ GPU
    A100 PCIe ΑΓ΋ߴ଎
    2021/6/29 16
    (2) A. Gabiger-Rose, M. Kube, R. Weigel, and R. Rose, “An
    FPGA-based fully synchronized design of a bilateral filter
    for real-time image denoising,” Transactions on Industrial
    Electronics, 2014
    (3) S. D. Dabhade, G. N. Rathna, and K. N. Chaudhury, “A
    reconfigurable and scalable FPGA architecture for bilateral
    filtering,” Transactions on Industrial Electronics, 2018 ఏҊख๏ɼطଘख๏ʹ͓͚Δճ࿏ن໛ɾ଎౓ͷؔ܎

    View Slide

  18. ·ͱΊ
    ❖ೖྗը૾ͷ΢Οϯυ΢൒ܘ͕ՄมʹͳΔΑ͏ʹόΠϥςϥϧά
    ϦουΛ֦ுͨ͠
    ❖ϋʔυ΢ΣΞࢿݯͷ૿ՃΛ཈͑ΒΕΔΑ͏ʹ׬શʹύΠϓϥΠϯ
    Խ͞Εͨ FPGA ࣮૷ΛఏҊͨ͠
    ❖ఏҊख๏Λ࣮ࡍʹ FPGA ্ʹ࣮૷͠ɼܭࢉ଎౓ͱϋʔυ΢ΣΞࢿ
    ݯͷ؍఺͔Βଞͷطଘख๏Λ্ճΔੑೳΛୡ੒ͨ͠
    ❖FPGA ܥͷτοϓձٞ FPL Ͱ΋ൃද༧ఆ (2021/08/30-09/03)
    2021/6/29 17

    View Slide