다운로드 링크가 정상적으로 보이지 않는 경우 애드블록을 해제해 주세요.
본문 바로가기
  • 혜음우리말화연구소
728x90

잡담/대학원13

요즘 하고 있는것 INT8 양자화 최근에 VGG16을 INT8 양자화 해서, 정상적으로 추론되는 것을 확인하였다. 다만 예상 정확도보다 꽤 4%정도 떨어지는데, 이는 텐서플로우로 검증했을때는 round 연산 (round 자체가 반올림이지만 편의상 이렇게 칭한다)을 반올림으로 했지만, 하드웨어에서는 형변환으로 처리해줬기에 버림 연산이 되었기 때문이다. 이는 형변환 전에 0.5를 더해줌으로서 해결할수 있는 문제이긴 하다. 또한 RESNET50도 INT8 양자화를 했는데 레이어의 출력이 전부 죽어버리는(0으로 수렴하는) 문제가 있다. 이를 어떻게 해결해야 할지가 관건이다. FPGA 너무 힘들다. 그냥 글카 쓰면 안되나? 2022. 4. 17.
요즘 대학원에서 하고 있는것 대학원에서 요즘 CNN 프레임워크?를 개발하고 있다. 현재 개발된 것은 FPGA에서 돌아가는 컨볼루션 커널 이 커널을 돌리기 위해 프레임 워크와 가중치를 뽑아내는 파서 같은것을 전부 작성하고 있었다. 가중치 파서는 파이선을 이용해 텐서플로우 모델에서 레이어 정보랑, 가중치, quantization scale factor를 추출한다. CNN 프레임 워크는 C로 짜여져 있다. quantization scale factor를 위해 KL 분산을 이해하는 것도 어려웠고, INT8 양자화를 이해하는것도 쉽지 않았다. 여튼 돈다. 아직 전처리문을 제대로 하지 않아 Top-5 정확도가 81%정도 나오지만 뭔가 프레임 워크를 나혼자서 직접 짰다는 것에 뿌듯함을 느낀다. 2022. 4. 10.
FPGA의 연산에 DSP를 안 쓰는 방법 HLS에서 FPGA를 합성할때 대부분의 곱셈+덧셈연산은 DSP를 사용한다 이러면 LUT를 덜 사용하는 장점이 있지만 DSP때문에 느려진다는 문제가 발생한다. 이럴때는 #pragma HLS BIND_OP 를 사용해 줘서 fabric으로 해주면 된다. 2022. 3. 22.
Vitis 버전별 비교 21.1은 정말 못쓰는 버전임 2022. 3. 10.
Xilinx Vitis 컴파일 오래 걸림, profile 옵션 실패 Xilinx Vitis를 설치하고 컴파일을 해봤다. 그런데 서버에서 돌리면 2시간 정도 걸리지만, 데스크탑에서 돌리면 16시간이나 걸리는 것이다. 이것저것 조사하던중 발견했는데 현재 Vitis 2021.2버전이 최신 버전인데, 이 버전의 경우 컴파일 시간이 16시간 정도로 오래 걸린다. Vitis 2020.2 버전과 같이 버전을 낮추면 정상적으로 2시간 정도로 컴파일 시간이 떨어진다. 아무래도 최적화 관련 루틴을 잔뜩 넣다보니 컴파일 시간이 너무 늘어난것 같다. 또한 proffile 옵션이 없으면 정상컴파일 되지만, profile 옵션이 실패하는 경우가 있는데 이는 해당 프로그램이 크기가 너무 커서 profile 커널을 넣을 크기가 없는것 같다. 이경우 버전을 올리면 최적화가 더 잘되어 프로그램 크기가 .. 2022. 2. 26.
외부 서버의 docker 내에서 xwindow 사용 이번에 xilinx vitis를 사용해야 하는데 랩장님이, 현재 서버의 vitis는 자신의 home 디렉토리에 설정이 많이 맞춰져 있어서 docker에 따로 깔으라 하셨다(...) docker자체도 어렵긴 하지만 뭐 금방 익숙해 지긴 했는데 (그냥 가볍고 귀찮은 가상머신이라 생각하면 될듯?) 문제는 xwindow가 안됬다. 대부분 인터넷에 나온 방법은 docker가 host(현재 사용하고 있는 컴퓨터)에서 사용하기 때문일 것이다. 하지만 여기서는 host가 아니라 랩 내 서버이고, 그 상에서 docker를 사용하니 제대로 전달이 안되는데 해결방법은 다음과 같다. docker를 생성할때 다음과 같이 생성한다. docker run -it --net=host -v /tmp/.X11-unix:/tmp/.X11-.. 2022. 2. 20.
728x90