SlideShare a Scribd company logo
1 of 23
Download to read offline
An Intelligent Storage?
The PG-Strom Project
KaiGai Kohei (tw: @kkaigai)
The PG-Strom Project
自己紹介
Database Lounge Tokyo #2 - An Intelligent Storage?2
▌海外 浩平 (tw: @kkaigai)
▌PostgreSQL開発者 (約10年くらい)
▌元々は Linux kernel 開発者でも。
▌PG-Stromの開発をやっています。
 GPU使ってPostgreSQLを早くする拡張モジュール
 最近、SSDにも手を出し始める (NEW!!)
最近の興味
The PG-Strom Project
PG-Strom “v2.0” 新機能 – SSD-to-GPU Direct SQL
Database Lounge Tokyo #2 - An Intelligent Storage?
▌Challenges
 PostgreSQLのストレージ層に対する完全な透過性
 shared_buffer、filesystem、page cacheとのconsistencyが必要
▌PG-Strom v2.0に向けて
 NVMe-SSDGPU Direct DMAに対応したLinux kernelドライバ
 当該機能のPG-Strom側での対応(GpuScan、GpuJoin、GpuPreAggが対象)
 I/Oが完了したら、既にSelection、Projection、Join、Aggregation処理が済んでいる
GPU SSD
CPU + RAM
PCI-E
Table
Innertables
ofJOIN
+
③ Make result
set on GPU
① SSDGPU
direct DMA
② Execution of SQL on GPU
(Select, Projection, Join)
④ GPURAM
Data Transfer
New
Data flow
v2.0
traditional
data flow
3
The PG-Strom Project
NVIDIA GPU RDMA Direct機構 (1/2)
Database Lounge Tokyo #2 - An Intelligent Storage?
プロセス
仮想アドレス空間
物理アドレス空間
GPUデバイス
アドレス空間
256MB
PCI BAR1
領域
RAM領域
PCI-Eデバイス
アドレス空間
cuMemAlloc()...GPUデバイスメモリを割り当て
nvidia_p2p_get_pages()
GPUデバイスメモリを、ホスト側
物理アドレス空間にマッピング
DMA転送
4
The PG-Strom Project
NVIDIA GPU RDMA Direct機構 (2/2)
Database Lounge Tokyo #2 - An Intelligent Storage?
$ lspci –v
:
04:00.0 3D controller: NVIDIA Corporation GK110GL [Tesla K20c] (rev a1)
Subsystem: NVIDIA Corporation Device 0982
Flags: bus master, fast devsel, latency 0, IRQ 100
Memory at 93000000 (32-bit, non-prefetchable) [size=16M]
Memory at 33fc0000000 (64-bit, prefetchable) [size=256M] <-- ココ(!)
Memory at 33fd0000000 (64-bit, prefetchable) [size=32M]
Capabilities: <access denied>
Kernel driver in use: nvidia
:
$ nvidia-smi -q
:
FB Memory Usage
Total : 4095 MiB
Used : 15 MiB
Free : 4080 MiB
BAR1 Memory Usage
Total : 256 MiB
Used : 2 MiB
Free : 254 MiB
Compute Mode : Default
:
5
Tesla K40/K80やM40など
ハイエンド製品は、
16GB~32GB分の設定
 搭載物理メモリの全部を
一度にマップする事も可能
The PG-Strom Project
nvme_stromドライバ
(made by KaiGai)
Application
NVMe-Stromドライバ (1/3) – 概要
Database Lounge Tokyo #2 - An Intelligent Storage?
/opt/nvme/*
Filesystem
/dev/nvidia
nvidiaドライバ
RDMA
Direct
サポート
Tesla or
Quadro GPU
NVMe-SSD
open(2)DMA
要求
GPU
メモリ
cuMemAlloc()
mapping
要求
mapped
GPU
memory
devptr fdesc
/dev/nvme0n1p1
nvmeドライバ
DMA
キュー
/proc/nvme-strom
6
The PG-Strom Project
NVMe-Stromドライバ (2/3) – ioctl(2)コマンドの一覧
Database Lounge Tokyo #2 - An Intelligent Storage?
▌STROM_IOCTL__CHECK_FILE
 ターゲットファイルが SSD-to-GPU Direct DMA に対応しているかどうかを調べる。
▌STROM_IOCTL__MAP_GPU_MEMORY
 GPUメモリをホスト側物理アドレス空間にマップする。
▌STROM_IOCTL__UNMAP_GPU_MEMORY
 ホスト側物理アドレス空間からGPUメモリをアンマップする。
 なお、cuMemFree()すると勝手にアンマップされる。
▌STROM_IOCTL__LIST_GPU_MEMORY
▌STROM_IOCTL__INFO_GPU_MEMORY
 ホスト側物理アドレスにマップしたGPUメモリの情報を取得する。
▌STROM_IOCTL__MEMCPY_SSD2GPU
 SSD-to-GPU Direct DMAを使って、指定したファイルの特定領域をGPUメモリへ転送。
 同期転送モード。転送の完了までは呼び出し元には戻らない。
▌STROM_IOCTL__MEMCPY_SSD2GPU_ASYNC
 SSD-to-GPU Direct DMAを使って、指定したファイルの特定領域をGPUメモリへ転送。
 非同期転送モード。DMA要求をキューイングすると即座に復帰する。
▌STROM_IOCTL__MEMCPY_SSD2GPU_WAIT
 非同期SSD-to-GPU Direct DMAの完了を待機する。
7
The PG-Strom Project
NVMe-Stromドライバ (3/3) – 制限事項
Database Lounge Tokyo #2 - An Intelligent Storage?
▌対応環境
 ファイルシステム ... Ext4, XFS
 NVMe-SSD ... Inbox ドライバで動作する NVMe-SSD
 独自ドライバを使用する ioDrive や FlashMax はアウト。
 海外は Intel SSD 750 (400GB) にて動作確認。
 Soft-RAID ... 非対応
 現状、生デバイスの上に構築したExt4, XFSのみ。
 RAID-0やRAID-1であれば可能性あり。
▌制限事項
 転送元ファイルがOSのページキャッシュに乗っており、かつ、当該ページが
先行するI/Oによって dirty 状態である時、転送性能が極めて低下
(20~30MB/s程度; AVXレジスタ使用時でも500MB/s程度)
根本解決は、nvidiaドライバがin-kernel DMAのためのI/Fを公開する事
Dirty-Pageは仕方ないのでmemcpy()で処理するしかない。
それ以外はSSD上のデータと同一なので、OSのページキャッシュに載ってい
ても SSD-to-GPU DMA を使う事である程度回避。
8
The PG-Strom Project
ページキャッシュの取り扱いに関する課題
Database Lounge Tokyo #2 - An Intelligent Storage?
 ファイルがOSにキャッシュされている場合は RAM-to-GPU DMAが最適手段。
 kernel空間からRAM-to-GPU DMAをキックするAPIが提供されていない。
 代替手段: ioremap() + memcpy_toio() .... しかし非常に低速
 現在、NVIDIA社に問題をエスカレーション中。
PostgreSQL
shared buffer
Linux
page cache
Blocks on
NVMe SSD
block-i0 block-i1 block-i2 block-i3
GPU
device RAM
cuMemcpyHtoDAsync() SSD-to-GPU Direct DMA
ioremap() +
memcpy_toio()
9
10GB/s
2GB/s
500MB/s
The PG-Strom Project
単純I/Oにおけるパフォーマンス
Database Lounge Tokyo #2 - An Intelligent Storage?
 32MB x 6個のバッファを使用。バッファが空くたび次々に非同期DMAをキック。
 NVMe-Stromおよび、I/Oサイズ毎にVFS経由のロード+RAM2GPU DMAを3パターン。
 測定環境
 CPU: Xeon E5-2670 v3, RAM: 64GB
 Intel SSD 750 (400GB; PCI-E版)
 NVIDIA Tesla K20c (2496core; 706MHz, 5GB GDDR5; 208GB/s)
 OS: CentOS 7 (3.10.0-327.18.2.el7.x86_64), Filesystem: Ext4
カタログ
スペック!!
10
The PG-Strom Project
測定に使用したNVMe-SSD
Database Lounge Tokyo #2 - An Intelligent Storage?
容量
順次128KB
読出し
(最大MB/s)
順次128KB
書込み
(最大MB/s)
ランダム4KB
読出し
(最大IOPS)
ランダム4KB
書込み
(最大IOPS)
インターフェース
400GB 2,200 900 430,000 230,000 PCIe 3.0 x4
800GB 2,100 800 420,000 210,000 PCIe 3.0 x4
1.2TB 2,500 1,200 460,000 290,000 PCIe 3.0 x4
出展: Intel社ウェブサイトより
http://www.intel.co.jp/content/www/jp/ja/solid-state-drives/solid-state-drives-750-series.html
11
The PG-Strom Project
参考) VFSのパフォーマンス
Database Lounge Tokyo #2 - An Intelligent Storage?
 ファイルシステムを介してSSD上のブロックをCPU/RAMにロードした時のスループット
 dd if=/opt/nvme/100GB of=/dev/null bs=XXX (iflag=direct)
 I/Oサイズ毎に32MB, 32KB, 8KBの3種類。およびDirect I/Oのケースでトライ
12
The PG-Strom Project
PG-Strom環境下におけるパフォーマンス (1/2)
Database Lounge Tokyo #2 - An Intelligent Storage?
▌測定条件
 NVMe-SSDデバイス上に格納した 64GB / 7億行の単純テーブルに対し、以下の3クエリを実行
 Q1: 比較的単純な条件句を含むスキャンクエリ
 Q2: 比較的複雑な条件句を含むスキャンクエリ
 Q3: 文字列マッチングを含むスキャンクエリ
13
The PG-Strom Project
PG-Strom環境下におけるパフォーマンス (2/2)
Database Lounge Tokyo #2 - An Intelligent Storage?
▌測定結果より読み取れる事
 従来の性能限界 ... 64GB / 140sec = 468MB/s
 Raw-I/Oのスループット (587.37MB/s) に、その他の処理で20%が載った程度?
 NVMe-Strom適用による効果
 Q1の処理スループット 64GB / 43sec = 1524MB/s
 理論帯域2200MB/sなので、CPU+GPUハイブリッド並列の2並列で帯域を使い切れそう。
14
従来の
性能限界
The PG-Strom Project
参考) 測定に使用したテーブル定義、クエリ
Database Lounge Tokyo #2 - An Intelligent Storage?
CREATE TABLE t_64g (id int not null,
x float not null,
y float not null,
z float not null,
memo text);
INSERT INTO t_64g (SELECT x, random()*1000, random()*1000,
random()*1000, md5(x::text)
FROM generate_series(1,700000000) x);
postgres=# ¥d+
List of relations
Schema | Name | Type | Owner | Size | Description
--------+------------------+-------+--------+---------+-------------
public | t | table | kaigai | 965 MB |
public | t_64g | table | kaigai | 66 GB |
Query-1) 比較的単純な条件句を含むスキャンクエリ
SELECT * FROM t WHERE x BETWEEN y-2 AND y+2;
Query-2) 比較的複雑な条件句を含むスキャンクエリ
SELECT * FROM t_64g WHERE sqrt((x-200)^2 + (y-300)^2 +
(z-400)^2) < 10;
Query-3) 文字列マッチングを含むスキャンクエリ
SELECT * FROM t WHERE memo LIKE '%abcd%';
15
The PG-Strom Project
PCI-E
CPUから見た光景
Database Lounge Tokyo #2 - An Intelligent Storage?
周辺機器
【周辺機器への要求】
SSDのセクタ番号100~199を
読み出して、その中から、
x LIKE ‘%hoge%’
を満たすレコードだけを返し
てほしい。
オイラはPostgreSQLの
データ形式を解釈して
レコードを評価するよ 拙者、セクタ番号
100~199を
読み出すでござる。
b c xa
abchoge
xyhogez
hoge
hogehoge
:
:
:
実行結果
▌SSDとGPUのペアを、PCI-Eバスの先に繋がった一つのストレージシステムと
見なせば、SQL由来のバイナリをGPUで実行、前処理を行う。
 あたかもストレージがSQLを理解して動作するかのように見える。
16
キタ━━━━(゚∀゚)━━━━!!!!
The PG-Strom Project
【拡散希望】 – ユーザを探しています。
Database Lounge Tokyo #2 - An Intelligent Storage?17
▌試用ユーザ募集中
 GPUを活用した高速 In-database Analytics/Computing に興味のある方。
 教師なし学習アルゴリズム (非階層/階層型クラスタリング) を実装し、実データによる
評価を行いたい。
 評価環境の提供と、アルゴリズムの実装はPG-Stromプロジェクトで実施。
ワークロードと評価用データをご提供いただける方を探しています。
 評価環境: CPU: E5-2670v3 x2, RAM: 384GB, GPU: Tesla K20 or GTX1080
CREATE FUNCTION kmeans(matrix, int)
RETURNS vector
AS $$
$$ LANGUAGE ‘plcuda’;
User define CUDA logic
(通常のSQL関数として記述可能)
User defined
CUDA code
PG-Strom’s matrix
support routines
GPU Kernel for
SQL function
‘kmeans()’
実行時ビルド
PG-Strom
Input
buffer
Output
buffer
SQL関数実行結果
matrixのロード
ユーザCUDAロジックの定義:
The PG-Strom Project
今後の展望
Database Lounge Tokyo #2 - An Intelligent Storage?
PostgreSQL, being the top runner of heterogeneous era
NVMe-Strom
SSDGPUの
ダイレクトDMA
PG-Strom
SQLワークロードの
“超”並列実行
 WHERE句
 JOIN
 GROUP BY
 PROJECTION
設計・開発中(?)
トランザクション
ログの高速書き出し
PL/CUDA
HPC水準の計算能力による
In-database Analytics
18
チョットオマケ
The PG-Strom Project
Block Device Driver
一般的なトランザクションログの書き出し
Database Lounge Tokyo #2 - An Intelligent Storage?19
Storage Controller
DMA Buffer
FilesystemPage Cache
PostgreSQLWAL Buffer
File + offset, length  Get Block Numbers
write(2)
Submit DMA Requests
Transaction Logs
fsync(2)
The PG-Strom Project
Block Device
Driver
アイデア: Zero-copy WAL write with NVMe-SSD
Database Lounge Tokyo #2 - An Intelligent Storage?20
Storage Controller
Filesystem
PostgreSQLWAL Buffer
Get Block Numbers
Submit DMA Requests
Transaction Logs
Enqueue DMA Requests
ioctl(2)
DMA Buffer
KaiGai’s
Kernel
Module
ioctl
handler
WRITE & FLUSH
commands
make it persistent
The PG-Strom Project
NVMe-SSDはいいぞ。
Database Lounge Tokyo #2 - An Intelligent Storage?21
 pgbench使用。スケールファクタ=1024、クライアント数を1~1000まで増加。3回の中央値。
 CPU: E5-2670v3 (22C, 2.3GHz)、RAM: 384GB
 SSD: Intel SSD 750 (400GB)
 HDD: SAS 300GB (10krpm; RAID5 x8)
The PG-Strom Project
更なる性能向上はあり得るか?
Database Lounge Tokyo #2 - An Intelligent Storage?22
 トランザクションログ書き出しの有無で 50% の性能差
 では、もしトランザクションログ書き出しの性能(レイテンシ)を限りなく 0 に近付ける
事ができたら?
 何か面白そうな事ができそうな気がします。:-)
An Intelligent Storage?

More Related Content

What's hot

(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速するKohei KaiGai
 
20210511_PGStrom_GpuCache
20210511_PGStrom_GpuCache20210511_PGStrom_GpuCache
20210511_PGStrom_GpuCacheKohei KaiGai
 
20210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.020210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.0Kohei KaiGai
 
20200828_OSCKyoto_Online
20200828_OSCKyoto_Online20200828_OSCKyoto_Online
20200828_OSCKyoto_OnlineKohei KaiGai
 
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]Kohei KaiGai
 
20190418_PGStrom_on_ArrowFdw
20190418_PGStrom_on_ArrowFdw20190418_PGStrom_on_ArrowFdw
20190418_PGStrom_on_ArrowFdwKohei KaiGai
 
[20170922 Sapporo Tech Bar] 地図用データを高速処理!オープンソースGPUデータベースMapDってどんなもの?? by 株式会社...
[20170922 Sapporo Tech Bar] 地図用データを高速処理!オープンソースGPUデータベースMapDってどんなもの?? by 株式会社...[20170922 Sapporo Tech Bar] 地図用データを高速処理!オープンソースGPUデータベースMapDってどんなもの?? by 株式会社...
[20170922 Sapporo Tech Bar] 地図用データを高速処理!オープンソースGPUデータベースMapDってどんなもの?? by 株式会社...Insight Technology, Inc.
 
20211112_jpugcon_gpu_and_arrow
20211112_jpugcon_gpu_and_arrow20211112_jpugcon_gpu_and_arrow
20211112_jpugcon_gpu_and_arrowKohei KaiGai
 
Do postgres-dream-of-graph-database
Do postgres-dream-of-graph-databaseDo postgres-dream-of-graph-database
Do postgres-dream-of-graph-databaseToshi Harada
 
20200806_PGStrom_PostGIS_GstoreFdw
20200806_PGStrom_PostGIS_GstoreFdw20200806_PGStrom_PostGIS_GstoreFdw
20200806_PGStrom_PostGIS_GstoreFdwKohei KaiGai
 
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
20181211 - PGconf.ASIA - NVMESSD&GPU for BigDataKohei KaiGai
 
20170726 py data.tokyo
20170726 py data.tokyo20170726 py data.tokyo
20170726 py data.tokyoManaMurakami1
 
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】Kohei KaiGai
 
20171220_hbstudy80_pgstrom
20171220_hbstudy80_pgstrom20171220_hbstudy80_pgstrom
20171220_hbstudy80_pgstromKohei KaiGai
 
20191115-PGconf.Japan
20191115-PGconf.Japan20191115-PGconf.Japan
20191115-PGconf.JapanKohei KaiGai
 
Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6Toshi Harada
 
20171212_GTCJapan_InceptionSummt_HeteroDB
20171212_GTCJapan_InceptionSummt_HeteroDB20171212_GTCJapan_InceptionSummt_HeteroDB
20171212_GTCJapan_InceptionSummt_HeteroDBKohei KaiGai
 
NVIDIA TESLA V100・CUDA 9 のご紹介
NVIDIA TESLA V100・CUDA 9 のご紹介NVIDIA TESLA V100・CUDA 9 のご紹介
NVIDIA TESLA V100・CUDA 9 のご紹介NVIDIA Japan
 
20180217 FPGA Extreme Computing #10
20180217 FPGA Extreme Computing #1020180217 FPGA Extreme Computing #10
20180217 FPGA Extreme Computing #10Kohei KaiGai
 
20201113_PGconf_Japan_GPU_PostGIS
20201113_PGconf_Japan_GPU_PostGIS20201113_PGconf_Japan_GPU_PostGIS
20201113_PGconf_Japan_GPU_PostGISKohei KaiGai
 

What's hot (20)

(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する
 
20210511_PGStrom_GpuCache
20210511_PGStrom_GpuCache20210511_PGStrom_GpuCache
20210511_PGStrom_GpuCache
 
20210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.020210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.0
 
20200828_OSCKyoto_Online
20200828_OSCKyoto_Online20200828_OSCKyoto_Online
20200828_OSCKyoto_Online
 
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
 
20190418_PGStrom_on_ArrowFdw
20190418_PGStrom_on_ArrowFdw20190418_PGStrom_on_ArrowFdw
20190418_PGStrom_on_ArrowFdw
 
[20170922 Sapporo Tech Bar] 地図用データを高速処理!オープンソースGPUデータベースMapDってどんなもの?? by 株式会社...
[20170922 Sapporo Tech Bar] 地図用データを高速処理!オープンソースGPUデータベースMapDってどんなもの?? by 株式会社...[20170922 Sapporo Tech Bar] 地図用データを高速処理!オープンソースGPUデータベースMapDってどんなもの?? by 株式会社...
[20170922 Sapporo Tech Bar] 地図用データを高速処理!オープンソースGPUデータベースMapDってどんなもの?? by 株式会社...
 
20211112_jpugcon_gpu_and_arrow
20211112_jpugcon_gpu_and_arrow20211112_jpugcon_gpu_and_arrow
20211112_jpugcon_gpu_and_arrow
 
Do postgres-dream-of-graph-database
Do postgres-dream-of-graph-databaseDo postgres-dream-of-graph-database
Do postgres-dream-of-graph-database
 
20200806_PGStrom_PostGIS_GstoreFdw
20200806_PGStrom_PostGIS_GstoreFdw20200806_PGStrom_PostGIS_GstoreFdw
20200806_PGStrom_PostGIS_GstoreFdw
 
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
 
20170726 py data.tokyo
20170726 py data.tokyo20170726 py data.tokyo
20170726 py data.tokyo
 
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
 
20171220_hbstudy80_pgstrom
20171220_hbstudy80_pgstrom20171220_hbstudy80_pgstrom
20171220_hbstudy80_pgstrom
 
20191115-PGconf.Japan
20191115-PGconf.Japan20191115-PGconf.Japan
20191115-PGconf.Japan
 
Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6
 
20171212_GTCJapan_InceptionSummt_HeteroDB
20171212_GTCJapan_InceptionSummt_HeteroDB20171212_GTCJapan_InceptionSummt_HeteroDB
20171212_GTCJapan_InceptionSummt_HeteroDB
 
NVIDIA TESLA V100・CUDA 9 のご紹介
NVIDIA TESLA V100・CUDA 9 のご紹介NVIDIA TESLA V100・CUDA 9 のご紹介
NVIDIA TESLA V100・CUDA 9 のご紹介
 
20180217 FPGA Extreme Computing #10
20180217 FPGA Extreme Computing #1020180217 FPGA Extreme Computing #10
20180217 FPGA Extreme Computing #10
 
20201113_PGconf_Japan_GPU_PostGIS
20201113_PGconf_Japan_GPU_PostGIS20201113_PGconf_Japan_GPU_PostGIS
20201113_PGconf_Japan_GPU_PostGIS
 

Similar to An Intelligent Storage?

Fusion-io(ioDrive) benchmarking #sfstudy 01 LT
Fusion-io(ioDrive) benchmarking #sfstudy 01 LTFusion-io(ioDrive) benchmarking #sfstudy 01 LT
Fusion-io(ioDrive) benchmarking #sfstudy 01 LTMasahito Zembutsu
 
Snr005 レノボだから実現
Snr005 レノボだから実現Snr005 レノボだから実現
Snr005 レノボだから実現Tech Summit 2016
 
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみたNissho Lab
 
Cld002 windows server_2016_で作るシンプ
Cld002 windows server_2016_で作るシンプCld002 windows server_2016_で作るシンプ
Cld002 windows server_2016_で作るシンプTech Summit 2016
 
GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価
GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価
GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価Koichi Shirahata
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストールYasuhiro Arai
 
OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)Satoshi Shimazaki
 
Azure Stack 受け入れ準備_20180630
Azure Stack 受け入れ準備_20180630Azure Stack 受け入れ準備_20180630
Azure Stack 受け入れ準備_20180630Hiroshi Matsumoto
 
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Takamasa Maejima
 
[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...
[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...
[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...Insight Technology, Inc.
 
Sheepdogを使ってみて分かったこと(第六回ストレージ研究会発表資料)
Sheepdogを使ってみて分かったこと(第六回ストレージ研究会発表資料)Sheepdogを使ってみて分かったこと(第六回ストレージ研究会発表資料)
Sheepdogを使ってみて分かったこと(第六回ストレージ研究会発表資料)Masahiro Tsuji
 
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018Toru Makabe
 
Crooz meet fusion io3 open
Crooz meet fusion io3 openCrooz meet fusion io3 open
Crooz meet fusion io3 opentakaoka susumu
 
TripleOの光と闇
TripleOの光と闇TripleOの光と闇
TripleOの光と闇Manabu Ori
 
[INSIGHT OUT 2011] B32 open hardwareの夜明け pci express 3・infiniband fdrの登場(yama...
[INSIGHT OUT 2011] B32 open hardwareの夜明け pci express 3・infiniband fdrの登場(yama...[INSIGHT OUT 2011] B32 open hardwareの夜明け pci express 3・infiniband fdrの登場(yama...
[INSIGHT OUT 2011] B32 open hardwareの夜明け pci express 3・infiniband fdrの登場(yama...Insight Technology, Inc.
 
20170421 tensor flowusergroup
20170421 tensor flowusergroup20170421 tensor flowusergroup
20170421 tensor flowusergroupManaMurakami1
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門NVIDIA Japan
 
インフラ野郎AzureチームProX
インフラ野郎AzureチームProXインフラ野郎AzureチームProX
インフラ野郎AzureチームProXToru Makabe
 
NVIDIA Japan Seminar 2012
NVIDIA Japan Seminar 2012NVIDIA Japan Seminar 2012
NVIDIA Japan Seminar 2012Takuro Iizuka
 
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_TokyoKohei KaiGai
 

Similar to An Intelligent Storage? (20)

Fusion-io(ioDrive) benchmarking #sfstudy 01 LT
Fusion-io(ioDrive) benchmarking #sfstudy 01 LTFusion-io(ioDrive) benchmarking #sfstudy 01 LT
Fusion-io(ioDrive) benchmarking #sfstudy 01 LT
 
Snr005 レノボだから実現
Snr005 レノボだから実現Snr005 レノボだから実現
Snr005 レノボだから実現
 
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
 
Cld002 windows server_2016_で作るシンプ
Cld002 windows server_2016_で作るシンプCld002 windows server_2016_で作るシンプ
Cld002 windows server_2016_で作るシンプ
 
GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価
GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価
GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 
OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)
 
Azure Stack 受け入れ準備_20180630
Azure Stack 受け入れ準備_20180630Azure Stack 受け入れ準備_20180630
Azure Stack 受け入れ準備_20180630
 
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
 
[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...
[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...
[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...
 
Sheepdogを使ってみて分かったこと(第六回ストレージ研究会発表資料)
Sheepdogを使ってみて分かったこと(第六回ストレージ研究会発表資料)Sheepdogを使ってみて分かったこと(第六回ストレージ研究会発表資料)
Sheepdogを使ってみて分かったこと(第六回ストレージ研究会発表資料)
 
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
 
Crooz meet fusion io3 open
Crooz meet fusion io3 openCrooz meet fusion io3 open
Crooz meet fusion io3 open
 
TripleOの光と闇
TripleOの光と闇TripleOの光と闇
TripleOの光と闇
 
[INSIGHT OUT 2011] B32 open hardwareの夜明け pci express 3・infiniband fdrの登場(yama...
[INSIGHT OUT 2011] B32 open hardwareの夜明け pci express 3・infiniband fdrの登場(yama...[INSIGHT OUT 2011] B32 open hardwareの夜明け pci express 3・infiniband fdrの登場(yama...
[INSIGHT OUT 2011] B32 open hardwareの夜明け pci express 3・infiniband fdrの登場(yama...
 
20170421 tensor flowusergroup
20170421 tensor flowusergroup20170421 tensor flowusergroup
20170421 tensor flowusergroup
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門
 
インフラ野郎AzureチームProX
インフラ野郎AzureチームProXインフラ野郎AzureチームProX
インフラ野郎AzureチームProX
 
NVIDIA Japan Seminar 2012
NVIDIA Japan Seminar 2012NVIDIA Japan Seminar 2012
NVIDIA Japan Seminar 2012
 
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo
 

More from Kohei KaiGai

20221116_DBTS_PGStrom_History
20221116_DBTS_PGStrom_History20221116_DBTS_PGStrom_History
20221116_DBTS_PGStrom_HistoryKohei KaiGai
 
20221111_JPUG_CustomScan_API
20221111_JPUG_CustomScan_API20221111_JPUG_CustomScan_API
20221111_JPUG_CustomScan_APIKohei KaiGai
 
20210928_pgunconf_hll_count
20210928_pgunconf_hll_count20210928_pgunconf_hll_count
20210928_pgunconf_hll_countKohei KaiGai
 
20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_Index20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_IndexKohei KaiGai
 
20201128_OSC_Fukuoka_Online_GPUPostGIS
20201128_OSC_Fukuoka_Online_GPUPostGIS20201128_OSC_Fukuoka_Online_GPUPostGIS
20201128_OSC_Fukuoka_Online_GPUPostGISKohei KaiGai
 
20201006_PGconf_Online_Large_Data_Processing
20201006_PGconf_Online_Large_Data_Processing20201006_PGconf_Online_Large_Data_Processing
20201006_PGconf_Online_Large_Data_ProcessingKohei KaiGai
 
20200424_Writable_Arrow_Fdw
20200424_Writable_Arrow_Fdw20200424_Writable_Arrow_Fdw
20200424_Writable_Arrow_FdwKohei KaiGai
 
20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_BetaKohei KaiGai
 
20190925_DBTS_PGStrom
20190925_DBTS_PGStrom20190925_DBTS_PGStrom
20190925_DBTS_PGStromKohei KaiGai
 
20190909_PGconf.ASIA_KaiGai
20190909_PGconf.ASIA_KaiGai20190909_PGconf.ASIA_KaiGai
20190909_PGconf.ASIA_KaiGaiKohei KaiGai
 
20190516_DLC10_PGStrom
20190516_DLC10_PGStrom20190516_DLC10_PGStrom
20190516_DLC10_PGStromKohei KaiGai
 
20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_FdwKohei KaiGai
 
20181212 - PGconfASIA - LT - English
20181212 - PGconfASIA - LT - English20181212 - PGconfASIA - LT - English
20181212 - PGconfASIA - LT - EnglishKohei KaiGai
 
20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LT20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LTKohei KaiGai
 
20181210 - PGconf.ASIA Unconference
20181210 - PGconf.ASIA Unconference20181210 - PGconf.ASIA Unconference
20181210 - PGconf.ASIA UnconferenceKohei KaiGai
 
20181116 Massive Log Processing using I/O optimized PostgreSQL
20181116 Massive Log Processing using I/O optimized PostgreSQL20181116 Massive Log Processing using I/O optimized PostgreSQL
20181116 Massive Log Processing using I/O optimized PostgreSQLKohei KaiGai
 
20181016_pgconfeu_ssd2gpu_multi
20181016_pgconfeu_ssd2gpu_multi20181016_pgconfeu_ssd2gpu_multi
20181016_pgconfeu_ssd2gpu_multiKohei KaiGai
 
20181025_pgconfeu_lt_gstorefdw
20181025_pgconfeu_lt_gstorefdw20181025_pgconfeu_lt_gstorefdw
20181025_pgconfeu_lt_gstorefdwKohei KaiGai
 
20180920_DBTS_PGStrom_EN
20180920_DBTS_PGStrom_EN20180920_DBTS_PGStrom_EN
20180920_DBTS_PGStrom_ENKohei KaiGai
 
20180920_DBTS_PGStrom_JP
20180920_DBTS_PGStrom_JP20180920_DBTS_PGStrom_JP
20180920_DBTS_PGStrom_JPKohei KaiGai
 

More from Kohei KaiGai (20)

20221116_DBTS_PGStrom_History
20221116_DBTS_PGStrom_History20221116_DBTS_PGStrom_History
20221116_DBTS_PGStrom_History
 
20221111_JPUG_CustomScan_API
20221111_JPUG_CustomScan_API20221111_JPUG_CustomScan_API
20221111_JPUG_CustomScan_API
 
20210928_pgunconf_hll_count
20210928_pgunconf_hll_count20210928_pgunconf_hll_count
20210928_pgunconf_hll_count
 
20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_Index20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_Index
 
20201128_OSC_Fukuoka_Online_GPUPostGIS
20201128_OSC_Fukuoka_Online_GPUPostGIS20201128_OSC_Fukuoka_Online_GPUPostGIS
20201128_OSC_Fukuoka_Online_GPUPostGIS
 
20201006_PGconf_Online_Large_Data_Processing
20201006_PGconf_Online_Large_Data_Processing20201006_PGconf_Online_Large_Data_Processing
20201006_PGconf_Online_Large_Data_Processing
 
20200424_Writable_Arrow_Fdw
20200424_Writable_Arrow_Fdw20200424_Writable_Arrow_Fdw
20200424_Writable_Arrow_Fdw
 
20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta
 
20190925_DBTS_PGStrom
20190925_DBTS_PGStrom20190925_DBTS_PGStrom
20190925_DBTS_PGStrom
 
20190909_PGconf.ASIA_KaiGai
20190909_PGconf.ASIA_KaiGai20190909_PGconf.ASIA_KaiGai
20190909_PGconf.ASIA_KaiGai
 
20190516_DLC10_PGStrom
20190516_DLC10_PGStrom20190516_DLC10_PGStrom
20190516_DLC10_PGStrom
 
20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw
 
20181212 - PGconfASIA - LT - English
20181212 - PGconfASIA - LT - English20181212 - PGconfASIA - LT - English
20181212 - PGconfASIA - LT - English
 
20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LT20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LT
 
20181210 - PGconf.ASIA Unconference
20181210 - PGconf.ASIA Unconference20181210 - PGconf.ASIA Unconference
20181210 - PGconf.ASIA Unconference
 
20181116 Massive Log Processing using I/O optimized PostgreSQL
20181116 Massive Log Processing using I/O optimized PostgreSQL20181116 Massive Log Processing using I/O optimized PostgreSQL
20181116 Massive Log Processing using I/O optimized PostgreSQL
 
20181016_pgconfeu_ssd2gpu_multi
20181016_pgconfeu_ssd2gpu_multi20181016_pgconfeu_ssd2gpu_multi
20181016_pgconfeu_ssd2gpu_multi
 
20181025_pgconfeu_lt_gstorefdw
20181025_pgconfeu_lt_gstorefdw20181025_pgconfeu_lt_gstorefdw
20181025_pgconfeu_lt_gstorefdw
 
20180920_DBTS_PGStrom_EN
20180920_DBTS_PGStrom_EN20180920_DBTS_PGStrom_EN
20180920_DBTS_PGStrom_EN
 
20180920_DBTS_PGStrom_JP
20180920_DBTS_PGStrom_JP20180920_DBTS_PGStrom_JP
20180920_DBTS_PGStrom_JP
 

Recently uploaded

論文紹介: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
 
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.
 
論文紹介: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
 
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
 
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
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 

Recently uploaded (10)

論文紹介: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
 
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 の勉強会で発表されたものです
 
論文紹介: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
 
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」の紹介
 
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
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 

An Intelligent Storage?

  • 1. An Intelligent Storage? The PG-Strom Project KaiGai Kohei (tw: @kkaigai)
  • 2. The PG-Strom Project 自己紹介 Database Lounge Tokyo #2 - An Intelligent Storage?2 ▌海外 浩平 (tw: @kkaigai) ▌PostgreSQL開発者 (約10年くらい) ▌元々は Linux kernel 開発者でも。 ▌PG-Stromの開発をやっています。  GPU使ってPostgreSQLを早くする拡張モジュール  最近、SSDにも手を出し始める (NEW!!) 最近の興味
  • 3. The PG-Strom Project PG-Strom “v2.0” 新機能 – SSD-to-GPU Direct SQL Database Lounge Tokyo #2 - An Intelligent Storage? ▌Challenges  PostgreSQLのストレージ層に対する完全な透過性  shared_buffer、filesystem、page cacheとのconsistencyが必要 ▌PG-Strom v2.0に向けて  NVMe-SSDGPU Direct DMAに対応したLinux kernelドライバ  当該機能のPG-Strom側での対応(GpuScan、GpuJoin、GpuPreAggが対象)  I/Oが完了したら、既にSelection、Projection、Join、Aggregation処理が済んでいる GPU SSD CPU + RAM PCI-E Table Innertables ofJOIN + ③ Make result set on GPU ① SSDGPU direct DMA ② Execution of SQL on GPU (Select, Projection, Join) ④ GPURAM Data Transfer New Data flow v2.0 traditional data flow 3
  • 4. The PG-Strom Project NVIDIA GPU RDMA Direct機構 (1/2) Database Lounge Tokyo #2 - An Intelligent Storage? プロセス 仮想アドレス空間 物理アドレス空間 GPUデバイス アドレス空間 256MB PCI BAR1 領域 RAM領域 PCI-Eデバイス アドレス空間 cuMemAlloc()...GPUデバイスメモリを割り当て nvidia_p2p_get_pages() GPUデバイスメモリを、ホスト側 物理アドレス空間にマッピング DMA転送 4
  • 5. The PG-Strom Project NVIDIA GPU RDMA Direct機構 (2/2) Database Lounge Tokyo #2 - An Intelligent Storage? $ lspci –v : 04:00.0 3D controller: NVIDIA Corporation GK110GL [Tesla K20c] (rev a1) Subsystem: NVIDIA Corporation Device 0982 Flags: bus master, fast devsel, latency 0, IRQ 100 Memory at 93000000 (32-bit, non-prefetchable) [size=16M] Memory at 33fc0000000 (64-bit, prefetchable) [size=256M] <-- ココ(!) Memory at 33fd0000000 (64-bit, prefetchable) [size=32M] Capabilities: <access denied> Kernel driver in use: nvidia : $ nvidia-smi -q : FB Memory Usage Total : 4095 MiB Used : 15 MiB Free : 4080 MiB BAR1 Memory Usage Total : 256 MiB Used : 2 MiB Free : 254 MiB Compute Mode : Default : 5 Tesla K40/K80やM40など ハイエンド製品は、 16GB~32GB分の設定  搭載物理メモリの全部を 一度にマップする事も可能
  • 6. The PG-Strom Project nvme_stromドライバ (made by KaiGai) Application NVMe-Stromドライバ (1/3) – 概要 Database Lounge Tokyo #2 - An Intelligent Storage? /opt/nvme/* Filesystem /dev/nvidia nvidiaドライバ RDMA Direct サポート Tesla or Quadro GPU NVMe-SSD open(2)DMA 要求 GPU メモリ cuMemAlloc() mapping 要求 mapped GPU memory devptr fdesc /dev/nvme0n1p1 nvmeドライバ DMA キュー /proc/nvme-strom 6
  • 7. The PG-Strom Project NVMe-Stromドライバ (2/3) – ioctl(2)コマンドの一覧 Database Lounge Tokyo #2 - An Intelligent Storage? ▌STROM_IOCTL__CHECK_FILE  ターゲットファイルが SSD-to-GPU Direct DMA に対応しているかどうかを調べる。 ▌STROM_IOCTL__MAP_GPU_MEMORY  GPUメモリをホスト側物理アドレス空間にマップする。 ▌STROM_IOCTL__UNMAP_GPU_MEMORY  ホスト側物理アドレス空間からGPUメモリをアンマップする。  なお、cuMemFree()すると勝手にアンマップされる。 ▌STROM_IOCTL__LIST_GPU_MEMORY ▌STROM_IOCTL__INFO_GPU_MEMORY  ホスト側物理アドレスにマップしたGPUメモリの情報を取得する。 ▌STROM_IOCTL__MEMCPY_SSD2GPU  SSD-to-GPU Direct DMAを使って、指定したファイルの特定領域をGPUメモリへ転送。  同期転送モード。転送の完了までは呼び出し元には戻らない。 ▌STROM_IOCTL__MEMCPY_SSD2GPU_ASYNC  SSD-to-GPU Direct DMAを使って、指定したファイルの特定領域をGPUメモリへ転送。  非同期転送モード。DMA要求をキューイングすると即座に復帰する。 ▌STROM_IOCTL__MEMCPY_SSD2GPU_WAIT  非同期SSD-to-GPU Direct DMAの完了を待機する。 7
  • 8. The PG-Strom Project NVMe-Stromドライバ (3/3) – 制限事項 Database Lounge Tokyo #2 - An Intelligent Storage? ▌対応環境  ファイルシステム ... Ext4, XFS  NVMe-SSD ... Inbox ドライバで動作する NVMe-SSD  独自ドライバを使用する ioDrive や FlashMax はアウト。  海外は Intel SSD 750 (400GB) にて動作確認。  Soft-RAID ... 非対応  現状、生デバイスの上に構築したExt4, XFSのみ。  RAID-0やRAID-1であれば可能性あり。 ▌制限事項  転送元ファイルがOSのページキャッシュに乗っており、かつ、当該ページが 先行するI/Oによって dirty 状態である時、転送性能が極めて低下 (20~30MB/s程度; AVXレジスタ使用時でも500MB/s程度) 根本解決は、nvidiaドライバがin-kernel DMAのためのI/Fを公開する事 Dirty-Pageは仕方ないのでmemcpy()で処理するしかない。 それ以外はSSD上のデータと同一なので、OSのページキャッシュに載ってい ても SSD-to-GPU DMA を使う事である程度回避。 8
  • 9. The PG-Strom Project ページキャッシュの取り扱いに関する課題 Database Lounge Tokyo #2 - An Intelligent Storage?  ファイルがOSにキャッシュされている場合は RAM-to-GPU DMAが最適手段。  kernel空間からRAM-to-GPU DMAをキックするAPIが提供されていない。  代替手段: ioremap() + memcpy_toio() .... しかし非常に低速  現在、NVIDIA社に問題をエスカレーション中。 PostgreSQL shared buffer Linux page cache Blocks on NVMe SSD block-i0 block-i1 block-i2 block-i3 GPU device RAM cuMemcpyHtoDAsync() SSD-to-GPU Direct DMA ioremap() + memcpy_toio() 9 10GB/s 2GB/s 500MB/s
  • 10. The PG-Strom Project 単純I/Oにおけるパフォーマンス Database Lounge Tokyo #2 - An Intelligent Storage?  32MB x 6個のバッファを使用。バッファが空くたび次々に非同期DMAをキック。  NVMe-Stromおよび、I/Oサイズ毎にVFS経由のロード+RAM2GPU DMAを3パターン。  測定環境  CPU: Xeon E5-2670 v3, RAM: 64GB  Intel SSD 750 (400GB; PCI-E版)  NVIDIA Tesla K20c (2496core; 706MHz, 5GB GDDR5; 208GB/s)  OS: CentOS 7 (3.10.0-327.18.2.el7.x86_64), Filesystem: Ext4 カタログ スペック!! 10
  • 11. The PG-Strom Project 測定に使用したNVMe-SSD Database Lounge Tokyo #2 - An Intelligent Storage? 容量 順次128KB 読出し (最大MB/s) 順次128KB 書込み (最大MB/s) ランダム4KB 読出し (最大IOPS) ランダム4KB 書込み (最大IOPS) インターフェース 400GB 2,200 900 430,000 230,000 PCIe 3.0 x4 800GB 2,100 800 420,000 210,000 PCIe 3.0 x4 1.2TB 2,500 1,200 460,000 290,000 PCIe 3.0 x4 出展: Intel社ウェブサイトより http://www.intel.co.jp/content/www/jp/ja/solid-state-drives/solid-state-drives-750-series.html 11
  • 12. The PG-Strom Project 参考) VFSのパフォーマンス Database Lounge Tokyo #2 - An Intelligent Storage?  ファイルシステムを介してSSD上のブロックをCPU/RAMにロードした時のスループット  dd if=/opt/nvme/100GB of=/dev/null bs=XXX (iflag=direct)  I/Oサイズ毎に32MB, 32KB, 8KBの3種類。およびDirect I/Oのケースでトライ 12
  • 13. The PG-Strom Project PG-Strom環境下におけるパフォーマンス (1/2) Database Lounge Tokyo #2 - An Intelligent Storage? ▌測定条件  NVMe-SSDデバイス上に格納した 64GB / 7億行の単純テーブルに対し、以下の3クエリを実行  Q1: 比較的単純な条件句を含むスキャンクエリ  Q2: 比較的複雑な条件句を含むスキャンクエリ  Q3: 文字列マッチングを含むスキャンクエリ 13
  • 14. The PG-Strom Project PG-Strom環境下におけるパフォーマンス (2/2) Database Lounge Tokyo #2 - An Intelligent Storage? ▌測定結果より読み取れる事  従来の性能限界 ... 64GB / 140sec = 468MB/s  Raw-I/Oのスループット (587.37MB/s) に、その他の処理で20%が載った程度?  NVMe-Strom適用による効果  Q1の処理スループット 64GB / 43sec = 1524MB/s  理論帯域2200MB/sなので、CPU+GPUハイブリッド並列の2並列で帯域を使い切れそう。 14 従来の 性能限界
  • 15. The PG-Strom Project 参考) 測定に使用したテーブル定義、クエリ Database Lounge Tokyo #2 - An Intelligent Storage? CREATE TABLE t_64g (id int not null, x float not null, y float not null, z float not null, memo text); INSERT INTO t_64g (SELECT x, random()*1000, random()*1000, random()*1000, md5(x::text) FROM generate_series(1,700000000) x); postgres=# ¥d+ List of relations Schema | Name | Type | Owner | Size | Description --------+------------------+-------+--------+---------+------------- public | t | table | kaigai | 965 MB | public | t_64g | table | kaigai | 66 GB | Query-1) 比較的単純な条件句を含むスキャンクエリ SELECT * FROM t WHERE x BETWEEN y-2 AND y+2; Query-2) 比較的複雑な条件句を含むスキャンクエリ SELECT * FROM t_64g WHERE sqrt((x-200)^2 + (y-300)^2 + (z-400)^2) < 10; Query-3) 文字列マッチングを含むスキャンクエリ SELECT * FROM t WHERE memo LIKE '%abcd%'; 15
  • 16. The PG-Strom Project PCI-E CPUから見た光景 Database Lounge Tokyo #2 - An Intelligent Storage? 周辺機器 【周辺機器への要求】 SSDのセクタ番号100~199を 読み出して、その中から、 x LIKE ‘%hoge%’ を満たすレコードだけを返し てほしい。 オイラはPostgreSQLの データ形式を解釈して レコードを評価するよ 拙者、セクタ番号 100~199を 読み出すでござる。 b c xa abchoge xyhogez hoge hogehoge : : : 実行結果 ▌SSDとGPUのペアを、PCI-Eバスの先に繋がった一つのストレージシステムと 見なせば、SQL由来のバイナリをGPUで実行、前処理を行う。  あたかもストレージがSQLを理解して動作するかのように見える。 16 キタ━━━━(゚∀゚)━━━━!!!!
  • 17. The PG-Strom Project 【拡散希望】 – ユーザを探しています。 Database Lounge Tokyo #2 - An Intelligent Storage?17 ▌試用ユーザ募集中  GPUを活用した高速 In-database Analytics/Computing に興味のある方。  教師なし学習アルゴリズム (非階層/階層型クラスタリング) を実装し、実データによる 評価を行いたい。  評価環境の提供と、アルゴリズムの実装はPG-Stromプロジェクトで実施。 ワークロードと評価用データをご提供いただける方を探しています。  評価環境: CPU: E5-2670v3 x2, RAM: 384GB, GPU: Tesla K20 or GTX1080 CREATE FUNCTION kmeans(matrix, int) RETURNS vector AS $$ $$ LANGUAGE ‘plcuda’; User define CUDA logic (通常のSQL関数として記述可能) User defined CUDA code PG-Strom’s matrix support routines GPU Kernel for SQL function ‘kmeans()’ 実行時ビルド PG-Strom Input buffer Output buffer SQL関数実行結果 matrixのロード ユーザCUDAロジックの定義:
  • 18. The PG-Strom Project 今後の展望 Database Lounge Tokyo #2 - An Intelligent Storage? PostgreSQL, being the top runner of heterogeneous era NVMe-Strom SSDGPUの ダイレクトDMA PG-Strom SQLワークロードの “超”並列実行  WHERE句  JOIN  GROUP BY  PROJECTION 設計・開発中(?) トランザクション ログの高速書き出し PL/CUDA HPC水準の計算能力による In-database Analytics 18 チョットオマケ
  • 19. The PG-Strom Project Block Device Driver 一般的なトランザクションログの書き出し Database Lounge Tokyo #2 - An Intelligent Storage?19 Storage Controller DMA Buffer FilesystemPage Cache PostgreSQLWAL Buffer File + offset, length  Get Block Numbers write(2) Submit DMA Requests Transaction Logs fsync(2)
  • 20. The PG-Strom Project Block Device Driver アイデア: Zero-copy WAL write with NVMe-SSD Database Lounge Tokyo #2 - An Intelligent Storage?20 Storage Controller Filesystem PostgreSQLWAL Buffer Get Block Numbers Submit DMA Requests Transaction Logs Enqueue DMA Requests ioctl(2) DMA Buffer KaiGai’s Kernel Module ioctl handler WRITE & FLUSH commands make it persistent
  • 21. The PG-Strom Project NVMe-SSDはいいぞ。 Database Lounge Tokyo #2 - An Intelligent Storage?21  pgbench使用。スケールファクタ=1024、クライアント数を1~1000まで増加。3回の中央値。  CPU: E5-2670v3 (22C, 2.3GHz)、RAM: 384GB  SSD: Intel SSD 750 (400GB)  HDD: SAS 300GB (10krpm; RAID5 x8)
  • 22. The PG-Strom Project 更なる性能向上はあり得るか? Database Lounge Tokyo #2 - An Intelligent Storage?22  トランザクションログ書き出しの有無で 50% の性能差  では、もしトランザクションログ書き出しの性能(レイテンシ)を限りなく 0 に近付ける 事ができたら?  何か面白そうな事ができそうな気がします。:-)