Skip to content

Instantly share code, notes, and snippets.

@yue82
Last active September 24, 2017 07:30
Show Gist options
  • Save yue82/07a522154dcc1a244733fda8dcd3a20e to your computer and use it in GitHub Desktop.
Save yue82/07a522154dcc1a244733fda8dcd3a20e to your computer and use it in GitHub Desktop.
なにわTECH道 2016.12.18 memo

GPUの基礎知識 アーキテクチャと歴史

なつたんさん

GPU

  • フリンの分類ではSIMD

  • ベクトル計算に強い

  • CUDA(Compute Unified Device Architecture)

  • NVIDIAの用語が多いので読むときは要注意
    ベクター化ループなど

行列計算

ベクトルと計算してベクトルになるのがテンソル

AR,VRでのテンソル計算

  • 回転,拡大/縮小行列

  • 投影行列

  • ホモグラフィー行列
    ある物体を2つの別視点から見ている画像を合成
    VR,パノラマ画像など

GPUの基本構造

大容量DRAM
スカラプロセッサ
大量のベクトル計算用ALU
GPUメモリ・グローバルメモリ
ローカルメモリ・プライベートメモリ・レジスタファイル

ベクトル型プロセッサの歴史

  • Cray X-MP
    1984, 400MFLOPS
    ローカルメモリはなく,レジスタファイルのみ

  • SX-9
    2007, 1.6TFLOPS
    ローカルメモリはなく,レジスタファイルのみ

  • Cell Broadband Engine
    2006, 218GFLOPS
    DRAMから直接計算はできず,一度SPE内に持ってくる必要がありプログラム難易度高

  • Nvidia GTX1080
    2016, 8.9TFLOPS
    スカラプロセッサはCPUにまかせる
    PTX(Oarallel Thread Execution)のデコードを行い,空いている他のGPUなどの情報を把握した上でタスクを割り振ることができる

  • Tensilica Vision DSP Pt

  • Adreno225

  • Adreno530
    2015, 519GFLOPS

おすすめ本

  • ヘネシー&パターソン コンピュータアーキテクチャ 定量的アプローチ

VRをはじめよう!

GDG オーガナイザー 野田さん
VR歴: Cardboard, OculusRiftDK2, CV1, PSVR, OculusTouch, FOVE, DayDream

VRとは

  • ヘッドトラッキング
    頭の向きのみ,センサで計測可能

  • ポジショントラッキング・ハンドトラッキング
    カメラが必要

HMD

ポジション・ハンドトラッキングがある

  • Oculus Ruft CV1
    Touch含めて12万

  • HTC Vive
    10万

  • PSVR
    カメラ合わせて5万
    開発の敷居が高い(要ライセンス)
    普及の期待度も高い

モバイルVR

  • Galaxy Gear VR
    1.2万 + Galaxy

  • DayDream
    9000円 + 対応しているスマホ(Pixel等)
    日本で入手不可

  • Cardboard
    1000円~, スマホはなんでも動く
    ダンボール製
    すでに多く出ているので普及への期待度は高い

おすすめ

体験ならOculus Rift CV1
アプリ開発事業ならGearVR or DayDream

VRコンテンツを作る上で知っておきたいこと

  • 13歳以上を対象とする
    視覚の未発達により,大人と比べて斜視から戻ることができなくなる

VR酔い

視覚の情報と身体の情報の不一致により発生
移動時の加減速で発生しやすい(車系のコンテンツに多い)

プレゼンス(存在感)

  • どういうときにプレゼンスを感じやすいか
    自分のことをキャラクターが認知している
    冒頭で自分がどういう状況にいるのか,どういう役なのかを教えておく
    自分の手があるとそれらしく見える

VRにおけるプレゼンスの維持と破壊

Oculusベストプラクティス

UnityでのVRコンテンツの作り方

  • OCulusRift対応
    ステレオカメラ化(メニューから選んでチェック入れるだけ)

  • OculusTouch対応
    Oculus Utilities for Unity5 のOVRCameraRigをHierarchyビューにD&D
    MainCameraを無効にする(Inspectorビューでチェックを外す)

  • 手を表示
    Oculus Avater SDKのOvrAvatarをインポートし,モデルをHierarchyビューにD&D

  • Daydream(cardboard)対応
    Google VR SDK for Unityをインポート
    PrefabのGvrViewerMainをD&DでHierarchyに入れる

  • モバイルVRでの照準点を使った操作
    照準点を表示: Gvr...(メモれず)をいれる
    照準が物に当たったことの判定: EventSystemを入れてイベントを作る
    StandAloneInputModuleは外すとよい

  • Unity Daydreamネイティブ対応版(Preview)
    チェックボックスのみでステレオカメラ化ができる

  • Google VR SDK for Unity
    GvrController

  • IL2CPP
    C#からCPPにコンバートして処理の高速化
    ビルドには時間がかかるので最後のおまじない的に

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment