Skip to content

sjlee25/legion-readme

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

6 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Efficient Fused-layer Cost Estimation

"Legion: Tailoring Grouped Neural Execution Considering Heterogeneity on Multiple Edge Devices (ICCD'21)" ๋…ผ๋ฌธ์˜ ๊ธฐ๋ฐ˜ ์—ฐ๊ตฌ ๋‚ด์šฉ์„ ์š”์•ฝํ•œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค.

(Choi, K., Lee, S., Kang, B. W., & Park, Y. (2021, October). Legion: Tailoring Grouped Neural Execution Considering Heterogeneity on Multiple Edge Devices. In 2021 IEEE 39th International Conference on Computer Design (ICCD) (pp. 383-390). IEEE.)


๋ชฉ์ฐจ

  1. ์—ฐ๊ตฌ ๊ฐœ์š”
  2. ์ฝ”๋ฉ˜ํŠธ

์—ฐ๊ตฌ ๊ฐœ์š”

๋ฐฐ๊ฒฝ

  • ์„œ๋ฒ„ ๋Œ€๋น„ ๋น„๊ต์  ์„ฑ๋Šฅ์ด ๋‚ฎ์€ ์—ฃ์ง€ ๋””๋ฐ”์ด์Šค์—์„œ ๋ชจ๋ธ ์ถ”๋ก  ์‹œ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ณ‘๋ ฌํ™” ๊ธฐ๋ฒ• ์ค‘ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ํŠน์ • ์ฐจ์›์— ๋”ฐ๋ผ ๋ถ„ํ• ํ•˜์—ฌ ๊ฐ ๊ธฐ๊ธฐ๊ฐ€ ๊ฐ ๋ ˆ์ด์–ด์˜ ์ „์ฒด ์—ฐ์‚ฐ ์ค‘ ์ผ๋ถ€๋งŒ์„ ๋งก๋„๋ก ํ•˜๋Š” ๋ชจ๋ธ ๋ณ‘๋ ฌํ™” ๋ฐฉ์‹์„ ํ™œ์šฉํ•˜๋ฉด ๊ฐœ๋ณ„ ๊ธฐ๊ธฐ์—์„œ์˜ ์—ฐ์‚ฐ ๋ถ€๋‹ด์„ ์ค„์ด๊ณ  ์ถ”๋ก  ์ง€์—ฐ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋ธ ๋ณ‘๋ ฌํ™” ๋ฐฉ์‹์—์„œ ๊ฐ ๊ธฐ๊ธฐ์—์„œ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ทจํ•ฉํ•˜๊ณ  ๋‹ค์‹œ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„ํ• ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ ํ†ต์‹  ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ ์ง€ ์•Š์œผ๋ฏ€๋กœ, ๋ ˆ์ด์–ด๋ฅผ ๋ณ‘ํ•ฉํ•˜์—ฌ ํ•ด๋‹น ๊ทธ๋ฃน ๋‚ด์—์„œ๋Š” ํ†ต์‹ ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋ฉด ์‹œ์Šคํ…œ ์ „๋ฐ˜์˜ ํšจ์œจ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ ˆ์ด์–ด ๋ณ‘ํ•ฉ ์กฐํ•ฉ(Fused-layer Configuration, FLC) ๋ฐ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ๋ถ„ํ•  ๋น„์œจ์— ๋Œ€ํ•œ ํƒ์ƒ‰ ๊ณต๊ฐ„์ด ๋„“์–ด ์ด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ์•ˆ

์ œ์•ˆ ๊ตฌ์กฐ

  • ๋ณธ ์—ฐ๊ตฌ์—์„œ ์ œ์•ˆํ•˜๋Š” Legion ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๊ตฌ์„ฑ ์š”์†Œ ๋ฐ ํ๋ฆ„์„ ๋‚˜ํƒ€๋‚ธ ๊ทธ๋ฆผ์ž…๋‹ˆ๋‹ค.

  • Preprocessor๋Š” ๋Œ€์ƒ ๋ชจ๋ธ ๋‚ด ๋ชจ๋ธ์˜ ํŠน์ง•์„ ์ •๋ฆฌํ•˜๊ณ , ํ™œ์šฉํ•  ์—ฃ์ง€ ๋””๋ฐ”์ด์Šค์™€์˜ RPC ์—ฐ๊ฒฐ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • Cost Predictor๋Š” ๊ฐ ๊ธฐ๊ธฐ์—์„œ์˜ ๋ณ‘ํ•ฉ ์ด์ „ ๋‹จ์ผ ๋ ˆ์ด์–ด์˜ ์ˆ˜ํ–‰ ๋น„์šฉ์„ ํ”„๋กœํŒŒ์ผ๋ง ํ•ด ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ํ‘œ์— ๊ฐ๊ฐ ๊ธฐ๋กํ•˜๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋“  ๋ณ‘ํ•ฉ ๋ ˆ์ด์–ด์˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๊ฐ ๊ธฐ๊ธฐ๋Š” ์„ฑ๋Šฅ์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์„œ๋กœ ๋‹ค๋ฅธ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๋ฅผ ํ• ๋‹น ๋ฐ›๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

    • Set (S) / Get Matrix (R): ๊ฐ๊ฐ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ๋ฐ ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ๊ฐ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
    • Run Matrix (E): ํŠน์ • ๋ ˆ์ด์–ด ์—ฐ์‚ฐ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
    • Alpha Matrix (A): ๋ ˆ์ด์–ด ๋ณ‘ํ•ฉ์œผ๋กœ ์ธํ•ด ์ฆ๊ฐ€ํ•˜๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ *์•ŒํŒŒ(alpha)*๋ผ๋Š” ๋น„์œจ ๊ฐ’์œผ๋กœ์„œ ํ‘œ๊ธฐํ•˜์—ฌ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • FLC Optimizer๋Š” ์˜ˆ์ธก๋œ ๋ณ‘ํ•ฉ ๋ ˆ์ด์–ด ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ตœ์ ์˜ ๋ ˆ์ด์–ด ๋ณ‘ํ•ฉ ์กฐํ•ฉ์„ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

    • ์ƒํ™ฉ์— ๋”ฐ๋ผ ์•ฝ๊ฐ„์˜ ์˜ˆ์ธก ์˜ค์ฐจ๋กœ ์ตœ์ ์˜ ์กฐํ•ฉ์„ ๋†“์น  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๊ฐ€์žฅ ํšจ์œจ์ ์ผ ๊ฒƒ์œผ๋กœ ๋ณด์ด๋Š” ๋ ˆ์ด์–ด ๊ทธ๋ฃน ๊ฐ„ ๋ณ‘ํ•ฉ์„ 1ํšŒ ๋” ์ง„ํ–‰ํ•˜๋Š” Wild Card ๋กœ์ง์„ ์ ์šฉํ•œ FLC์™€ ์ด์ „์— ์ฐพ์•„๋‘” FLC๋ฅผ ๋น„๊ตํ•ด ์ตœ์ ์˜ FLC๋ฅผ ์ตœ์ข…์ ์œผ๋กœ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

๋น„์šฉ ์˜ˆ์ธก ์˜ˆ์‹œ

  • ํŠน์ • ๋ณ‘ํ•ฉ ๋ ˆ์ด์–ด์˜ ์˜ˆ์ธก ๋น„์šฉ์€ ๋‹ค์Œ ์„ธ ๊ฐ’์˜ ํ•ฉ์œผ๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค.
    • ์ฆ๊ฐ€ํ•œ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ๋น„์œจ๋งŒํผ ๊ธฐ์กด ์ „์†ก ๋น„์šฉ์— ์•ŒํŒŒ ๊ฐ’์„ ๊ณฑํ•ฉ๋‹ˆ๋‹ค.
    • ๋ณ‘ํ•ฉ ๋ ˆ์ด์–ด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ ๋‹จ์ผ ๋ ˆ์ด์–ด์˜ ๊ธฐ์กด ์ˆ˜ํ–‰ ๋น„์šฉ์— ๋Œ€์‘๋˜๋Š” ์•ŒํŒŒ ๊ฐ’์„ ๊ฐ๊ฐ ๊ณฑํ•ด ๋”ํ•ฉ๋‹ˆ๋‹ค.
    • ์ทจํ•ฉ ํ›„ ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๋Š” ๋ณ€ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ธฐ์กด ์ „์†ก ๋น„์šฉ์„ ๊ทธ๋Œ€๋กœ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ

์ตœ์  ๋ณ‘ํ•ฉ ์กฐํ•ฉ์˜ ์ถ”๋ก  ์†๋„ ๋น„๊ต

์‹คํ—˜ ๊ฒฐ๊ณผ

  • Firefly-RK3399(F)๋งŒ์„ ์ตœ๋Œ€ 6๋Œ€๊นŒ์ง€ ํ™œ์šฉํ•  ๋•Œ(1ํ–‰), Odroid-XU4(O)๋งŒ์„ ์ตœ๋Œ€ 3๋Œ€๊นŒ์ง€ ํ™œ์šฉํ•  ๋•Œ (2ํ–‰), ๊ทธ๋ฆฌ๊ณ  ๋‘ ์ข…๋ฅ˜์˜ ๊ธฐ๊ธฐ๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ์ตœ๋Œ€ 6๋Œ€(nF + mO: Firefly n๋Œ€์™€ Odroid m๋Œ€ ํ˜ผ์šฉ)๊นŒ์ง€ ํ™œ์šฉํ•  ๋•Œ(3ํ–‰), ์ „์ฒด ํƒ์ƒ‰ ๋ฐฉ์‹(Full Searching Scheme, FSS) ๋Œ€๋น„ Legion์ด ์ฐพ์€ ์ตœ์ ์˜ ํƒ์ƒ‰ ์กฐํ•ฉ์˜ ๋ณ‘๋ ฌํ™” ์„ฑ๋Šฅ์„ ๋น„๊ตํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ๋” ์ ์€ ํ”„๋กœํŒŒ์ผ๋ง ๋น„์šฉ์ด ์š”๊ตฌ๋˜๋Š” Legion์˜ ํƒ์ƒ‰ ๊ธฐ๋ฒ•์„ ํ™œ์šฉํ•  ๋•Œ, ๋Œ€๋ถ€๋ถ„์˜ ์ƒํ™ฉ์—์„œ ์ „์ฒด ํƒ์ƒ‰ ๋ฐฉ์‹๊ณผ ๋น„์Šทํ•œ ๋ณ‘๋ ฌํ™” ์ˆ˜์ค€์„ ๋ณด์ธ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹คํ—˜ ๊ฒฐ๊ณผ

  • ์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๋‘ ์ข…๋ฅ˜์˜ ๊ธฐ๊ธฐ๋ฅผ ํ™œ์šฉํ•ด ์ „์ฒด ํƒ์ƒ‰ ๋ฐฉ์‹ ๋Œ€๋น„ Legion์˜ ํƒ์ƒ‰ ๊ธฐ๋ฒ• ํ™œ์šฉ ์‹œ ํ”„๋กœํŒŒ์ผ๋ง์„ ์œ„ํ•œ ์ด ์†Œ์š” ์‹œ๊ฐ„์„ ๋น„๊ตํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ๋ชจ๋ธ ๋ฐ ๊ธฐ๊ธฐ ๊ตฌ์„ฑ ๋ณ„๋กœ ํ‰๊ท  28~66๋ฐฐ ๊ฐ€๋Ÿ‰ ๋” ๋น ๋ฅธ ํƒ์ƒ‰์ด ๊ฐ€๋Šฅํ•จ์„ ํ™•์ธํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ

  • Server
    • Intel i7-8700K / DDR4 16GB
    • Ubuntu 20.04 LTS, Python 3.8
    • TVM 0.8.0dev0, LLVM 8.0.0

  • Edge (with 100 Mbps ethernet connection)
    • Firefly-RK3399
      • Cotex-A72 (1.8 GHz Dual Core) + Cortex-A53 (1.1 GHz Quad Core)
      • Ubuntu 16.04 LTS, Python 3.6
      • TVM 0.8.0dev0, LLVM 8.0.0
    • Odroid-XU4
      • Cortex-A15 (2.0 GHz Quad Core) + Cortex-A7 (1.4 GHz Quad Core)
      • Ubuntu 16.04 LTS, Python 3.6
      • TVM 0.8.0dev0, LLVM 8.0.0
    • 100 Mbps Ethernet Connection

์ฝ”๋ฉ˜ํŠธ

์—ฐ๊ตฌ ๋™๊ธฐ


๊ฐœ์„  ์˜๊ฒฌ

  • ์„ฑ๋Šฅ ๋น„๊ต ์‹คํ—˜ ์‹œ ๊ธฐ์กด ์—ฐ๊ตฌ์—์„œ ์ œ์•ˆํ•œ ๊ฐ ๊ธฐ๊ธฐ์—์„œ์˜ ์†Œ์š” ์‹œ๊ฐ„ ์˜ˆ์ธก ๋ชจ๋ธ์„ ๋น„์Šทํ•˜๊ฒŒ๋‚˜๋งˆ ๊ตฌ์ถ•ํ•˜์—ฌ ์ด๋ฅผ ํ•จ๊ป˜ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค๋ฉด ๋” ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์—ˆ์„ ๊ฒƒ์œผ๋กœ ์ƒ๊ฐํ•˜๊ณ , ๊ด€๋ จํ•ด ํ•ด๋‹น ์‚ฌํ•ญ์„ ๊ฐœ์„  ์‹œ๋„ํ•ด ๋ณผ ์˜์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ž”์ฐจ ์—ฐ๊ฒฐ(skip connection) ๋“ฑ์ด ๋” ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉ๋œ ๋ชจ๋ธ ๋“ฑ์— ๋Œ€ํ•ด์„œ ๋ณ‘๋ ฌํ™” ์„ฑ๋Šฅ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋„๋ก ์Šค์ผ€์ค„๋ง ๋กœ์ง์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ๋” ์ข‹์€ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • ๋” ํฐ ๊ทœ๋ชจ์˜ ๋ชจ๋ธ์„ ๋” ์ข‹์€ ์„ฑ๋Šฅ์˜ ๊ธฐ๊ธฐ์— ๋Œ€ํ•ด ์ ์šฉํ•ด ๋ณด๊ณ , ํ•ด๋‹น ๊ฒฐ๊ณผ๋ฅผ ์ œ์‹œํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

About

Description of Framework for Efficient Fused-layer Cost Estimation, Legion (2021)

Topics

Resources

Stars

Watchers

Forks

Contributors