2013년 2월 8일 금요일

GPU를 이용한 고성능 처리 PacketShader 와 Packet I/O

내일이면 2013년 구정의 시작이네요. 생각해 보면 시간은 참으로 빨리도 흘러갑니다. 오늘은 가볍게 GPU 기반의 소프트웨어 라우터 PacketShader 를 소개해 봅니다. PC 기반의 소프트웨어 플랫폼에서 GPU 를 이용해 코어 패킷 프로세싱을 구현하겠다는 것입니다. GPU 는 패킷인사이드에서도 몇번 언급했듯이 연산처리에 있어서 상당히 뛰어납니다. 그래서 암호해독 같은 것에 GPU 를 이용하면 속도가 크게 좋아지죠.

초기 프로젝트의 시작은 초당 10Gbps 를 목표로 했는데 40Gbps 에 도달했다고 합니다. (현재상황에서 구조적으로 40Gbps 이상의 성능을 만들어내는 것은 어렵다고 하네요) 프로토타입 시스템은 2개의 4 코어 Nehalem CPU (2.66GHz) 를 이용하고 4개의 듀얼포트 10Gbe 인텔 NIC 카드 그리고 2개의 NVIDIA GTX 480 카드를 이용했습니다.

몇가지 성능 측정 결과가 있는데, CPU 만을 이용한 것보다 연산처리가 보다 많이 들어가는 OpenFlow 스위치나 IPsec 터널링에서 상당히 좋은 성능 결과를 보여주고 있습니다.


Figure : IPv4 forwarding


Figure :  OpenFlow switch


Figure : IPsec tunneling (AES-CTR and SHA1)

유저레벨 단에서 고성능을 구현하기 위한 Packet I/O 엔진이라는 것을 공개하고 있습니다. Intel 82598/82599 기반의 네트워크 카드의 디바이스 드라이버입니다. 기존 인텔 IXGBE 드라이버를 많이 뜯어고친 것입니다. libpcap 를 이용하는 것보다 고 성능을 원한다면 해당 드라이버를 한번 이용해 보는 것도 좋을것 같습니다.

고성능에 관심있으신 분은 참고해 보세요.

그리고, KAIST 분들에게 응원을 보냅니다. 마지막으로 구정 연휴 잘 보내고 오세요 :-)

[참고]
1. Packet Shader
http://shader.kaist.edu/packetshader/
2. Packet I/O
http://shader.kaist.edu/packetshader/io_engine/index.html

댓글 2개:

  1. 좋은글들 감사합니다 오랜만에 옛날생각 하면서 포렌직 관련 사이트 찾다가 이렇게 들어오게 되었네요 5년이라는 시간동안 꾸준하게 지식공유를 실천하고 계시다는게 알찬 블로그 만큼이나 놀랍고 감사하네요 저는 창업을 희망하며 여기저기 관심을 가지고 IT운영 업무를 하고 있는 평범한 직장인 입니다 아무튼 많은 분들이 저처럼 생각하실거 같네요 늦었지만 새해 복 많이 받으시고 하시는일 계신장소 모든곳에서 건승하시기를 기원합니다.

    답글삭제
    답글
    1. 감사합니다. 바름님도 새해 복 많이 받으시고, 창업에 꼭 성공하시기를 바라겠습니다. :-)
      저도 IT 보안 업무를 하고 있는 평범한 직장인 입니다. 제가 이 일을 하는 동안은 많은 지식을 공유하고 싶네요. 그게 언제까지 지속될지는 모르겠지만 이렇게 응원 남겨주시는 분들의 힘을 얻어 조금씩이라도 지속해 나가고 있습니다. 감사합니다. ^^

      삭제