인텔리프롭 CEO 히렌 파텔 인터뷰

비디오 대본

마커스 웨들, 비트웨어

스토리지 가속화를 위한 FPGA에 초점을 맞춘 비디오에 오신 것을 환영하며, NVMe 브리지 플랫폼이라는 IntelliProp의 프레임워크에 중점을 두고 있습니다.

오늘 이 자리에는 인텔리프롭의 CEO인 Hiren Patel이 함께했습니다. 함께 해주셔서 감사합니다!

인텔리프롭 CEO Hiren Patel

감사합니다, 마커스. 이 자리에 와주셔서 기쁩니다.

Marcus

간단한 빌딩 블록부터 시작하겠습니다. 매우 빠른 스토리지인 SSD 스토리지를 호스트 PCIe 버스에 꽂는 대신 그 중간에 FPGA를 넣을 것입니다. 그렇다면 첫 번째 질문은 왜 그렇게 할까요?

Hiren

여러 가지 이유가 있겠지만, SSD 앞에 FPGA를 사용하면 데이터 캡처(데이터 수집 시스템)를 구축하여 데이터를 SSD에 직접 저장한 다음 나중에 PCIe를 통해 호스트에서 다시 읽을 수 있습니다.
하지만 다시 한 번, 미리 로드할 수 있는 데이터 수집이 있습니다. 또한 브리지를 사용하여 요즘 성장하고 있는 새로운 시장인 컴퓨팅 스토리지 시장을 공략할 수도 있습니다.
우리는 특정 가속기 기능을 FPGA에 직접 오프로드할 수 있으며, 그러면 FPGA가 SSD에서 데이터를 검색하고 처리한 후 다시 푸시하거나 호스트로 푸시할 수 있습니다. 이것이 현재로서는 가장 큰 두 가지 이유일 것입니다.

Marcus

데이터 수집 또는 데이터 캡처에 있어 FPGA를 사용하는 것의 특별한 점은 무엇일까요? 왜냐하면... 다른 데이터 캡처 방법도 있는데... FPGA를 사용한 다음 이 브리지 프레임워크를 사용하는 것의 특별한 점은 무엇일까요?

Hiren

네, 좋은 질문입니다. FPGA를 빈 캔버스와 같다고 생각하시죠? 따라서 FPGA에는 많은 상호 연결이 있습니다. 다른 종류의 데이터 수집, 온도 센서 등을 넣을 수 있는 연결 지점이 많기 때문에 해당 데이터를 가져와서 SSD에 넣을 수 있습니다. 이것이 주요 기준 중 하나입니다.

또 다른 기준은 FPGA에 강력한 프로세싱 기능이 내장되어 있고, 요즘에는 여러 개의 프로세서를 내려놓을 수 있는 ARM 코어가 있다는 것입니다. 데이터가 SSD에 도착하기 전에 모든 종류의 처리를 수행할 수 있습니다.

특히 브리지-왜 브리지를 사용하나요? 브리지는 주로 데이터 통과를 허용하므로 쓰기도 허용하고 읽기도 허용할 수 있습니다. 하지만 특정 명령을 가로챌 수도 있습니다. 필요에 따라 데이터를 가로챌 수 있으므로 호스트는 FPGA에 직접 명령을 내릴 수 있고, FPGA는 SSD에서 더 많은 데이터를 검색하거나 검색 또는 가속 기능과 같은 필요한 작업을 수행한 다음 해당 데이터를 다시 푸시할 수 있습니다. 따라서 FPGA에는 많은 용도가 있습니다.

또 한 가지 말씀드리고 싶은 것은 FPGA는 커스터마이징이 가능하기 때문에 실제로 하나의 FPGA를 여러 제품으로 만들 수 있다는 것입니다. SSD 앞에 FPGA를 빈 제품으로 가져와서 다른 알고리즘이나 다른 가속도를 적용할 수 있습니다.

하나의 알고리즘은 압축일 수 있고, 다른 알고리즘은 압축 해제일 수 있으며, 암호화일 수도 있습니다. 검색과 같은 작업도 할 수 있습니다. 이러한 기능은 모두 특정 요구사항에 맞춘 가속기 기능으로, 한 가지 기능만 제공하는 것이 아닙니다.

Marcus

Hiren은 프레임워크의 브리지 구성 요소를 통해 호스트 CPU가 호스트 PCIe 버스가 아닌 FPGA에 직접 연결되어 있어도 SSD를 볼 수 있는 이 개념을 소개했습니다. 하지만 이 모든 기능이 작동하려면 사용자가 특별한 API를 실행해야 하거나 소프트웨어를 수정해야 하나요?

Hiren

아니요, 바로 사용할 수 없습니다. 셸에 브리지 플랫폼만 있는 상태로 호스트 PC와 SSD 사이에 연결하면 바로 사용할 수 있습니다. 아니요, 아무것도 변경할 필요가 없습니다. 호스트는 실제로 SSD를 직접 연결한 것처럼 열거합니다.
이제 가속 기능이나 데이터 캡처를 시작하면 드라이버가 추가로 필요할 수도 있고, 공급업체별 세부 정보를 통해 모든 작업을 수행할 수도 있습니다. 공급업체별 명령을 브리지로 직접 전송할 수 있는 CLI가 있으며, 브리지는 이를 가로채서 필요에 따라 데이터를 처리할 수 있습니다.

Marcus

이제 구체적인 BittWare 하드웨어와 성능에 대해 이야기해 보겠습니다. 여기에서 볼 수 있는 BittWare IA-840F처럼 SSD를 FPGA에 직접 연결할 수 있는 FPGA 카드는 시중에 그리 많지 않다는 점에 유의하는 것이 중요합니다. 또한 이 카드에는 인텔의 최신 실리콘과 Agilex FPGA가 탑재되어 있다는 장점도 있습니다. 그렇다면 이러한 것들이 가져올 수 있는 이점과 지표에는 어떤 것이 있을까요?

Hiren

네, 맞습니다. 분명히 이러한 최신 FPGA는 PCIe에서 점점 더 빠른 세대 속도를 향해 나아가고 있습니다. 현재 저는 이러한 Agilex 보드가 곧 출시될 5세대와 함께 4세대에 도달할 수 있다고 생각합니다. 그리고 이 보드는 그 자체로 엄청난 업적이라고 생각합니다.

그리고 다시 브릿지를 통해 Gen 4 x16을 PC 쪽으로 연결한 다음 뒷면에 여러 개의 SSD를 통합할 수 있습니다. Gen4 x4에서 4개의 SSD를 사용하는 것만으로도 포화 상태의 일부를 해소할 수 있습니다.

또한 3세대 x4 레인에 8개의 드라이브를 장착하여 포화 상태에 도달할 수 있습니다.
따라서 4개의 드라이브, 8개의 드라이브 등 많은 수의 드라이브를 장착할 수 있습니다. 하지만 기본적으로 모든 트래픽은 FPGA를 통과하므로 컴퓨팅 스토리지 또는 데이터 수집을 수행할 수 있습니다.

Marcus

이러한 대역폭 수치에는 어떤 것들이 있을까요? 4개의 드라이브가 FPGA에 연결되어 있거나 FPGA가 8개의 드라이브가 있는 PCIe 스위치에 연결되어 있다고 가정할 때, Gen4 PCIe 수준에서 기대할 수 있는 성능 수치는 어느 정도일까요?

Hiren

따라서 4세대 수준에서는 단일 드라이브에서 초당 6,000메가바이트에 근접할 수 있을 것으로 예상됩니다. 3세대 속도에서는 이미 초당 3,000메가바이트에 가까운 3,500메가바이트를 넘나드는 브리지를 선보일 수 있습니다. 4세대에서는 그 두 배가 될 것으로 예상합니다.

Marcus

그리고 FPGA를 배포하는 사람들이 자주 제기하는 또 다른 질문은 브리지 IP와 함께 FPGA에 얼마나 많은 자체 IP를 넣을 수 있는가 하는 것입니다. 다시 말해, 다른 사람들을 위해 얼마나 많은 공간을 남겨두어야 할까요? 이에 대해 간단히 말씀해 주시겠습니까?

Hiren

네, 좋네요. 이 특정 보드에는 AGF027 부품이 있는 것 같습니다. 이 부품에는 아마 약 90만 개의 ALE/ALM이 있을 겁니다. 저희는 브리지에 약 10만 개를 사용합니다. 이는 단일 드라이브 연결에 대한 것입니다. 드라이브 연결이 여러 개라면 이를 확장하기 위해 약 4,000개의 ALM을 추가해야 합니다.

그래서 네, 나쁘지 않습니다. 그래도 10% 정도에 불과합니다. 따라서 고객은 여전히 가속 기능을 추가할 수 있는 로직을 충분히 확보할 수 있습니다.

Marcus

하나의 드라이브 또는 여러 개의 드라이브를 카드에 직접 연결할 수 있다고 말씀하셨습니다. 이제 더 많은 드라이브를 연결하고 싶고 카드가 물리적으로 8개의 드라이브처럼 연결할 수 있다면 정확히 어떻게 하나요?

Hiren

하나의 카드로도 여러 개의 드라이브를 연결할 수 있고, 백플레인으로 확장하여 추가 드라이브를 연결할 수 있는 PCIe 스위치가 있는 백플레인으로 확장할 수도 있습니다. 따라서 8개의 드라이브를 PCIe 스위치에 연결한 다음 PCIe 스위치를 BittWare 카드에 연결할 수 있습니다. 이것이 가능한 솔루션 또는 토폴로지 중 하나라고 생각합니다.

Marcus

앞서 이야기했던 두 번째 사용 사례 그룹, 즉 FPGA가 인라인 가속기인 경우로 돌아가 보겠습니다. 이것은 컴퓨팅 스토리지 가속화의 큰 그림의 일부이며 CPU 오프로드에 매우 널리 사용되고 있습니다. 컴퓨팅 스토리지용 인라인 가속기의 사용 사례 중 몇 가지를 소개해 주시겠습니까?

Hiren

네, 물론이죠. 그래서 현재 많은 고객들이 미사용 데이터 암호화를 사용하고 있습니다. 따라서 퓨어스토리지의 FPGA는 SSD 또는 여러 개의 SSD 앞에 위치하며, 샌드박스 영역 또는 고객 가속 영역을 미사용 데이터 암호화로 사용하는 고객들이 이를 사용합니다. 하지만 고객들은 검색 엔진, 검색 오프로드, 압축 eBPF도 성장하고 있는 또 다른 영역입니다.

따라서 고객이 할 수 있는 일 중 일부입니다. 압축 또는 압축 해제를 예로 들면, 브릿지로 할 수 있는 일 중 하나는 실제로 서버 또는 호스트가 브릿지를 통해 압축된 데이터를 변경하지 않고 SSD로 전송하도록 할 수 있습니다.

하지만 데이터를 검색할 때 압축 해제 하드웨어 엔진이 FPGA에 내장되어 있을 수 있습니다. 이 압축 해제 엔진은 데이터가 서버 호스트로 다시 전송되기 전에 압축을 해제할 수 있으며, 이것이 바로 우리가 볼 수 있는 사용 사례 중 하나라고 생각합니다.

앞서 말씀드린 것처럼 다른 사용 사례로는 eBPF가 있으며, Intelliprop에서 이에 대한 레퍼런스 디자인을 개발 중인 것으로 알고 있으므로, eBPF 가상 머신이라는 또 다른 사용 사례도 성장하고 있는 것으로 알고 있습니다.

Marcus

앞서 언급하셨지만 더 자세히 듣고 싶었던 한 가지 사용 사례는 호스트가 검색 명령을 실행한 다음 검색 자체를 FPGA와 직접 연결된 SSD로 오프로드하는 것입니다. 압축 오프로드보다 조금 더 복잡하기 때문에 검색 오프로드는 어떻게 작동하나요?

Hiren

네, 좋은 질문입니다. 지난 11월 세인트루이스에서 열린 슈퍼컴퓨트 '21에서 선보인 것 중 하나는 인라인 브리지가 실제로 검색 엔진을 오프로드하는 모습을 보여드린 것입니다. 그래서 CPU가 SSD에 많은 양의 데이터를 미리 로드하도록 했습니다. 서버가 브리지 중간에 공급업체별 명령을 보내면 RTL 코드가 공급업체별 명령을 보고 특정 패턴 검색을 수행할 LBA 또는 주소 공간의 범위를 파악하고 서버로부터 패턴을 수신하도록 했습니다. 패턴과 검색할 LBA 범위를 받으면, 우리는 나가서 우리가 읽어야 하는 전체 드라이브 섹션을 읽고, 특정 32비트 패턴을 찾고, 그 패턴의 모든 인스턴스(어떤 LBA에서 발생했는지)를 찾아서 이를 패키지화하여 서버 호스트에 다시 전송했습니다.
일반적으로 가속기가 없었다면 서버는 모든 데이터를 시스템 메모리로 읽고 검색을 수행한 다음 데이터를 버렸을 것입니다. 이러한 데이터 이동 없이 서버는 우리에게 명령을 내리기만 하면 "여기 우리가 찾은 모든 위치가 있습니다."라는 응답을 전송하기만 하면 되었습니다. FPGA는 이 작업을 훨씬 더 빠르게 수행할 수 있었으며 그래프도 이를 보여줍니다.

이제 데모 중 일부를 살펴보겠습니다. 위쪽 선은 직접 검색을 수행하는 동안 약 90%의 속도로 실행되는 CPU 부하를 보여주고 있지만, 그 사이에 FPGA 오프로드 버전이 당연히 몇 배 더 빠르며 CPU를 오프로드하고 있습니다... 여기서 어떤 FPGA를 사용하고 있습니까?
그래서, 예, 비디오의 데모는 Intel Stratix 10 DX에서 수행됩니다.

브리지와 함께 특정 프레임워크 IP를 사용해야 하는 시기를 어떻게 알 수 있나요? 브리지 구성 요소가 특히 필요한 시기를 어떻게 인식할 수 있나요?
네, 좋은 질문입니다. 다시 말씀드리지만, 패스스루 브리지입니다. 퓨어스토리지가 한 일은 NVMe의 복잡성을 모두 제거하여 고객이 로직을 넣을 수 있는 AXI 스트림 인터페이스를 만든 것입니다. 따라서 고객은 가속 기능에는 능숙하지만 NVMe에 대해서는 전문가가 아닐 수 있으며, 바로 이 부분에서 프레임워크가 빛을 발합니다. 퓨어스토리지는 데이터와 명령어 등을 AXI 스트림을 통해 중간에서 제어 및 데이터 정보로 제공하고 고객이 해당 로직으로 무엇을 할 것인지 결정할 수 있도록 합니다.
그리고 반대편에는 데이터를 SSD로 계속 이동시키는 제어 및 데이터 플레인(다시 AXI 스트림)이 있습니다.
양방향으로 작동하므로 사용 편의성 측면에서 퓨어스토리지의 강점이 바로 이 부분에서 빛을 발하는 것입니다. 가속 기능에 대한 전문 지식이 있는 고객은 이를 샌드박스에 넣기만 하면 됩니다.
시장 출시 시간이 훨씬 단축됩니다. 그리고 비트웨어 이사회에서 비트웨어의 도움을 받아 실제로 그 시간을 훨씬 더 단축할 수 있었습니다. 이제 샌드박스 브리지에 실제로 연결할 수 있는 실리콘, 즉 NVMe 브리지 플랫폼이 생겼고, 이제 가속 기능을 계속 구축할 수 있는 플랫폼이 생겼기 때문입니다.

Marcus

자, 이제 마지막 질문입니다. 이 NVMe 브리지 IP를 직접 구축하는 것과 IntelliProp을 사용하는 것에 대해 고민하는 시청자를 위해 실제로 IntelliProp을 사용하여 이 제품을 만드는 데 얼마나 걸렸으며, 이제 이 제품을 사용하여 애플리케이션을 구축하는 것이 얼마나 쉬워졌나요?

Hiren

네, 그렇군요. 이 프레임워크는 NVMe와 상호 작용해야 한다는 사실을 어느 정도 추정하거나 숨겼다고 말씀드리고 싶습니다. NVMe에 대해 아무것도 모를 필요는 없습니다. 어떤 주소와 제어 정보를 얻고 있는지만 알면 됩니다.

이 브릿지를 개발하고 원하는 성능을 구현하는 데 1년 반 정도 걸렸습니다. 궁극적으로 고객의 시간을 절약할 수 있게 되었습니다.

예를 들어, 우리가 했던 SuperCompute '21 데모로 돌아가서, 우리는 약 한 달 만에 이 작업을 완료했습니다. 브리지가 없었다면 훨씬 더 오래 걸렸을 것입니다. 브리지가 있고 제어 정보, 즉 우리가 얻고 있는 데이터 정보를 알고 있었기 때문에 가속도 검색 기능과 데이터를 다시 전송하는 기능을 실제로 수행하는 데만 한 달이 걸렸습니다.

다시 말하지만, 이것은 프레임워크이며, 모든 것이 미리 구축되어 있고, 플러시 아웃되어 있습니다. 가속에만 집중하기만 하면 됩니다.

Marcus

네, 좋아요. 오늘 이 모든 것에 대해 이야기해 주셔서 감사합니다.

Hiren

감사합니다.

Marcus

이것이 바로 BittWare FPGA 카드에서 사용할 수 있는 IntelliProp의 프레임워크인 NVMe 브리지 플랫폼입니다. 특히 오늘은 SSD가 직접 연결된 IA-840F에 대해 살펴보겠습니다. 자세한 내용은 BittWare 웹사이트를 방문하시고 시청해 주셔서 감사합니다.