SlideShare uma empresa Scribd logo
1 de 54
Baixar para ler offline
2014/01/11 @ DSIRNLP 5

Cache-Oblivious
データ構造入門
秋葉 拓哉 (@iwiwi)
アウトライン
1. B-Tree が何故使われるのか? (復習)

2. Cache-Oblivious の考え方と意義
3. Cache-Oblivious 探索木 (vEB Layout)
4. 世の中の Cache-Oblivious 事例

Cache-Oblivious データ構造入門 (@iwiwi)

3
MySQL の索引のデータ構造は?
http://dev.mysql.com/doc/refman/5.1/ja/mysql-indexes.html

Cache-Oblivious データ構造入門 (@iwiwi)

!!!
4
MySQL の索引のデータ構造は?

B-Tree!
MySQL に限らず多くのデータベースシステムは
B-Tree を使います

Cache-Oblivious データ構造入門 (@iwiwi)

5
MySQL の索引のデータ構造は?

なんで B-Tree?
普通の二分探索木じゃだめ?

Cache-Oblivious データ構造入門 (@iwiwi)

6
なぜ B-Tree?

と
http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Memory_module_DDRAM_20-03-2006.jpg

http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Hdd_medalist.jpg

があるから
Cache-Oblivious データ構造入門 (@iwiwi)

7
なぜ B-Tree
メモリは高速
でも小さい
ディスクは遅い
でも大きい
大規模なデータベースは
ディスクに保存されていて
メモリに読み込みながら処理をする.
Cache-Oblivious データ構造入門 (@iwiwi)

8
B-Tree のデータ構造
普通の二分探索木

B-Tree

多分木になってる
(最大の分岐数 m)

Cache-Oblivious データ構造入門 (@iwiwi)

9
なぜ B-Tree の方が良いか?
大事な前提(若干雑)
1. ディスクの読み込み時間 >> 計算時間
2. ディスクである箇所を読み込むと周辺も含
めてそこそこ大きく読まれる

前提より
• ディスクを読み込む回数だけを考える
– 普段の議論:「O(ほげ) 時間」
– 今回の議論:「ディスクI/O 𝑂(ほげ) 回」

• 一度に読み込まれるサイズを 𝐵 とおく
Cache-Oblivious データ構造入門 (@iwiwi)

10
データの探索にかかる I/O 回数
二分探索木
• 𝑂 log 𝑛 回
一回の I/O で 2 分岐

B-Tree
• 𝑂 log 𝐵 𝑛 回

一回の I/O で Θ(𝐵) 分岐!

↑ノードのサイズをブロックサイズ 𝐵に合わせる

B-Tree のほうが log 𝐵 倍ぐらい早い
これは平気で 10 倍とかになるので大違い!
Cache-Oblivious データ構造入門 (@iwiwi)

11
このように

ディスクとメモリを使うなら
そのことを意識したデータ構造を
使う必要がある!

Cache-Oblivious データ構造入門 (@iwiwi)

12
ちなみに
メモリとキャッシュメモリ間でも
似たようなことを考えないといけない
より一般に,「メモリ階層」を意識しないといけない
(↓こういうやつ)
レジスタ
L1
L2
L3
メモリ
ディスク
テープ?

Cache-Oblivious データ構造入門 (@iwiwi)

13
Cache-Oblivious とは

Cache-Oblivious データ構造入門 (@iwiwi)

14
Cache-Oblivious

Cache-oblivious = キャッシュを忘れて
Cache-Oblivious データ構造入門 (@iwiwi)

15
Cache-Oblivious

えっ!?

忘れてしまうの?
Cache-Oblivious データ構造入門 (@iwiwi)

16
Cache-Oblivious

えっ!?

忘れてしまうの?
Cache-Oblivious データ構造入門 (@iwiwi)

17
Cache-Aware vs. Cache-Oblivious
Cache-Aware = 普通
ブロックのサイズ 𝐵 を事前に
知っていて,それを使ってデータ構造を設計する
(例:B-Tree)

Cache-Oblivious = 縛りプレイ
ブロックのサイズ 𝐵 を知らないことにする!
知らないなりに頑張る
𝐵 がどんな値であったとしてもいい感じになるよう頑
張る
※本当はメモリサイズ 𝑀 というパラメータもあって,同様にそれも知らない
ことにする.今回は出てこないので省略
Cache-Oblivious データ構造入門 (@iwiwi)

18
Cache-Aware vs. Cache-Oblivious
計算機の動きの前提は同じ
• 読み込みの回数を計算量とする
• 一回に 𝐵 バイト読み込まれる

やりたいことも同じ (例:探索木)
ただし,Cache-Oblivious データ構造は
𝑩 の値を使ってはいけない
(つまり𝐵の値を事前に知らない)
Cache-Oblivious データ構造入門 (@iwiwi)

19
Cache-Oblivious でない例
B-Tree は Cache-Oblivious ではない

↑ノードのサイズをブロックに合わせる

ブロックサイズ 𝐵 を知らないと
何分木にしていいかわからない!
ブロックサイズ 𝐵 を使ってデータ構造を設計している

Cache-Oblivious データ構造入門 (@iwiwi)

20
なんでそんなことをするのか?
Cache-Oblivious データ構造の利点

1つめ:
ブロックサイズに合わせたパラメータ調整を環境
ごとに行う必要がない!
ポータブル,手軽に使える

Cache-Oblivious データ構造入門 (@iwiwi)

21
なんでそんなことをするのか?
Cache-Oblivious データ構造の利点

2つめ:
全てのメモリ階層ギャップに最適化される
• ディスク ⇔ メモリ・・・ 𝐵Mem
• メモリ ⇔ キャッシュ・・・𝐵Cache
どんな 𝐵 の値でも性能が出る
→ どこのギャップに関しても良い性能!
Cache-Oblivious データ構造入門 (@iwiwi)

22
なんでそんなことをするのか?
Cache-Oblivious データ構造の利点

2つめ:
全てのメモリ階層ギャップに最適化される
データの大きさによってボトルネックは変わる
• メモリに収まる? → 𝐵Cache
• 収まらない? → 𝐵Mem
扱うデータのサイズによらず高性能なプログラム
にできる
Cache-Oblivious データ構造入門 (@iwiwi)

23
そんな都合の良いものが作れるの?
作れるんです!

Cache-Oblivious データ構造入門 (@iwiwi)

24
Cache-Oblivious 探索木
(vEB Layout)
Cache-Oblivious データ構造入門 (@iwiwi)

25
二分探索木があります

Cache-Oblivious データ構造入門 (@iwiwi)

26
以降,三角形を二分探索木と思って下さい

Cache-Oblivious データ構造入門 (@iwiwi)

27
でかい二分探索木をイメージして下さい

𝑛 ノード

Cache-Oblivious データ構造入門 (@iwiwi)

28
このツリーをディスクによさげに保存する

𝑛 ノード

高さ
ℎ = log 2 𝑛

ディスク
Cache-Oblivious データ構造入門 (@iwiwi)

29
高さがだいたい半分のところで切る

高さ ℎ/2

Cache-Oblivious データ構造入門 (@iwiwi)

30
上半分は約

𝒏 ノードの木になる

約 𝒏
ノード

Cache-Oblivious データ構造入門 (@iwiwi)

高さ ℎ/2

31
切れ目(=上半分の木の葉)には約

𝒏 ノード

約 𝑛
ノード

約

𝒏

Cache-Oblivious データ構造入門 (@iwiwi)

32
下半分にぶら下がってる木も約

𝒏 ノード

約 𝑛
ノード

高さ ℎ/2

約 𝑛
ノード

Cache-Oblivious データ構造入門 (@iwiwi)

33
それが約

𝒏 個ある

約 𝑛
ノード

…… 約

𝑛
ノード

……
約

𝒏個

Cache-Oblivious データ構造入門 (@iwiwi)

34
約 𝒏 ノード × 約 𝒏 個

𝑇0
……

𝑇1 𝑇2

𝑇

Cache-Oblivious データ構造入門 (@iwiwi)

𝑛

35
それぞれの木を連続部分に保存!

𝑇0
……

𝑇1 𝑇2

ディスク

𝑇0

𝑇

𝑇1
Cache-Oblivious データ構造入門 (@iwiwi)

𝑛

𝑇2

…

𝑇

𝑛

36
それぞれの木はどうやって保存?

約 𝒏
ノード

ディスク
Cache-Oblivious データ構造入門 (@iwiwi)

37
それぞれの木はどうやって保存?

約 𝒏
ノード

再帰的に同じことをする!
またこのツリーを上下に分割

ディスク
Cache-Oblivious データ構造入門 (@iwiwi)

38
こうやってツリーを保存することを

vEB Layout

𝑇0

(vEB = Van Emde Boas)
と呼びます

……

𝑇1 𝑇2

ディスク

𝑇0

𝑇

𝑇1
Cache-Oblivious データ構造入門 (@iwiwi)

𝑛

𝑇2

…

𝑇

𝑛

39
vEB Layout の性質
Cache-Oblivious である!
再帰してるだけ.ブロックサイズ 𝐵 は出てこなかった.
𝐵 を全く知らずに構築したのに……なんと

要素の探索が I/O 𝑂 log 𝐵 𝑛 回でできる!
↑
𝑩 を知ってて作った B-Tree と性能が一致!
(オーダー記号に隠れた定数倍を除いて)

(𝐵 : ブロックのサイズです ← 忘れた人むけ)
Cache-Oblivious データ構造入門 (@iwiwi)

40
vEB Layout の性質
Cache-Oblivious である!
再帰してるだけ.ブロックサイズ 𝐵 は出てこなかった.
𝐵 を全く知らずに構築したのに……なんと

要素の探索が I/O 𝑂 log 𝐵 𝑛 回でできる!
↑
𝑩 を知ってて作った B-Tree と性能が一致!
(オーダー記号に隠れた定数倍を除いて)

最悪の場合でも I/O 回数は
(𝐵 : ブロックのサイズですlog 𝐵 𝑛 回
2 + 4 ← 忘れた人むけ)
Cache-Oblivious データ構造入門 (@iwiwi)

41
計算量
𝑶 𝐥𝐨𝐠

𝑩

𝒏 回の読み込みでできる理由

ツリーのサイズ:𝑛,

𝑛, 4 𝑛, 8 𝑛, 16 𝑛, … …

いつかサイズは 𝐵 以下になる
そしてその時,少なくとも

𝐵

サイズが 𝐵 以下になったら一気に読み込まれる
→ 結局多分木みたいに動作する( Ω 𝐵 分木)
Cache-Oblivious データ構造入門 (@iwiwi)

42
ちなみに:Cache-Oblivious 関係ない話
木でこういう分割をするのは,
vEB Tree というデータ構造でも使う
vEB Tree はキーの値の範囲の条件下で
• 検索が 𝑶 𝐥𝐨𝐠 𝐥𝐨𝐠 𝒏 時間
でできるおもしろデータ構造です
http://en.wikipedia.org/wiki/Van_Emde_Boas_tree

Cache-Oblivious データ構造入門 (@iwiwi)

43
世の中の Cache-Oblivious 事例

Cache-Oblivious データ構造入門 (@iwiwi)

44
他の Cache-Oblivious データ構造・アルゴリズム

データ構造
• 動的な探索木 (CO B-Tree)

– さっきのは静的な木だったので実際に動的にしようと思うと
もっと複雑なものが必要

• 順位キュー
• リスト
• ……

アルゴリズム
•
•
•
•

ソート (Funnel Sort)
FFT,行列乗算
グラフ探索
……

いっぱい
あります!

Cache-Oblivious データ構造入門 (@iwiwi)

45
Cache-Oblivious は本当に実用的か?
利点もあるけど,浸透しにくい
問題点1:
複雑すぎる物が多い
理論屋さんがオーダー記法での計算量だけを考えて作っている実装し
たくないものが多い

問題点2:
Cache-Aware に中々勝てない
定数倍の差はあり実測では速度で負けてしまう

Cache-Oblivious データ構造入門 (@iwiwi)

46
事例

TokuDB
MySQL, MariaDB 用ストレージエンジン

Fractal Tree™ Index なるものを使うらしい

Cache-Oblivious データ構造入門 (@iwiwi)

47
Fractal Tree™ Index
Wikipedia

公式

Cache-Oblivious データ構造入門 (@iwiwi)

48
事例

𝑇0
……

𝑇1 𝑇2

𝑇

𝑛

確かにフラクタルっぽい(?)
(※実際には Fractal Tree Index は vEB Layout より複雑なことをしています)

Cache-Oblivious データ構造入門 (@iwiwi)

49
論文 (MIT CSAIL)
Cache-Oblivious Streaming B-trees
Michael A. Bender, Martin Farach-Colton, Jeremy T. Fineman, Yonatan
Fogel, Bradley Kuszmaul, and Jelani Nelson
SPAA’07
Cache-Oblivious String B-Trees
Michael A. Bender, Martin Farach-Colton, and Bradley C. Kuszmaul
PODS’06
Concurrent Cache-Oblivious B-Trees
Michael A. Bender, Jeremy T. Fineman, Seth Gilbert, and Bradley C.
Kuszmaul
SPAA’05

Cache-Oblivious データ構造入門 (@iwiwi)

50
論文 (MIT CSAIL)
Cache-Oblivious Streaming B-trees
Michael A. Bender, Martin Farach-Colton, Jeremy T. Fineman, Yonatan
Fogel, Bradley Kuszmaul, and Jelani Nelson
SPAA’07

Chief Scientist

CTO

Chief Architect

Cache-Oblivious String B-Trees
Michael A. Bender, Martin Farach-Colton, and Bradley C. Kuszmaul
PODS’06
Concurrent Cache-Oblivious B-Trees
Michael A. Bender, Jeremy T. Fineman, Seth Gilbert, and Bradley C.
Kuszmaul
SPAA’05

MIT の Cache-Oblivious 研究ガチ勢の起業!
Cache-Oblivious データ構造入門 (@iwiwi)

51
使っているっぽい雰囲気?
TokuDB の公式サイトにあるスライド

http://www.tokutek.com/wp-content/uploads/2011/11/how-fractal-trees-work.pdf

Cache-Oblivious データ構造入門 (@iwiwi)

52
まとめ
• メモリ階層を意識したデータ構造

• Cache-Oblivious の考え方
• 基礎的テク:ツリーの vEB Layout
• 世の中の事例と課題
ありがとうございましたm(__)m
Cache-Oblivious データ構造入門 (@iwiwi)

53
おまけ:van Emde Boas の発音

https://www.youtube.com/watch?v=AjFtTQevtq0#t=14m15

Peter van Emde Boas と友人である Erik D. Demaine (MIT)
による発音が YouTube で聞けます
Cache-Oblivious データ構造入門 (@iwiwi)

54
謝辞
@kumagi さんのご意見をもとに発表時からスライド
を改訂しています,ありがとうございます.
@tmaehara さんに “van Emde Boas” さんの発音情報
を教えてもらいました,ありがとうございます.

Cache-Oblivious データ構造入門 (@iwiwi)

55

Mais conteúdo relacionado

Mais procurados

プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~Takuya Akiba
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safeKumazaki Hiroki
 
さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)Takanori Sejima
 
大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端Takuya Akiba
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界Preferred Networks
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)AtCoder Inc.
 
Crfと素性テンプレート
Crfと素性テンプレートCrfと素性テンプレート
Crfと素性テンプレートKei Uchiumi
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法Kumazaki Hiroki
 
fastTextの実装を見てみた
fastTextの実装を見てみたfastTextの実装を見てみた
fastTextの実装を見てみたYoshihiko Shiraki
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニングyoku0825
 
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpRSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpsonickun
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解くshindannin
 

Mais procurados (20)

プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safe
 
さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)
 
Convex Hull Trick
Convex Hull TrickConvex Hull Trick
Convex Hull Trick
 
大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)
 
Crfと素性テンプレート
Crfと素性テンプレートCrfと素性テンプレート
Crfと素性テンプレート
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
 
fastTextの実装を見てみた
fastTextの実装を見てみたfastTextの実装を見てみた
fastTextの実装を見てみた
 
Chokudai search
Chokudai searchChokudai search
Chokudai search
 
フラグを愛でる
フラグを愛でるフラグを愛でる
フラグを愛でる
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
Glibc malloc internal
Glibc malloc internalGlibc malloc internal
Glibc malloc internal
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
 
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpRSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
 

Mais de Takuya Akiba

分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17Takuya Akiba
 
Learning Convolutional Neural Networks for Graphs
Learning Convolutional Neural Networks for GraphsLearning Convolutional Neural Networks for Graphs
Learning Convolutional Neural Networks for GraphsTakuya Akiba
 
TCO15 Algorithm Round 2C 解説
TCO15 Algorithm Round 2C 解説TCO15 Algorithm Round 2C 解説
TCO15 Algorithm Round 2C 解説Takuya Akiba
 
ACM-ICPC 世界大会 2015 問題 K "Tours" 解説
ACM-ICPC 世界大会 2015 問題 K "Tours" 解説ACM-ICPC 世界大会 2015 問題 K "Tours" 解説
ACM-ICPC 世界大会 2015 問題 K "Tours" 解説Takuya Akiba
 
大規模グラフ解析のための乱択スケッチ技法
大規模グラフ解析のための乱択スケッチ技法大規模グラフ解析のための乱択スケッチ技法
大規模グラフ解析のための乱択スケッチ技法Takuya Akiba
 
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-Takuya Akiba
 
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズムTakuya Akiba
 
大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズムTakuya Akiba
 
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとはTakuya Akiba
 

Mais de Takuya Akiba (9)

分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17
 
Learning Convolutional Neural Networks for Graphs
Learning Convolutional Neural Networks for GraphsLearning Convolutional Neural Networks for Graphs
Learning Convolutional Neural Networks for Graphs
 
TCO15 Algorithm Round 2C 解説
TCO15 Algorithm Round 2C 解説TCO15 Algorithm Round 2C 解説
TCO15 Algorithm Round 2C 解説
 
ACM-ICPC 世界大会 2015 問題 K "Tours" 解説
ACM-ICPC 世界大会 2015 問題 K "Tours" 解説ACM-ICPC 世界大会 2015 問題 K "Tours" 解説
ACM-ICPC 世界大会 2015 問題 K "Tours" 解説
 
大規模グラフ解析のための乱択スケッチ技法
大規模グラフ解析のための乱択スケッチ技法大規模グラフ解析のための乱択スケッチ技法
大規模グラフ解析のための乱択スケッチ技法
 
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
 
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム
 
大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム
 
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは
 

Último

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

Último (9)

論文紹介: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」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
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
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介: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...
 
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
 

Cache-Oblivious データ構造入門 @DSIRNLP#5