월 59,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
CNN 연산 모듈 질문입니다.
안녕하세요 맛비님.맛비님께서 3차원 Convolution 연산 모듈을 설계하기 위해서 3개의 계층을 가진 모듈로 설계하셨던 것에 궁금한 게 생겨서 질문드립니다.1차원 연산을 위한 최하위 계층, 그 위의 2차원 연산을 위한 하위 계층, 그 위의 3차원 연산을 위한 Top 계층, 이렇게 세 개의 계층을 나누셨는데,1.한 모듈에서 Register를 많이 추가하여 이 기능을 전부 할 순 없나요? (FSM으로) 즉 하나의 계층을 가진 모듈로 3차원 연산 모듈을 구현할 수는 없는 건가요?2. 이와 같이 할 경우 단점이란 것이 존재할까요?
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
CNN 알고리즘 + FPGA 연동 방법
맛비님 안녕하세요! 항상 좋은 강의 감사합니다. 다름이 아니라, 질문 사항이 있어 글 남기게 되었습니다.CNN 가속기를 설계한 후 YOLO나 Lesnet과 같은 알고리즘과 접목하여 CNN 객체 인식을 동작하고 싶은 상황입니다. 하단의 프로세스로 진행하는 것을 생각하고 있는데 각 단계별 가능여부가 궁금합니다. 1) XIlinx 상에서 CNN 알고리즘 library를 import한다-> (vitis AI 라이브러리가 있으나, 이를 지원하는 보드가 한정적이라, 해당 라이브러리가 아닌 다른 라이브러리 혹은 tool이 있는지 궁금합니다)2) 알고리즘에서 CNN 연산 가속기 부분만 따로 가져와 연산을 돌린 후 Vitis 상에서 입력 받는다-> 이러한 구상이 적용 가능한지 궁금합니다. 편하실 때 답변 부탁드리겠습니다. 감사합니다.
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
질문사항
맛비님 안녕하세요 ! 궁금사항이 생겨 글 남기게 되었습니다. NVIDIA의 GPU 같은 경우 '쿠다'라는 소프트웨어 플랫폼을 제가 이용해봤습니다. 수업시간에 설명해주신 inference를 위한 NPU 소프트웨어 플랫폼도 학생이 무료로 이용할 수 있는게 있을까요 ?MNIST 모델에 대해 설명해주실때 0~9까지 표현하기 위해 one-hot label을 10bit를 사용하셨는데, 4 bit를 사용해도 0~9가지 다 표현 가능하지 않나요 ?
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
Hybrid Processor가 Co processor 보다 좋은 이유
안녕하세요 맛비님. 좋은 강의 해주셔서 감사합니다. 다름이 아니라, AMD와 Xilinx가 2020년에 인수합병으로 CPU 안에 FPGA 요소를 포함시킨 새로운 Architecture인 Co-processor를 특허로 낸 반면에, 삼성의 엑시노스는 ARM의 CPU IP, AMD와 협업한 GPU, 자체 NPU등 각각의 IP를 한 Chip에 배치시킨 Co processor 가 아닌 Hybrid processor라고 볼 수 있을 것 같습니다. 여기서 의문은 왜 Co processor가 Hybrid processor 보다 좋은지 잘 모르겠습니다. 이에 대한 생각이 어떠신지 궁금합니다! 감사합니다.
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
안녕하십니까 cnn_acc_ci.v 파일에서 궁금한 점이 있습니다.
안녕하십니까 cnn_acc_ci.v 파일에서 약 90번 째 줄에 ot_ci_acc에 각 kernel의 값을 더해주고 w_ot_ci_acc에 wire로 연결하고 r_ot_ci_acc로 전달합니다. 여기서 w_ot_ci_acc를 통해서 r_ot_ci_acc로 전달하는 이유가 궁금합니다. =================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
CNN Core 모듈 질문
안녕하세요 맛비님 항상 좋은 강의 잘 듣고 있습니다.질문 두 가지만 드리겠습니다!CNN 연산 모듈의 latency가 4 cycle인데, throughput은 몇인가요? 수업에서 했던 시뮬레이션은 입력 데이터를 여러 번 넣는 과정이 아닌 한 번만 넣고 하나의 결과가 나온 시뮬레이션이지만, 사실 이 모듈은 파이프라인 구조로 되어있는 모듈이기 때문에, 입력데이터를 여러 번 넣는 과정을 진행한다면 throughtput은 1이라고 봐도 무방한가요?기존 CNN 연산 모듈 말고, Winograd convolution 연산을 구현한 모듈로 얼마만큼의 resources(LUT, slices)들이 줄었는지 발전시켜보혀고 하는데 맛비님 생각이 궁금합니다! =================강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
용어 정리
안녕하세요 맛비님.이번 강의를 들으면서 수업 관련 개념을 명확하게 하고자 용어 정리를 하고자 합니다!지금까지 해온 것들을 보면,CNN 연산 모듈을 설계했냐? -> 그렇다. input feature map을 input으로 넣어 output feature map을 도출했냐? -> 아니다. kernel의 size만큼 input feature map에서 window 해서 kernel size의 channel input만큼 해당하는 부분을 Convolution 연산하였다. 최종적으로는 output feature map 1포인트의 channel output만큼 해당하는 값을 구했다. 라고 할 수 있을까요? 처음 듣는 사람이 window라는 말을 잘 이해하지 못한다면 어떻게 쉽게 말할 수 있을까요?
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
코드 질문입니다 [AI HW Lab2]
안녕하세요 맛비님.별 다른 질문은 아니고, 예전부터 궁금했던 것인데위 사진에서 40번째줄에 r_valid <= {LATENCY{1'b0}};부분을 왜 저렇게 표현했는지 궁금합니다.r_valid <= 0; 이렇게 해도 LATENCY가 달라짐에 따라 0의 값이 고정이지 않나요??위에서 localparam LATENCY = 2 라고 해서 40번째 줄은 r_valid <= {2{1'b0}}; 와 같습니다. ( 2{1'b0} = 2*1'b0 = 2'b0 인건가요? )
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
Lab2 Practice 3 강의 중 genvar 코드 질문입니다.
안녕하세요, Lab2 Practice 3 강의에서 cnn_kernel.v 코드에 3가지 질문이 있습니다. (4분 47초 경) 43번 라인에서 사용된 mul_idx 변수는 genvar 키워드로 선언했는데, 63번 라인에서 사용된 acc_idx 변수는 왜 integer 키워드로 선언된건가요?동일한 generate 구문에서 사용되는데 이유가 궁금합니다. 두번째 궁금증인데요,코드에서 2번째 generate 구문은 왜 generate를 사용한 건가요?반드시 generate 가 있어야 simulation뿐만이 아닌 synthesis에서도 for 문을 사용할 수 있기 때문인가요? 3번째는 위 코드 65~70 라인에서 always @ (*) 구문을 사용하는데, 조합회로(맞나요?)인데도 blocking(=)으로 코드를 기술하면 순차적으로 수행되는것으로 이해하면 되는건가요? 좀 더 구체적으로 말씀드리면 for문에서 반복되는 blocking 대입을 unloop 했을 때 코드들의 순서가 보장이 되는지? 감사합니다.
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
On-chip vs Off-chip
안녕하세요 맛비님.On-chip memory와 Off-chip memory에 대해서 질문드립니다. Off-Chip memory와 가속기 사이에 On-chip memory가 있는 이유? on-chip memory에 accumulator만 존재하면 되지 않을까요? (dram에서 read되는 data -> On chip의 accumulator -> 가속기). 이런 순서로 데이터가 이동하면 sram read delay가 없어도 되지 않을까요? (On-chip memory가 sram이라는 가정하)병목 현상으로 이 중 가장 느린 device인 DRAM의 속도에 맞춰질 텐데, DRAM에서 주는 data를 accumulator만 거쳐서 바로 가속기에 넣을 수는 없을까요?제가 알기로는, 병목 현상을 방지하기 위해서 빠른 device는 빠른 device 들끼리 묶어서 속도가 빠른 BUS를 사용하고, 느린 device는 느린 device들끼리 묶어서 속도가 느린 BUS를 사용한다고 알고 있는데, 만약 이 말이 맞다면, 빠른 device들과 느린 device들의 연결은 어떻게 해주는지 궁금합니다.Off-chip memory는 chip 외부에 있기 때문에 메모리 내 데이터를 read write 할 때 power 소모가 on-chip 대비 크다라고 말씀하셨는데, 왜인지 잘 모르겠습니다. Chip 내에서만 power 소모가 일어나는 건가요? power 소모의 주체는 누구인지 궁금합니다.감사합니다.
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
강의 내용에 대한 질문입니다. (Lab2 Practice 1)
안녕하세요, 강의 잘 듣고 있습니다.질문이 있는데요, Lab2 Practice 1의 3분 13초 에서 빨간색 네모 박스가 앞선 연산과 동일하다고 말씀하셨어요.앞선 연산은 필터의 크기 (KX, KY)와 동일한 크기를 가지는 CI개 채널 입력에 대한 CO개 만큼의 출력을 생성하는 연산으로 이해됩니다. 그러면 빨간 네모 박스 연산이 위 연산과 동일하려면 첫 번째 라인의 for문이 지금처럼 (y, E: 출력 픽셀 y축 위치) 에 대한 for문이 아니라출력 채널의 수 (m, M: 출력 채널 수) 가 되어야 하는 것 아닌지요? (C코드에서의 m 이 연산 그림에서의 CO로 이해됩니다.) 감사합니다.
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
FPGA uart 에러
안녕하세요. 항상 좋은 강의 잘 수강하고 있습니다. CNN을 fpga에 올리는 강의를 따라서 진행하고 있는데 아래와 같이 uart 통신 결과가 출력됩니다.그래서 레퍼런스 문서들을 읽어보면서 이리저리 해보다 아래 사진의 파란색 부분을 qspi와 jtag를 연결하도록 하고나니 정상적으로 작동했습니다.그 후에 몇가지 실험을 해보니 fpga 프로그래밍을 하기 위해서는 sd와 qspi가 연결되어 있어야했고 실제 동작할 때는 qspi와 jtag 연결한 상태이어야만 했습니다. sd, sqpi, jtag에 대한 문서를 읽어봐도 제대로 이해가 가지 않아서 혹시 sd, qspi, jtag에 어떻게 연결하는지가 무엇을 의미하는지 알 수 있을까요?? 감사합니다.zybo z720을 사용하고 있고 강의 영상과 다른 점 없이 잘 진행되었는데 무엇이 문제인지 몰라 질문 드립니다. 감사합니다.
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
26분 25초 weights 질문입니다.
안녕하세요 맛비님.26:25초에 weight의 개수에 대해서 질문드립니다.layer1에서 weight가 6개 (2*3) 쓰였고,layer2에서 weight가 6개 (3*2) 쓰였고,layer3에서 weight가 4개 (2:2) 쓰였으면,총 weight의 개수는 6+6+4 = 16개 아닌가요?어떻게 2*3*2*2 = 24개인지 질문드립니다. 감사합니다.
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
수업자료 관련 질문입니다
안녕하세요 맛비님제가 이쪽 (NPU) 관련 자료들을구글에서 참고해 독학을 하였습니다.맛비님 강의를 들어보니, 제가 그동안 찾았던 자료 중 틀린 부분이 몇 가지 보였습니다.그리고 놀라웠던 점이, 교육 자료 중 이미지, 개념 정리가 너무 완벽하게 되신 것이 놀랍습니다. (흐름...)아직 대학교 4학년 (많이 늦었지만..) 저도 나중에 어떤 것을 찾고 이해한 내용을 바탕으로 발표를 해야할텐데, 맛비님 강의의 교육자료의 출처가 어디인지 궁금합니다. (추천하시는 책 or 사이트가 있는지도 궁금합니다.) 그리고, 영어로 된 사이트가 더 신뢰하기 편한가요?저는 영어로 된 사이트보다 한국말로 된 사이트가 좋아서 참고했었는데, 생각보다 한국말로 된 블로그에서 틀린 점이 많았습니다.
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
Vivado 설치 질문입니다.
강의 감사합니다. 원래 윈도우 환경에서 비바도 사용하다가, 선생님께서 설치 영상에서도 그렇고, 이번 영상에서도 그렇고 리눅스 환경을 추천하셔서 리눅스에서 설치를 시도했습니다.그러나 너무 많은 에러와 익숙치 않은 환경으로 인해 너무 많은 시간을 썼네요..ㅠ 혹시 윈도우 환경에서도 AI 하드웨어 설계가 가능한가요? 강의를 다 듣고 학교 프로젝트에서도 본격적으로 Vitis- AI 사용하면서 하드웨어 설계를 진행하려고 하는데, 가능하다면 윈도우 환경에서 하고 싶습니다. 감사합니다
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
CNN bit 수 할당에 대해서 질문 있습니다.
안녕하세요 늘 좋은 강의 잘 듣고 있습니다. 이번 영상에서 input과 output의 bit 수를input feature map : 8bitweight : 8bitbias : 8bit input fmap * weight : 16bit 기타등등 CNN 연산을 수행하면서 input fmap bit width는 8bit에서 output fmap의 bit width가 23bit으로 증가하는데 그러면 CNN 구조를 serial하게 연결시키게 되면 계속해서 overflow가 발생하지 않도록 bit width를 증가시키면 bit width가 마지막 CNN 구조를 통과하고 나서 기하급수적으로 늘어난다고 생각하는데이러한 경우에 중간에 어떠한 조치를 취해야하는지 궁금합니다. 감사합니다
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
안녕하세요, 챕터6,7에 대한 질문입니다.
안녕하세요, 좋은 강의 감사합니다. 1. MAC을 늘렸을 때 더 빠르게 연산이 된다고 하시면서 M(CO)에 동그라미 치셨는데 MAC과 M의 관계에 대해 직관적으로 연관짓기가 어려워서 어떤 관계인지에 대해 질문드립니다. 그리고 MAC은 연산량이라고 이해했는데, 연산량이 늘면 성능이 더 안좋아지는 것이 아닌가요?! 질문드립니다!weight 개수를 CO+edge개수 라고 생각하면 될까요?HW 설계에서 나눗셈이 resource가 왜 많이 드는지 궁금합니다. 단순하게 생각해보면 소수점 처리 때문일까 싶은데, 어떤 컨셉인지 궁금해서 질문드립니다.알렉스넷처럼 batch가 2 이상인 모델은 병렬 연산을 요함으로 batch 1인 모델보다 많은 자원을 사용한다는 것이고, 이는 성능과 비용의 trade off 라고 이해하면 될까요?
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
챕터5 CNN basic 질문입니다
안녕하세요 좋은 강의 감사합니다.1. 강의내용 중 stride를 설명하실 때 output 피쳐맵의 크기가 X/stride, Y/stride로 일반화가 가능하기 때문에 stride가 1이면 input output featuremap 크기가 동일하다고 설명 해주셨는데, 만약 stride가 1일 때, padding이 없다면 X-2, Y-2만큼의 output feature map이 생기지 않나요? padding이 없다면 컨볼루션 할 때 미정의 값으로 연산을 해야할 것 같아서요..! 2.아래의 그림에서 output 채널의 크기는 예시에서 임의로 주어진 것인지 궁금합니다! output 채널의 크기인 24개 만큼의 depth가 weight에 있다고 가정한 예시일까요?
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
6장 강의 1부 1분 50초 설명에 관련된 질문
안녕하세요! 강의를 듣다 궁금한 것이 생겨서 질문 남깁니다!제목에서 언급한 부분의 내용은 MNIST CNN review 부분인데 처음 input feature 의 channel이 1이고 output feature channel이 24, kernel 이 3*3인데, 제가 공부하면서 output feature의 channel은 kernel과는 관련이 없다고 생각했는데 강의를 들으면서 kernel이 3*3이기 때문에 output feature의 channel이 24이다 라는 의미로 말하시는 것 같아서 질문 드려요!output feature의 channel은 kernel의 size와 관계가 있는 건가요? 있다면 어떻게 있는지 궁금합니다!
- 미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
NPU 설계에서, low-level 설계가 무엇인가요?
제가 아직 완강을 하지 않아서 드리는 질문이면 죄송합니다..^^Deep learning 설명 중에, 이미지를 예시로 들면서 low-level feature라는 단어를 언급하셨는데요,실제 NPU설계 시 Low-level 설계라 하면, 이를 위 설명과 연관지어서 이해할 수 있을까요?GPU에 비견했을 때, 연산하는 정보가 이미지가 아닌, 다른 목적(음성, 텍스트 등)일 때 해당하는 정보를 처리하는 Processing unit이라고 이해했습니다. (틀리다면 정정 부탁드립니다..^^)이런 부분에 대해서, 혹시 low-level설계에 관해 아시는 바를 좀더 구체적으로 설명주실 수 있을까요? - 강의 내용외의 개인 질문은 받지 않아요 (개별 과제, 고민 상담 등..)- 저 포함, 다른 수강생 분들이 함께보는 공간입니다. 보기좋게 남겨주시면 좋은 QnA 문화가 될 것 같아요. (글쓰기는 현업에서 중요한 능력입니다!)- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.