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

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Recently uploaded (9)

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

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