Puzzle 7: 2D ๋ธ”๋ก

๊ฐœ์š”

ํ–‰๋ ฌ a์˜ ๊ฐ ์œ„์น˜์— 10์„ ๋”ํ•ด output์— ์ €์žฅํ•˜๋Š” ์ปค๋„์„ ๊ตฌํ˜„ํ•ด ๋ณด์„ธ์š”.

์ฐธ๊ณ : ๋ธ”๋ก๋‹น ์Šค๋ ˆ๋“œ ์ˆ˜๊ฐ€ a์˜ ํ–‰๊ณผ ์—ด ํฌ๊ธฐ๋ณด๋‹ค ๋ชจ๋‘ ์ž‘์Šต๋‹ˆ๋‹ค.

2D Blocks ์‹œ๊ฐํ™” 2D Blocks ์‹œ๊ฐํ™”

ํ•ต์‹ฌ ๊ฐœ๋…

  • ๋ธ”๋ก ๊ธฐ๋ฐ˜ ์ฒ˜๋ฆฌ
  • ๊ทธ๋ฆฌ๋“œ์™€ ๋ธ”๋ก์˜ ์กฐ์œจ
  • ์—ฌ๋Ÿฌ ๋ธ”๋ก์— ๊ฑธ์นœ ์ธ๋ฑ์‹ฑ
  • ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ํŒจํ„ด

๐Ÿ”‘ 2D ์Šค๋ ˆ๋“œ ์ธ๋ฑ์‹ฑ ๋ฐฉ์‹

Puzzle 4: 2D Map์˜ ๋ธ”๋ก ๊ธฐ๋ฐ˜ ์ธ๋ฑ์‹ฑ์„ 2D๋กœ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค:

์ „์—ญ ์œ„์น˜ ๊ณ„์‚ฐ:
row = block_dim.y * block_idx.y + thread_idx.y
col = block_dim.x * block_idx.x + thread_idx.x

์˜ˆ๋ฅผ ๋“ค์–ด, 4ร—4 ๊ทธ๋ฆฌ๋“œ์—์„œ 2ร—2 ๋ธ”๋ก์„ ์‚ฌ์šฉํ•˜๋ฉด:

Block (0,0):   Block (1,0):
[0,0  0,1]     [0,2  0,3]
[1,0  1,1]     [1,2  1,3]

Block (0,1):   Block (1,1):
[2,0  2,1]     [2,2  2,3]
[3,0  3,1]     [3,2  3,3]

๊ฐ ์œ„์น˜๋Š” ํ•ด๋‹น ์Šค๋ ˆ๋“œ์˜ ์ „์—ญ ์ธ๋ฑ์Šค (row, col)๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋ธ”๋ก ์ฐจ์›๊ณผ ์ธ๋ฑ์Šค๊ฐ€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜์—ฌ ๋‹ค์Œ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค:

  • 2D ๊ณต๊ฐ„ ์ „์ฒด๋ฅผ ๋นˆํ‹ˆ์—†์ด ์ฒ˜๋ฆฌ
  • ๋ธ”๋ก ๊ฐ„ ๊ฒน์นจ ์—†์Œ
  • ํšจ์œจ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ํŒจํ„ด

๊ตฌํ˜„ ๋ฐฉ์‹

๐Ÿ”ฐ ์›์‹œ ๋ฉ”๋ชจ๋ฆฌ ๋ฐฉ์‹

์ˆ˜๋™ ์ธ๋ฑ์‹ฑ์œผ๋กœ ์—ฌ๋Ÿฌ ๋ธ”๋ก์— ๊ฑธ์นœ ์—ฐ์‚ฐ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

๐Ÿ“ LayoutTensor ๋ฒ„์ „

LayoutTensor ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•ด ๋ธ”๋ก ๊ธฐ๋ฐ˜ ์ฒ˜๋ฆฌ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก ์ฐธ๊ณ : LayoutTensor๊ฐ€ ๋ธ”๋ก ๊ฐ„ ์กฐ์œจ๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ํŒจํ„ด์„ ์–ผ๋งˆ๋‚˜ ๋‹จ์ˆœํ™”ํ•˜๋Š”์ง€ ํ™•์ธํ•ด ๋ณด์„ธ์š”.