Samsung SmartSSD는 내 첫 발표 주제였다. 덜덜 떨면서 발표함... Samsung SmartSSD에 대해서 간단히 설명하면 Samsung과 Xilinx가 공동으로 출시한 CSD다. CSD는 Computing Storage Drive의 약자로 저장장치 주제에 내부에서 응용을 실행할 수 있는 기똥찬 친구다. 따라서 호스트의 자원 사용도 줄이고 호스트와 디바이스간의 데이터 전송도 줄어들게 된다.
SmartSSD는 내부에 FPGA 가속기를 내장하는 방식으로 개발됐다. 다른 CSD로는 NGD system이라는 것도 있는데 이 친구는 아예 Linux가 안에서 돌아간다고 한다.
SmartSSD는 크게 SSD, FPGA 가속기, PCIe 스위치로 구성되어있다. SSD는 일반적인 저장장치랑 똑같은 역할을 수행한다. FPGA 가속기는 CSD가 응용을 실행할 수 있는데에 아주 핵심적인 부분이다. 4GB DRAM도 따로 달려있다. 얘는 사용자가 직접 코드를 작성해서 응용을 실행할 수 있기 때문에 개발 시간이 짧고 재수정이 가능한 특징이 있다.
이때 코드는 OpenCL로 작성하기 때문에 Verilog같은 HDL을 몰라도 무방하다. PCIe 스위치는 호스트와 디바이스간의 데이터 이동을 맡는다. 이때 기똥차게 호스트를 거치지 않는 SSD와 FPGA간의 P2P 전송도 가능하다.
아직 직접 만져보지 않아서 SmartSSD에 대해서 아는 바가 그리 많지 않다. 곧 연구실에 들어가서 직접 코딩을 해보게 될 것 같다. FPGA 코드 최적화 기법에 대해서도 조금 공부했는데 이건 나중에 직접 코드를 작성해보고 글 쓸 생각이다.
2022-02-20 추가)
1월말부터 계속 SmartSSD를 만져봤다. 거의 대부분 세팅하는데 시간을 보내긴 했지만 어찌됐든 OpenCL 코딩도 잠깐 해봤다. 그런데 세팅이 아주 거지같다. SmartSSD를 설치하려면 XRT랑 Vitis platform을 깔아야한다. 그런데 뭐가 문젠지 컴퓨터 본체만 3번을 바꿨고 XRT는 수도 없이 다시 깔았다. 분명히 되는걸 확인하고 껐는데 다음 날 와서 다시 키면 안되는 기적같은 일들이 자주 일어났다. xbmgmt examine.... xbutil examine.... 뭐만하면 0 device... 진짜 사리 나올 뻔 했다.
계속 시행착오를 겪으면서 알게된 점이 몇개 있다. 나는 운영체제로 Ubuntu를 사용했는데 XRT가 리눅스 커널 버전이랑 잘 맞아야한다. 커널 버전이 너무 높으면 안되더라... 그리고 잠깐 CentOS도 사용해봤는데 CentOS는 CPU가 너무 좋았던 것인지 내장그래픽 인식을 못해서 다시 Ubuntu로 돌아왔다. 이떄 i9-만번대를 사용했던 것 같다. 결국 다른 곳에 설치되어 있는 SmartSSD를 원격으로 접속해서 사용하기로 했다.
그리고 빌드하는데에 메모리를 엄청 먹는다. 중간 중간에 vcl 에러가 나면 거의 100% 메모리 문제인 듯했다. 빌드도 겁나 오래 걸리는데 중간에 터지면 진짜 화난다....
'etc > 연구실 인턴' 카테고리의 다른 글
Newport CSD (0) | 2022.06.29 |
---|---|
MPI & Matrix Tiling (0) | 2022.05.02 |
PageRank Algorithm (0) | 2022.01.13 |
연구실 인턴 시작 (0) | 2022.01.08 |