SlideShare a Scribd company logo
1 of 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ベースのソフトウェアルータを示し
 た

More Related Content

What's hot

OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)Satoshi Shimazaki
 
Apache CloudStack -コントリビューションの手引き-
Apache CloudStack -コントリビューションの手引き-Apache CloudStack -コントリビューションの手引き-
Apache CloudStack -コントリビューションの手引き-Go Chiba
 
SDN Japan: ovs-hw
SDN Japan: ovs-hwSDN Japan: ovs-hw
SDN Japan: ovs-hwykuga
 
Webアプリケーションの無停止稼働
Webアプリケーションの無停止稼働Webアプリケーションの無停止稼働
Webアプリケーションの無停止稼働Kazuho Oku
 
Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第2回 開発編Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第2回 開発編Osamu Masutani
 
MPSoCのPLの性能について
MPSoCのPLの性能についてMPSoCのPLの性能について
MPSoCのPLの性能についてmarsee101
 
Whole Program Paths 等の紹介@PLDIr#3
Whole Program Paths 等の紹介@PLDIr#3Whole Program Paths 等の紹介@PLDIr#3
Whole Program Paths 等の紹介@PLDIr#3Masahiro Sakai
 
NetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pitokudahiroshi
 
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜 リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜 Yugo Shimizu
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
 
20180920_DBTS_PGStrom_JP
20180920_DBTS_PGStrom_JP20180920_DBTS_PGStrom_JP
20180920_DBTS_PGStrom_JPKohei KaiGai
 
Website build exercise_opsguide_japanese
Website build exercise_opsguide_japaneseWebsite build exercise_opsguide_japanese
Website build exercise_opsguide_japanesemeilai521
 
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 vswitchMasaru Oki
 
マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法Takuya ASADA
 

What's hot (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
 
マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法
 

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

GPUを用いたSSLリバースプロキシの実装についての論文を読んだ
GPUを用いたSSLリバースプロキシの実装についての論文を読んだGPUを用いたSSLリバースプロキシの実装についての論文を読んだ
GPUを用いたSSLリバースプロキシの実装についての論文を読んだy_uuki
 
pgconfasia2016 lt ssd2gpu
pgconfasia2016 lt ssd2gpupgconfasia2016 lt ssd2gpu
pgconfasia2016 lt ssd2gpuKohei KaiGai
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化Takuya ASADA
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理Takuya ASADA
 
(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速するKohei KaiGai
 
オラクルのHPC/GPUソリューションご紹介(2021/08版)
オラクルのHPC/GPUソリューションご紹介(2021/08版)オラクルのHPC/GPUソリューションご紹介(2021/08版)
オラクルのHPC/GPUソリューションご紹介(2021/08版)オラクルエンジニア通信
 
最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたものcyberagent
 
HPC 的に H100 は魅力的な GPU なのか?
HPC 的に H100 は魅力的な GPU なのか?HPC 的に H100 は魅力的な GPU なのか?
HPC 的に H100 は魅力的な GPU なのか?NVIDIA Japan
 
20210511_PGStrom_GpuCache
20210511_PGStrom_GpuCache20210511_PGStrom_GpuCache
20210511_PGStrom_GpuCacheKohei KaiGai
 
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-clusterPreferred Networks
 
20171109 Amazon EC2 GPUインスタンス最新動向 P3 instance
20171109 Amazon EC2 GPUインスタンス最新動向 P3 instance20171109 Amazon EC2 GPUインスタンス最新動向 P3 instance
20171109 Amazon EC2 GPUインスタンス最新動向 P3 instanceAmazon Web Services Japan
 
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...NTT DATA Technology & Innovation
 
20170310_InDatabaseAnalytics_#1
20170310_InDatabaseAnalytics_#120170310_InDatabaseAnalytics_#1
20170310_InDatabaseAnalytics_#1Kohei KaiGai
 
20180914 GTCJ INCEPTION HeteroDB
20180914 GTCJ INCEPTION HeteroDB20180914 GTCJ INCEPTION HeteroDB
20180914 GTCJ INCEPTION HeteroDBKohei KaiGai
 
2012 1203-researchers-cafe
2012 1203-researchers-cafe2012 1203-researchers-cafe
2012 1203-researchers-cafeToshiya Komoda
 

Similar to 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
 

Recently uploaded

ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521Satoshi Makita
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )iwashiira2ctf
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperleger Tokyo Meetup
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。iPride Co., Ltd.
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdkokinagano2
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑Akihiro Kadohata
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfTakayuki Nakayama
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)keikoitakurag
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルCRI Japan, Inc.
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員Sadaomi Nishi
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計atsushi061452
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用KLab Inc. / Tech
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一瑛一 西口
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイントonozaty
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose EstimationToru Tamaki
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdfAyachika Kitazaki
 

Recently uploaded (16)

ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 

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ベースのソフトウェアルータを示し た

Editor's Notes

  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