SlideShare une entreprise Scribd logo
1  sur  13
PacketShader: A GPU-
Accelerated Software Router
  Sangjin Han, Keon Jang, KyoungSoo Park, Sue Moon
    Department of Computer Science, KAIST, Korea

                id:y_uuki / @y_uuki_
Abstraction

‣ PacketShader
‣ GPUによるパケット処理のための高性能ソフトウェアルータ
‣ 現在のソフトウェアルータにおけるCPU負荷をGPUにオフロードする
‣ この高性能Packet I/O Engineと併用すると,既存のソフトウェアルータと比
  較して4倍以上のスループットとなる

‣ 64BのIPv4パケットを処理するスループットは39Gbps
‣ その他,IPv6,OpenFlowおよびIPsecについてGPUで高速化
Introduction

‣ PCベースのソフトウェアルータは低コストかつProgrammability
 が高い

‣ 既存のソフトウェアルータは10Gbps近くのForwarding性能
‣ しかし,より計算量の多いアプリケーションに対してはCPUがボトル
 ネックとなる
‣ IPsecの場合,IPv4のForwardingスループットの約20%の性能
‣ 数100コアをもつGPUに計算処理をオフロードする
‣ GPUのメモリは帯域幅が大きいため,巨大なテーブルのlookupに適している
Introduction


‣ PacketShaderは以下の2つの要素で構成される
‣ パケットごとのメモリ管理オーバヘッドを排除するためのI/O Engineの実装
‣ IPテーブルのlookupやIPsecの暗号化処理をGPUにオフロード
‣ IPv4:40 Gbps,IPv6:38.2 Gbps,IPsec:10 20 Gbps
GPU as a Packet Processor

‣ 15個のStreaming Multiprocessors(SMs)
‣ 1個のSMは32個のScalar Processors(Sps)をもつ
‣ 合計480コア
‣ SMはSIMT演算を行う
‣ 32個の同一の演算命令を
  1クロックで実行
‣ 統合開発環境CUDA
Optimizing Packet I/O Engine
‣ 高性能なソフトウェアルータは NIC を介したパケットの受信と転送に
 多くの CPU サイクルを費やしている(約60%)

‣ Linux Network Stack の問題
‣ パケットごとにバッファを確保している
‣ Huge Packet Buffer を実装
‣ 2つの巨大なバッファを確保
 ‣ メタデータ
 ‣ パケットデータ
Packet I/O Performance

‣ IPテーブルのlookupなしで,送受信/Forwardのみの性能測定
‣ スループットは約40Gbps(RX+TX(青))で抑えれれている
‣ ボトルネックはI/O
‣ コア数を減らしても同一の結果
‣ 一定のメモリアクセスを要する
  バックグラウンドプロセスを
  走らせても同じ結果
PacketShader Architecture
‣ Packet API:カーネルレベルのI/O Engineのラッパー
‣ masterスレッドと3個のworkerスレッド
‣ masterスレッドのみがGPUにアクセス
 ‣ 複数スレッド同時にGPUにアクセスすると
   性能が落ちる
‣ workerスレッドはPacket I/Oを担当
‣ masterスレッドはGPUにアクセスする
  するためのプロキシのように振る舞う
Workflow
‣ パケットのグループをチャンクとして,チャンク単位で処理する
‣ Pre-shading
 ‣ 各workerスレッドがRXキューからチャンクをフェッチする
 ‣ GPUに渡すための前処理(ヘッダからIPアドレスを抽出するなど)
‣ Shading:
 ‣ masterスレッドがCPU-GPU間
  のデータ転送
‣ Post-shading:
 ‣ 結果をアウトプットキューに格納
Optimization Strategies


‣ Chunk Pipelining
 ‣ masterスレッドの処理とWorkerスレッドの処理をパイプライン化する
‣ Concurrent Copy and Execution
 ‣ GPU上でのプログラム実行中にCPU-GPU間
  のデータ転送が可能
Evaluation - IPv4 and IPv6
‣ IPv4,IPv6ともに最大スループット(40Gbps)に達している
‣ パケットサイズが64Bのとき若干スループットが低い
‣ IOハンドラが主記憶-GPUメモリ間のIPアドレスとlookup結果の転送に
‣ IPv6のほうがメモリアクセス回数が大きいため,メモリ帯域幅の大き
 いGPU実装の速度向上率は大きい
Evaluation - OpenFlow and IPsec
‣ OpenFlow:32K + 32のとき,NetFPGAの実装と比べて8倍の 
 性能向上

‣ IPsec:CPU onlyと比較して,約3.5倍
‣ 計算量の多い処理でもGPU実装は有効である
Conclusions

‣ 安価なハードウェア上で高スループットなパケット処理を実現する
 PacketShaderを提案した

‣ ネットワークスタックにおけるパケットごとのオーバヘッドを最小化
 し,NICから直接ユーザ空間にパケットを転送可能にした

‣ 計算量の多い処理とメモリ集約な処理をGPUにオフロードした
‣ 40GbpsのスループットをもつPCベースのソフトウェアルータを示し
 た

Contenu connexe

Tendances

Webアプリケーションの無停止稼働
Webアプリケーションの無停止稼働Webアプリケーションの無停止稼働
Webアプリケーションの無停止稼働
Kazuho Oku
 
マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法
Takuya ASADA
 

Tendances (20)

OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
 
Apache CloudStack -コントリビューションの手引き-
Apache CloudStack -コントリビューションの手引き-Apache CloudStack -コントリビューションの手引き-
Apache CloudStack -コントリビューションの手引き-
 
SDN Japan: ovs-hw
SDN Japan: ovs-hwSDN Japan: ovs-hw
SDN Japan: ovs-hw
 
BEAR.Sunday 1.X
BEAR.Sunday 1.XBEAR.Sunday 1.X
BEAR.Sunday 1.X
 
[DL Hacks]FPGA入門
[DL Hacks]FPGA入門[DL Hacks]FPGA入門
[DL Hacks]FPGA入門
 
Webアプリケーションの無停止稼働
Webアプリケーションの無停止稼働Webアプリケーションの無停止稼働
Webアプリケーションの無停止稼働
 
Kernel vm-2014-05-25
Kernel vm-2014-05-25Kernel vm-2014-05-25
Kernel vm-2014-05-25
 
Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第2回 開発編Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第2回 開発編
 
MPSoCのPLの性能について
MPSoCのPLの性能についてMPSoCのPLの性能について
MPSoCのPLの性能について
 
Whole Program Paths 等の紹介@PLDIr#3
Whole Program Paths 等の紹介@PLDIr#3Whole Program Paths 等の紹介@PLDIr#3
Whole Program Paths 等の紹介@PLDIr#3
 
NetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pi
 
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜 リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
20180920_DBTS_PGStrom_JP
20180920_DBTS_PGStrom_JP20180920_DBTS_PGStrom_JP
20180920_DBTS_PGStrom_JP
 
Papi
PapiPapi
Papi
 
GGEasyMonitor技術情報
GGEasyMonitor技術情報GGEasyMonitor技術情報
GGEasyMonitor技術情報
 
Scheme to x86コンパイラ
Scheme to x86コンパイラScheme to x86コンパイラ
Scheme to x86コンパイラ
 
Website build exercise_opsguide_japanese
Website build exercise_opsguide_japaneseWebsite build exercise_opsguide_japanese
Website build exercise_opsguide_japanese
 
Open flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitchOpen flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitch
 
マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法
 

Similaire à Packetshader: A GPU-accelerated Software Routerを読んだ

Similaire à Packetshader: A GPU-accelerated Software Routerを読んだ (20)

GPUを用いたSSLリバースプロキシの実装についての論文を読んだ
GPUを用いたSSLリバースプロキシの実装についての論文を読んだGPUを用いたSSLリバースプロキシの実装についての論文を読んだ
GPUを用いたSSLリバースプロキシの実装についての論文を読んだ
 
ICD/CPSY 201412
ICD/CPSY 201412ICD/CPSY 201412
ICD/CPSY 201412
 
20130126 sc12-reading
20130126 sc12-reading20130126 sc12-reading
20130126 sc12-reading
 
Fpga local 20130322
Fpga local 20130322Fpga local 20130322
Fpga local 20130322
 
pgconfasia2016 lt ssd2gpu
pgconfasia2016 lt ssd2gpupgconfasia2016 lt ssd2gpu
pgconfasia2016 lt ssd2gpu
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理
 
(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する
 
オラクルのHPC/GPUソリューションご紹介(2021/08版)
オラクルのHPC/GPUソリューションご紹介(2021/08版)オラクルのHPC/GPUソリューションご紹介(2021/08版)
オラクルのHPC/GPUソリューションご紹介(2021/08版)
 
最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの
 
HPC 的に H100 は魅力的な GPU なのか?
HPC 的に H100 は魅力的な GPU なのか?HPC 的に H100 は魅力的な GPU なのか?
HPC 的に H100 は魅力的な GPU なのか?
 
20210511_PGStrom_GpuCache
20210511_PGStrom_GpuCache20210511_PGStrom_GpuCache
20210511_PGStrom_GpuCache
 
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-clusterKubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster
 
20171109 Amazon EC2 GPUインスタンス最新動向 P3 instance
20171109 Amazon EC2 GPUインスタンス最新動向 P3 instance20171109 Amazon EC2 GPUインスタンス最新動向 P3 instance
20171109 Amazon EC2 GPUインスタンス最新動向 P3 instance
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
 
Software forwarding path
Software forwarding pathSoftware forwarding path
Software forwarding path
 
20170310_InDatabaseAnalytics_#1
20170310_InDatabaseAnalytics_#120170310_InDatabaseAnalytics_#1
20170310_InDatabaseAnalytics_#1
 
Linux on Powerの最新情報(2014年11月)
Linux on Powerの最新情報(2014年11月)Linux on Powerの最新情報(2014年11月)
Linux on Powerの最新情報(2014年11月)
 
20180914 GTCJ INCEPTION HeteroDB
20180914 GTCJ INCEPTION HeteroDB20180914 GTCJ INCEPTION HeteroDB
20180914 GTCJ INCEPTION HeteroDB
 
2012 1203-researchers-cafe
2012 1203-researchers-cafe2012 1203-researchers-cafe
2012 1203-researchers-cafe
 

Dernier

Dernier (12)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

Packetshader: A GPU-accelerated Software Routerを読んだ

  • 1. PacketShader: A GPU- Accelerated Software Router Sangjin Han, Keon Jang, KyoungSoo Park, Sue Moon Department of Computer Science, KAIST, Korea id:y_uuki / @y_uuki_
  • 2. Abstraction ‣ PacketShader ‣ GPUによるパケット処理のための高性能ソフトウェアルータ ‣ 現在のソフトウェアルータにおけるCPU負荷をGPUにオフロードする ‣ この高性能Packet I/O Engineと併用すると,既存のソフトウェアルータと比 較して4倍以上のスループットとなる ‣ 64BのIPv4パケットを処理するスループットは39Gbps ‣ その他,IPv6,OpenFlowおよびIPsecについてGPUで高速化
  • 3. Introduction ‣ PCベースのソフトウェアルータは低コストかつProgrammability が高い ‣ 既存のソフトウェアルータは10Gbps近くのForwarding性能 ‣ しかし,より計算量の多いアプリケーションに対してはCPUがボトル ネックとなる ‣ IPsecの場合,IPv4のForwardingスループットの約20%の性能 ‣ 数100コアをもつGPUに計算処理をオフロードする ‣ GPUのメモリは帯域幅が大きいため,巨大なテーブルのlookupに適している
  • 4. Introduction ‣ PacketShaderは以下の2つの要素で構成される ‣ パケットごとのメモリ管理オーバヘッドを排除するためのI/O Engineの実装 ‣ IPテーブルのlookupやIPsecの暗号化処理をGPUにオフロード ‣ IPv4:40 Gbps,IPv6:38.2 Gbps,IPsec:10 20 Gbps
  • 5. GPU as a Packet Processor ‣ 15個のStreaming Multiprocessors(SMs) ‣ 1個のSMは32個のScalar Processors(Sps)をもつ ‣ 合計480コア ‣ SMはSIMT演算を行う ‣ 32個の同一の演算命令を 1クロックで実行 ‣ 統合開発環境CUDA
  • 6. Optimizing Packet I/O Engine ‣ 高性能なソフトウェアルータは NIC を介したパケットの受信と転送に 多くの CPU サイクルを費やしている(約60%) ‣ Linux Network Stack の問題 ‣ パケットごとにバッファを確保している ‣ Huge Packet Buffer を実装 ‣ 2つの巨大なバッファを確保 ‣ メタデータ ‣ パケットデータ
  • 7. Packet I/O Performance ‣ IPテーブルのlookupなしで,送受信/Forwardのみの性能測定 ‣ スループットは約40Gbps(RX+TX(青))で抑えれれている ‣ ボトルネックはI/O ‣ コア数を減らしても同一の結果 ‣ 一定のメモリアクセスを要する バックグラウンドプロセスを 走らせても同じ結果
  • 8. PacketShader Architecture ‣ Packet API:カーネルレベルのI/O Engineのラッパー ‣ masterスレッドと3個のworkerスレッド ‣ masterスレッドのみがGPUにアクセス ‣ 複数スレッド同時にGPUにアクセスすると 性能が落ちる ‣ workerスレッドはPacket I/Oを担当 ‣ masterスレッドはGPUにアクセスする するためのプロキシのように振る舞う
  • 9. Workflow ‣ パケットのグループをチャンクとして,チャンク単位で処理する ‣ Pre-shading ‣ 各workerスレッドがRXキューからチャンクをフェッチする ‣ GPUに渡すための前処理(ヘッダからIPアドレスを抽出するなど) ‣ Shading: ‣ masterスレッドがCPU-GPU間 のデータ転送 ‣ Post-shading: ‣ 結果をアウトプットキューに格納
  • 10. Optimization Strategies ‣ Chunk Pipelining ‣ masterスレッドの処理とWorkerスレッドの処理をパイプライン化する ‣ Concurrent Copy and Execution ‣ GPU上でのプログラム実行中にCPU-GPU間 のデータ転送が可能
  • 11. Evaluation - IPv4 and IPv6 ‣ IPv4,IPv6ともに最大スループット(40Gbps)に達している ‣ パケットサイズが64Bのとき若干スループットが低い ‣ IOハンドラが主記憶-GPUメモリ間のIPアドレスとlookup結果の転送に ‣ IPv6のほうがメモリアクセス回数が大きいため,メモリ帯域幅の大き いGPU実装の速度向上率は大きい
  • 12. Evaluation - OpenFlow and IPsec ‣ OpenFlow:32K + 32のとき,NetFPGAの実装と比べて8倍の  性能向上 ‣ IPsec:CPU onlyと比較して,約3.5倍 ‣ 計算量の多い処理でもGPU実装は有効である
  • 13. Conclusions ‣ 安価なハードウェア上で高スループットなパケット処理を実現する PacketShaderを提案した ‣ ネットワークスタックにおけるパケットごとのオーバヘッドを最小化 し,NICから直接ユーザ空間にパケットを転送可能にした ‣ 計算量の多い処理とメモリ集約な処理をGPUにオフロードした ‣ 40GbpsのスループットをもつPCベースのソフトウェアルータを示し た

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n