Intelliprop CEO Hiren Patel과의 인터뷰

비디오 대본

마커스 웨들, 비트웨어

NVMe 브리지 플랫폼이라는 IntelliProp의 프레임워크에 초점을 맞춘 스토리지를 가속화하기 위해 FPGA에 초점을 맞춘 비디오에 오신 것을 환영합니다.

오늘 저와 함께 IntelliProp의 CEO 인 Hiren Patel이 있습니다. 참여해주셔서 감사합니다!

IntelliProp CEO Hiren Patel

고맙습니다, 마커스 - 여기 오게되어 기쁩니다.

마커 스

간단한 빌딩 블록부터 시작하겠습니다. 그래서 우리는 SSD 스토리지(매우 빠른 스토리지)를 가지고 있지만, 호스트 PCIe 버스에 연결하는 대신 FPGA를 그 중간에 배치할 것입니다. 그래서 첫 번째 질문은 왜 그렇게 할 것입니까?

히렌

몇 가지 이유가 있을 수 있지만 SSD 앞에 있는 FPGA를 사용하면 SSD에 직접 데이터를 저장한 다음 나중에 PCIe를 통해 호스트에서 다시 읽을 수 있는 데이터 캡처(데이터 수집 시스템)를 구축할 수 있습니다.
그러나 다시 미리 로드할 수 있는 데이터 수집이 있습니다. 또한 브릿지를 사용하면 요즘 탐구되고있는이 새로운 시장을 공격 할 수 있습니다 - 성장하고 있습니다 - 그것은 전산 스토리지입니다.
특정 액셀러레이터 기능을 FPGA로 직접 오프로드하여 FPGA가 SSD에서 데이터를 검색하거나, 처리하거나, 다시 푸시하거나, 호스트로 다시 푸시할 수 있습니다. 그래서 그것은 아마도 지금 가장 큰 두 가지 이유 일 것입니다.

마커 스

데이터 수집 또는 데이터 캡처의 경우 FPGA 사용의 고유 한 점은 무엇입니까? 왜냐하면... 거기에 다른 데이터 캡처 방법이 있습니다 ... 그렇다면 FPGA를 사용하고이 브리지 프레임 워크를 사용하는 것이 독특합니까?

히렌

그래, 다시 좋은 질문. FPGA에서는 FPGA를 빈 캔버스처럼 생각하십니까? 따라서 FPGA를 사용하면 많은 상호 연결이 가능합니다. 우리는 다른 종류의 데이터 수집, 온도 센서 등을 넣을 수있는 많은 연결 지점을 가지고 있으며, 해당 데이터를 가져 와서 SSD에 던질 수 있습니다. 이것이 주요 기준 중 하나입니다.

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

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

제가 말하고 싶은 또 다른 점은 FPGA를 사용하면 사용자 정의 할 수 있기 때문에 실제로 단일 FPGA를 사용하여 여러 제품으로 빌드 할 수 있다는 것입니다. SSD 앞에서 FPGA를 빈 제품으로 사용할 수 있으며 다른 알고리즘이나 다른 가속을 공격 할 수 있습니다.

하나의 알고리즘은 압축 일 수 있고, 다른 하나는 압축 해제 일 수 있으며, 암호화 일 수 있습니다. 검색과 같은 작업도 할 수 있습니다. 이것들은 모두 당신이 가지고있는 특정 요구를 목표로하는 가속기 기능이며 하나의 크기만이 모든 것에 맞는 것은 아닙니다.

마커 스

그래서 Hiren, 당신은 지금 이 개념을 프레임워크의 브리지 컴포넌트와 함께 소개했는데, 여기서 이 호스트 CPU는 호스트 PCIe 버스가 아닌 FPGA에 직접 연결되어 있어도 SSD를 볼 수 있습니다. 이제 이점이 있지만 사용자가 특수 API를 실행해야합니까, 그렇지 않으면이 모든 것이 작동하려면 소프트웨어를 수정해야합니까?

히렌

아니, 상자 밖이 아니야. 셸에 브리지 플랫폼만 있으면 호스트 PC와 SSD 사이에 연결할 수 있습니다. 아니요, 변경할 필요가 없습니다. 호스트는 실제로 SSD가 직접 연결된 것처럼 열거합니다.
이제 다시 가속 기능이나 데이터 캡처에 들어갈 수 있으면 드라이버가 추가로 필요하거나 공급 업체 별 정보를 통해 모든 것을 수행 할 수 있습니다. 공급업체별 명령을 브리지로 직접 보낼 수 있는 CLI가 있습니다. 브리지는 이러한 명령을 가로채서 필요에 따라 데이터를 처리할 수 있습니다.

마커 스

이제 특정 BittWare 하드웨어 및 성능에 대해 이야기 해 봅시다. BittWare IA-840F와 마찬가지로 SSD를 FPGA에 직접 부착 할 수있는 FPGA 카드가 시장에 많이 없다는 점에 유의하는 것이 중요하다고 생각합니다. 우리는 또한이 카드에 Agilex FPGA와 인텔의 최신 실리콘의 장점을 가지고 있습니다. 그렇다면 이러한 것들이 가져올 수있는 이점과 측정 기준은 무엇입니까?

히렌

네, 물론입니다. 분명히 이러한 새로운 FPGA는 PCIe에서 더 빠르고 빠른 세대 속도를 향해 나아가고 있습니다. 오늘 저는 이 Agilex 보드가 곧 Gen 5가 출시될 예정인 4세대에 도달할 수 있다고 믿습니다. 그리고 저는 이 보드들이 그 자체로 엄청난 업적이라고 생각합니다.

그런 다음 다시 브리지를 사용하면 Gen 4 x16이 PC쪽으로 이동 한 다음 뒷면에서 여러 SSD를 집계 할 수 있습니다. Gen4 x4에서 4개의 SSD를 사용하는 것만으로도 그 중 일부를 포화시키는 데 도움이 될 수 있습니다.

또한 Gen 3 x4 레인에 여덟 개의 드라이브를 장착하여 포화도를 높일 수 있습니다.
그래서 우리는 네 개의 드라이브를 다시 가질 수 있고, 여덟 개의 드라이브를 다시 가질 수 있습니다. 그러나 기본적으로 모든 트래픽이 FPGA를 통과하므로 FPGA에서 계산 저장 또는 데이터 수집을 수행 할 수 있습니다.

마커 스

이러한 대역폭 수치는 무엇입니까? FPGA에 네 개의 드라이브가 연결되어 있거나 FPGA가 여덟 개의 드라이브가 있는 PCIe 스위치에 연결된다고 가정해 보겠습니다. 그렇다면 Gen4 PCIe 수준에서 기대할 수 있는 성능 수치는 무엇입니까?

히렌

그래서 Gen 4 수준에서, 나는 단지 하나의 드라이브로 그것을 의심 할 것입니다 - 나는 우리가 아마도 초당 6,000 메가 바이트에 더 가까워야한다고 생각합니다. Gen 3 속도로, 우리는 이미 초당 3,500 메가 바이트에 가까운 3,000 이상으로 달리는 다리를 선보일 수 있습니다. 나는 Gen 4에서 그 두 배가 될 것으로 기대합니다.

마커 스

그리고 FPGA를 배포하는 사람들에게 종종 떠오르는 또 다른 질문은 브릿지 IP와 함께 FPGA에 얼마나 많은 IP를 넣을 수 있는가하는 것입니다. 다른 말로하면, 다른 사람들을 위해 얼마나 많은 공간을 남겨 두십니까? 그래서 당신은 그것에 대해 간단히 말할 수 있습니다 ...

히렌

그래 좋은 소리. 이 특정 보드에는 AGF027 부분이 있다고 생각합니다. 그 부분은 아마도 약 900,000 개의 ALE / ALM을 가지고 있다고 말할 수 있습니다. 우리는 다리에 약 100,000을 사용합니다. 이는 단일 드라이브 연결을위한 것입니다. 드라이브 연결이 여러 개인 경우 이를 확장하기 위해 약 4,000개의 ALM을 추가할 수 있습니다.

그래서 네, 나쁘지 않습니다. 여전히 약 10 %에 불과합니다. 따라서 고객은 여전히 가속 기능을 추가 할 수있는 많은 양의 논리를 사용할 수 있습니다.

마커 스

당신이 언급 한 Hiren은 하나의 드라이브 또는 여러 개의 드라이브를 카드에 직접 연결할 수 있다고 언급했습니다. 이제 더 많은 드라이브를 연결하고 카드가 여덟 개의 드라이브처럼 물리적으로 연결할 수 있다면 정확히 어떻게 이루어 집니까?

히렌

단일 카드로도 여러 드라이브를 연결할 수 있으며 PCIe 스위치가있는 백플레인으로 확장하여 추가 드라이브로 이동할 수 있다고 생각합니다. 따라서 여덟 개의 드라이브를 PCIe 스위치에 연결 한 다음 PCIe 스위치에 연결 한 다음 BittWare 카드에 연결할 수 있습니다. 그래서 나는 그것이 여기서 가능한 하나의 가능한 해결책이나 토폴로지라고 생각한다.

마커 스

우리가 이야기했던 두 번째 사용 사례 그룹으로 돌아가 봅시다 - FPGA가 인라인 가속기 인 곳입니다. 이것은 계산 스토리지 가속에 대한이 더 큰 그림의 일부이며 CPU 오프로드에 실제로 인기를 얻고 있습니다. 계산 스토리지를위한 인라인 가속기의 사용 사례 중 일부를 통해 이야기 할 수 있습니까?

히렌

네, 물론입니다. 그래서 우리는 오늘날 미사용 데이터 암호화를 수행하는 많은 고객을 보유하고 있습니다. 따라서 FPGA는 SSD 또는 여러 SSD 앞에 배치되며 고객은 우리가 부르는 샌드 박스 영역 또는 고객 가속 영역을 미사용 암호화시 데이터로 사용합니다. 그러나 고객은 또한 검색 엔진, 검색 오프로드, 압축 eBPF를 수행 할 수 있습니다 또 다른 성장 영역입니다.

그래서 그것들은 고객이 할 수있는 것들 중 일부입니다. 예를 들어 브리지로 수행할 수 있는 작업 중 하나인 압축 또는 압축 해제를 사용하면 실제로 서버 또는 호스트가 브리지를 통해 변경되지 않은 압축 데이터를 SSD로 보내도록 할 수 있습니다.

그러나 해당 데이터를 검색하면 FPGA에 압축 해제 하드웨어 엔진이 내장되어 있을 수 있습니다. 그 압축 해제 엔진은 서버 호스트로 다시 전송되기 전에 데이터의 압축을 풀 수 있으며, 이것이 우리가 보는 하나의 유스 케이스라고 생각합니다.

내가 말한 것과 같은 다른 유스 케이스는 eBPF이고 Intelliprop이 그것에 대한 몇 가지 참조 디자인을 작업하고 있다는 것을 알고 있으므로 그것이 우리가 성장하는 또 다른 유스 케이스라는 것을 알고 있다면 eBPF 가상 머신.

마커 스

이전에 다루었지만 더 듣고 싶었던 한 가지 유스 케이스는 호스트가 검색 명령을 실행하지만 검색 자체를 FPGA 및 직접 연결된 SSD로 오프로드하는 것입니다. 그렇다면 압축을 오프로드하는 것보다 조금 더 복잡하기 때문에 검색을 어떻게 오프로드합니까?

히렌

네, 좋은 질문입니다. 우리가 세인트루이스에서 11 월에 SuperCompute '21에서 선보인 것들 중 하나는 우리가 인라인 브릿지가 실제로 검색 엔진을 오프로드하는 것을 보여줬다는 것입니다. 그래서 우리는 CPU가 SSD에 많은 양의 데이터를 미리 로드하도록했습니다. 우리는 서버가 RTL 코드가 공급 업체 별 명령을 볼 수있는 브리지 중간에 공급 업체 별 명령을 보내고, 특정 패턴 검색을 수행 할 LBA 또는 주소 공간의 범위를 확보했으며, 서버로부터 패턴을 받았습니다. 일단 우리가 검색 할 LBA의 패턴과 범위를 받으면 우리는 떠나서 읽어야 할 전체 드라이브 섹션을 읽고, 특정 32 비트 패턴을 찾고, 모든 인스턴스 (LBA가 발생한 LBA)를 발견하고이를 패키지화하여 서버 호스트로 다시 완료를 보냈습니다.
일반적으로 가속기가 없으면 서버는 모든 데이터를 시스템 메모리로 읽고 검색을 수행 한 다음 데이터를 버립니다. 그리고 그 모든 데이터 이동이 없으면 단순히 우리에게 명령을 내려야했고 우리는 단지 "우리가 발견 한 모든 위치가 있습니다."라는 응답을 보냈습니다. FPGA는 정직하게 그것을 할 수 있었고 훨씬 더 빨리, 우리는 이것을 보여주는 그래프를 가지고있었습니다.

네, 이제 우리는 그 데모 중 일부를보고 있습니다. 상단 줄은 직접 검색을 수행하는 동안 약 90 %에서 실행되는 CPU 부하를 보여 주지만 그 사이에 FPGA 오프로드 버전은 물론 몇 배 더 빠르며 CPU를 오프로드하고 있습니다 ... 여기서 어떤 FPGA를 사용하고 있습니까?
그래서, 예, 비디오의 데모는 인텔 스트라틱스 10 DX에서 수행됩니다.

이 특정 프레임 워크 IP를 브리지와 함께 사용해야하는 경우를 어떻게 인식 할 수 있습니까? 누군가가 특히 브리지 구성 요소가 필요할 때 어떻게 인식합니까?
네, 좋은 질문입니다. 다시 말하지만, 그것은 통과 다리입니다. 우리가 한 일은 모든 NVMe 복잡성을 제거했으며, 고객이 로직을 넣을 수 있는 AXI 스트림 인터페이스를 만들었습니다. 따라서 고객은 가속 기능을 잘 수행하고 있으며, NVMe의 전문가가 아닐 수도 있으며 프레임 워크가 실제로 빛나는 곳입니다. 우리는 데이터와 명령 및 모든 것을 AXI 스트림을 통해 제어 및 데이터 정보로 중간에 바로 표시하고 고객이 해당 논리로 수행 할 작업을 결정할 수 있도록합니다.
그리고 다른 한편으로는 제어 및 데이터 플레인 (AXI 스트림)도 가지고 있습니다.이 플레인은 해당 데이터를 SSD로 계속 이동합니다.
그것은 양방향으로 작동하므로 사용하기 쉽기 때문에 실제로 우리가 빛나는 곳입니다. 고객이 가속 기능에 대한 전문 지식을 갖추면 샌드 박스에 넣을 수 있습니다.
출시 시간이 훨씬 짧습니다. BittWare 보드에서 BittWare의 도움으로 우리는 실제로 그 시간을 더욱 단축시킵니다. 이제 실리콘을 확보하고 샌드박스 브리지(NVMe Bridge 플랫폼)에 실제로 연결할 수 있게 되었고, 이제 가속 기능을 계속 구축할 수 있는 플랫폼이 생겼습니다.

마커 스

좋아, 그래서 그것을 기반으로하는 것 - 그리고 이것이 나의 마지막 질문입니다 -이 NVMe Bridge IP를 직접 구축하는 것에 대해 생각하는 시청자들에게 IntelliProp을 사용하는 것에 대해 생각하고 있습니다 ... IntelliProp이 실제로 이것을 만드는 데 얼마나 오래 걸렸으며 이제 IntelliProp을 사용하여 응용 프로그램을 빌드하는 것이 얼마나 쉬운가?

히렌

그래, 그래서 좋은 소리. 그래서 이것은 다시 말하지만, 우리가 일종의 프레임 워크이며, NVMe와 상호 작용해야한다는 사실을 외삽하거나 숨겼다고 말하고 싶습니다. NVMe에 대해 알 필요가 없습니다. 어떤 주소를 얻고 정보를 제어하는지 알기만 하면 됩니다.

그 다리 자체는 아마도 IntelliProp이 우리가 원하는 성능을 낮추기 위해 개발하고 올바르게 만드는 데 약 일년 반 정도 걸렸을 것입니다. 궁극적으로, 우리는 고객을 위해 시간을 절약하고 있습니다.

예를 들어, 우리가 한 SuperCompute '21 데모로 돌아가서, 우리는 약 한 달 만에 그렇게했습니다. 다리가 없었다면 훨씬 더 오래 걸렸을 것입니다. 우리가 얻은 데이터 정보 인 제어 정보를 알고있는 다리를 갖는 것만으로도 가속 검색 기능과 데이터를 다시 보낼 수있는 기능을 실제로 수행하는 데 한 달이 걸렸습니다.

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

마커 스

좋아, 훌륭해. 오늘 저와 이야기해 주셔서 감사합니다, 히렌, 이 모든 것에 대해 말씀해 주셔서 감사합니다.

히렌

감사합니다.

마커 스

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