脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

GPGPU用語集てきなもの

備忘録

CNN

BLAS

ATLAS

  • Automatically Tuned Linear Algebra Software
  • 自動で最適化されたBLASライブラリを作成するオープンソースライブラリ

OpenBLAS

MKL

  • Intel製CPUに最適化されたライブラリ
  • ライセンス購入をする必要がある
  • Intel製のCPU環境ではATLASよりもパフォーマンスがいいらしい(Intel側のレポート)

OpenCV

  • Computer Visionのためのライブラリ
  • 画像の入出力や一部を切り抜く際などに利用されている

LevelDB

  • KVS
  • DB内部でよくアクセスされるデータを段階的に分けることでアクセス効率がよくなる
  • Caffeでは学習データおよび評価データをそれぞれ一つのDBにまとめてから、それを利用してモデルの学習を行う

LMDB

  • KVS
  • LevelDBでは内部のデータにアクセスする際にロックがかかる仕様になっているため、複数のCaffeプロセスが単一のDBにアクセスすることが出来ない
  • この問題を解決するために単一のDBへの同時アクセスできるLMDBが導入された

HDF5

  • 大量の数値データをほぞんすることに適したファイルフォーマットとそれを操作する機能を提供するライブラリ

Blob

  • Binary Large OBject

MPI

  • Message Passing Interface
  • 分散メモリ間のメッセージ通信APIの規格
  • 実装でメジャーなものとしてOpen MPI とmpichがある

GPUDirect

  • CUDAを使ってGPUと同じバスに繋がっている(他のGPUを含む)デバイスに対して、GPUから直接アクセスする技術
  • CPUを経由しない高速なデータ転送が実現でき、GPU間のデータ同期やネットワークデバイスを使った他のノードとの通信を効率的に行うことが出来る
  • この技術を使ったGPU間の直接データ転送をPeerアクセスと呼ぶ
  • Peerアクセスを使うことで、他のGPUで割り当てたデバイスメモリに対して、カーネルやcudaMemcpy系の関数で、直接アクセスすることができるようになる
  • teslaとQuadroのみのプレミアム機能(GeForceでは使えたという報告もあるが要確認)

RDMA

RDMAとは

Remote Direct Memory Access
DMA(Direct Memory Access)はCPUが介在することなくホストメモリへアクセスを行うデバイスの機能
RDMA(Remote DMA)はCPUが関与することなくネットワーク越しにリモート計算機上のメモリへアクセスする機能

RDMAをサポートするネットワークプロトコル
  • InfiniBand
    • はじめからRDMAをネイティブサポートする新世代ネットワークプロトコル
    • 対応のNIC(HCA: Host Channel Adapter)とスイッチが必要となる
  • RoCE
  • iWARP
RDMAを使うには?

LInuxの主要なDistributionでRDMAをサポートしている

NVIDIA GPUDirect RDMA

f:id:portaltan:20161014215950p:plain

GPU tip

Tesla and Quadro-class GPUSで使える

messaging system

open MPIとMVAPICH2がGPUDirectをサポートしている(CUDA-aware MPI経由で)

Environment

Infiniband

infinibandとは非常に高いRAS(信頼性・可用性・保守性)をもつI/Oバスアーキテクチャ及びインターコネクトのこと
f:id:portaltan:20161014220038j:plain

  • オープンスタンダードなインターコネクト・プロトコル
  • 広帯域・低レイテンシ・高RAS
  • HPC/エンタープライズデータセンタ/高い画像処理能力を必要とする医療機器や検査装置などで使用されている

確認方法