SlideShare a Scribd company logo
1 of 66
Download to read offline
Hello,
DirectCompute
@dasyprocta - 関西 GPGPU 勉強会
Outline

● What's GPGPU
  GPGPU とは...

● DirectCompute Introduction
  速習 DirectCompute
What's GPGPU
What's GPGPU
General-purpose computing
on graphics processing units

● General-purpose であるとは?

● General-purpose でないとは?
GPGPU の夜明け
"All processors aspire to be
general-purpose"
Tim Van Hook, keynote, Graphics Hardware 2001
Programmable GPU
プログラム可能な GPU の登場
● DirectX8.0 [2000] アセンブリ (Shader Model 1.x)
● DirectX9.0 [2002] HLSL (Shader Model 2.0x)
● DirectX9.0c [2004] HLSL (Shader Model 3.0)
シェーダー言語
● HLSL
● GLSL
● Cg
グラフィックスパイプライン
~ Shader Model 3.0

                     プログラム可能なユニット
       Input
                     ● Vertex Shader
   Vertex Shader       頂点単位で実行

     Rasterizer      ● Pixel Shader
                       ピクセル単位で実行
    Pixel Shader

      Output
GPU の超並列性
Pixel Shader によるピクセル並列処理
Pixel Shader による画像処理



            Pixel Shader


              Output

テクスチャユニット
ピクセルはデータ!!
ピクセルのビット数
● 32bit (R8G8B8A8 - UNSIGNED INT)
● 64bit (R16G16B16A16 - HALF FLOAT)
● 128bit (R32G32B32A32 - FLOAT)
Pixel Shader による汎用処理



            Pixel Shader


テクスチャユニット     Output
GPGPU 黎明期 I
Ray Tracing on Programmable Graphics Hardware
[Purcell 2002]


● レイトレーシングの GPU 実装
● ポリゴンのテクスチャへの格納
GPGPU 黎明期 II
Photon Mapping on Programmable Graphics Hardware
[Percell 2003]



● フォトンマッピングの GPU 実装
● Bitonic ソートの GPU 実装
GPGPU 黎明期 III
Building a Million Particle System [Latta 2004]

● テクスチャパーティクル
● ダブルバッファによる時間積分
GPU Gems シリーズ刊行




 [2004]
                   [2007]
          [2005]
GPU Gems
Part VI - Beyond Triangles

 ●   A Toolkit for Computation on GPUs
 ●   Fast Fluid Dynamics Simulation on the GPU
 ●   Volume Rendering Techniques
 ●   Applying Real-Time Shading to 3D Ultrasound Visualization
 ●   Real-Time Stereograms
 ●   Deformers
GPU Gems 2
Part IV - General-Purpose Computation on GPUs

            ●   Streaming Architectures and Technology Trends
            ●   The GeForce 6 Series GPU Architecture
            ●   Mapping Computational Concepts to GPUs
            ●   GPU Computation Strategies and Tips
            ●   Implementing Efficient Parallel Data Structures on GPUs
            ●   GPU Flow Control Idioms
            ●   GPU Program Optimization
            ●   Stream Reduction Operations for GPGPU Applications
GPU Gems 2
Part V - Image-Oriented Computing

 ●   Octree Textures on the GPU
 ●   High-Quality Global Illumination
     Rendering Using Rasterization
 ●   Global Illumination using Progressive
     Refinement Radiosity
 ●   Computer Vision on the GPU
 ●   Deferred Filtering: Rendering from
     Difficult Data Formats
 ●   Conservative Rasterization
GPU Gems 2
Part VI - Simulation and Numerical Algorithms

                      ●   GPU Computing for Protein Structure
                          Prediction
                      ●   A GPU Framework for Solving Systems of
                          Linear Equations
                      ●   Options Pricing on the GPU
                      ●   Improved GPU Sorting
                      ●   Flow Simulation with Complex Boundaries
                      ●   Medical Image Reconstruction with the
                          FFT
GPU Gems 3
Part V - Physics

●   Real-Time Rigid Body Simulation on GPUs
●   Real-Time Simulation and Rendering of 3D Fluids
●   Fast N-Body Simulation with CUDA
●   Broad-Phase Collision Detection with CUDA
●   LCP Algorithms for Collision Detection Using CUDA
●   Signed Distance Fields Using Single-Pass
    GPU Scan Conversion of Tetrahedra
GPU Gems 3
Part VI - GPU Computing

●   Fast Virus Signature Matching on the GPU
●   AES Encryption and Decryption on the GPU
●   Efficient Random Number Generation and Application using CUDA
●   Imaging Earth's Subsurface Using CUDA
●   Parallel Prefix Sum (Scan) with CUDA
●   Incremental Computation of the Gaussian
●   Using the Geometry Shader for Compact
    and Variable-Length GPU Feedback
GPGPU アルゴリズム
●   Map
●   Reduce
●   Scatter and Gather
●   Scan
●   Stream Filtering
●   Sort
●   Search
A Survey of General-Purpose Computation
on Graphics Hardware   [Owens 2007]
GPGPU のダークサイド
グラフィックス API の学習コストが高い
● DirectX
● OpenGL
CUDA の登場 [2006]
● グラフィックス API からの解放
GPU の GPGPU 進化
● ユニットの統合 (Unified Shader)

● SIMD からスカラーへ

● 倍精度浮動小数点数対応
そして DirectCompute へ
GPU プログラミング系譜
  DirectX
Shader Model
 1.0 [2000]                    汎用 API モデル
 2.0 [2002]
                                CUDA [2006]
 3.0 [2004]
 4.0 [2006]                    OpenCL [2008]
 4.1 [2008]
               DirectCompute
 5.0 [2009]
DirectCompute Introduction
DirectCompute とは
● DirectX API による GPGPU サポート

● グラフィックスパイプラインとは独立して動作

● HLSL で記述 (Compute Shader)

● CUDA, OpenCL と同様の思想
要求環境
● Windows7 (Vista SP1 では CS4)
  Visual C++ 2008, 2010
  DirectX SDK (June 2010)


● DirectX11 対応ハードウェア (10.1 では CS4)
  Geforce400系~
  RadeonHD5000系~
  Intel HD Graphics4000~ (Ivy Bridge)
HLSL
● C言語に似た文法

● グラフィックス用途の組み込み関数

● ShaderModel バージョンにより違い
Shader Model 5.0
- GPGPU 拡張
● 64bit 浮動小数点演算

● 共有メモリの使用 (32KB)

● データ構造の追加

● アトミック命令, 同期命令
GPU アーキテクチャー
            Device



 Multiprocessor      Multiprocessor         Multiprocessor



 Multiprocessor      Multiprocessor   Processor       Processor


 Multiprocessor      Multiprocessor   Processor       Processor


                                      Processor       Processor



          Global Memory

                                           Shared Memory
スレッドの並列実行

       Multiprocessor        Multiprocessor 一基で
                             複数のHW スレッドを実行
 Processor       Processor


 Processor       Processor   Multiprocessor 単位で
 Processor       Processor
                             Shared Memory 一基


      Shared Memory
スレッドのグリッドモデル
スレッドグループのスレッド数を3次元で指定

             Z

         X
                        スレッド

     Y




             スレッドグループ
スレッドとスレッドグループ
- Thread and Thread Group
Multiprocessor がスレッドグループを実行
Processor がスレッドを実行

           Dispatch        Multiprocessor


                      Processor      Processor


                      Processor      Processor


                      Processor      Processor
簡単な Compute Shader
StructuredBuffer<float> A : register(t0);
StructuredBuffer<float> B : register(t1);
RWStructuredBuffer<float> O : register(u0);

[numthreads(1, 1, 1)] // スレッドグループのサイズを指定
void CSMain(uint3 id : SV_DispatchThreadID)
{
   O[id.x] = A[id.x] + B[id.x];
}
簡単なホストプログラム
ID3D11DeviceContext* dc = デバイスの生成();

// まずはシェーダーを設定して...
dc->CSSetShader(...);

// Fire!!
dc->Dispatch(X, Y, Z);
スレッドグループの実行回数
Dispatch 関数の引数で指定

Dispatch(X, Y, Z) を実行した場合

実行スレッドグループ数 = X * Y * Z
スレッドの実行回数
[numthread(AX, AY, AZ)]
void CSMain() {}
のシェーダーを
Dispatch(BX, BY, BZ)
で呼び出した場合

実行スレッド数 = 実行スレッドグループ数 *      AX*AY*AZ
          = BX*BY*BZ * AX*AY*AZ
引数とセマンティクス
[numthreads(AX, AY, AZ)]
void CSMain(uint3 id : SV_DispatchThreadID)

● SV_DispatchThreadID
全スレッド内での ID: uint3

Dispatch(BX, BY, BZ) の場合の ID は
0 <= id.x < AX*BX
0 <= id.y < AY*BY
0 <= id.z < AZ*BZ
その他の引数セマンティクス
● SV_GroupIndex
スレッドグループ内での一意の整数値: uint

● SV_GroupThreadID
スレッドグループ内での ID: uint3

● SV_GroupID
スレッドグループの ID: uint3
引数の数は自由
使用したいものだけ定義すれば OK

[numthreads(X, Y, Z)]
void CSMain(uint3 DTid : SV_DispatchThreadID,
            uint3 GTid : SV_GroupThreadID,
            uint3 Gid : SV_GroupID,
            uint Gidx : SV_GroupIndex)
{
   ...
}
シェーダーのコンパイル
● オフラインコンパイル

SDK付属の fxc.exe

● ランタイムコンパイル

D3DX11CompileFromFile() 関数
(d3dx11.dll)
ホストプログラムの流れ

   シェーダーの読み込み・生成


   GPUリソースの生成


   GPUリソースの設定

   シェーダーの実行
GPU リソース                 (ID3D11Resource)

グローバルメモリに置かれるバッファ
● ID3D11Buffer
    ○ RawBuffer
    ○ StructuredBuffer
    ○ ConstantBuffer
●   ID3D11Texture1D
●   ID3D11Texture1DArray
●   ID3D11Texture2D
●   ID3D11Texture2DArray
●   ID3D11Texture3D
バッファとテクスチャの違い
● テクスチャはサンプラーによるアクセスが可能
 サンプラーによる線形補間, 等...

● テクスチャはミップマップが使用可能
GPU リソースビュー
シェーダーからリソースがどのように扱われるか

● ID3D11ShaderResourceView (SRV)
読み込み専用バッファ

● ID3D11UnorderedAccessView (UAV)
読み込み・書き込みバッファ
リソースとビューの関係

   Texture           Buffer


  UAV         SRV        UAV




   Shader A         Shader B
リソースの設定
● CSSetShaderResourceViews()
スロットを指定して SRV を設定

● CSSetUnorderedAccessViews()
スロットを指定して UAV を設定
定数バッファ
シェーダー定数として扱われるバッファ
アクセスが高速

● CSSetConstantBuffers()
スロットを指定して定数バッファを設定
シェーダーからのアクセス
StructuredBuffer<float> A : register(t0);   // SRV
StructuredBuffer<float> B : register(t1);   // SRV
RWStructuredBuffer<float> O : register(u0); // UAV

cbuffer C : register(b0) { // 定数バッファ
  float4     Vector;
  float4x4 Matrix;
}
register(...) でスロット番号を指定
シェーダーでのリソース種別
Read Only             Read/Write
● Texture1D           ● RWTexture1D
● Texture1DArray      ● RWTexture1DArray
● Texture2D           ● RWTexture2D
● Texture2DArray      ● RWTexture2DArray
● Texture3D           ● RWTexture3D
● StructuredBuffer    ● RWStructuredBuffer
● ByteAddressBuffer   ● RWByteAddressBuffer
動的バッファ(擬似)のサポート
● AppendStructuredBuffer
バッファの最後に値を追加

● ConsumeStructuredBuffer
バッファの最後から値を取得・削除

内部で同期を取ってくれる
共有メモリへのアクセス
共有メモリの宣言
groupshared float Shared[SIZE];

● ソフトウェアキャッシュとして機能
● 同期命令の
  GroupMemoryBarrierWithGroupSync()
  と一緒に扱うことが多い
メモリアクセス

 高速!!


          スコープ       アクセス         場所
 共有メモリ    スレッドグループ   Read/Write   on-chip(register)

 定数バッファ   グローバル      Read         on-chip(cache)

 SRV      グローバル      Read         off-chip

 UAV      グローバル      Read/Write   off-chip
同期命令
●   AllMemoryBarrier
●   AllMemoryBarrierWithGroupSync
●   DeviceMemoryBarrier
●   DeviceMemoryBarrierWithGroupSync
●   GroupMemoryBarrier
●   GroupMemoryBarrierWithGroupSync
アトミック命令
●   InterlockedAdd
●   InterlockedExchange
●   InterlockedCompareExchange
●   InterlockedAnd
●   InterlockedOr
●   InterlockedXor
●   etc...
パフォーマンス
● GPU から CPU への WriteBack は注意

● GPU のメモリ内容を利用する関数の使用
DispatchIndirect(ID3D11Buffer*, offset)
GPU のメモリ内容を関数の引数として利用
GPU デバッガ
● PIX (SDK 付属)
公式のくせに DirectX11 にほとんど対応してない

● NVidia Nsight
NVIdia GPU 用

● AMD GPU PerfStudio2
AMD GPU 用
その他諸々?
● DirectX なので API に癖がある
 計算のみにも使用できるがそれなら CUDA の方が..

● Windows 環境のみでしか動かない

● グラフィックスパイプラインに味付けする役割?

● 可視化まで含めたリアルタイムシミュレーション
  においては一日の長あり
DirectX SDK
付属サンプル一部紹介
● BasicCompute11
  配列同士の加算処理
● ComputeShaderSort11
  Bitonic ソート
● NBodyGravityCS11
  3D N体問題
● FluidCS11
  2D 流体シミュレーション (SPH)
参考文献
Practical Rendering
& Computation
with Direct3D11
まとめ
● DirectCompute は CUDA, OpenCL と同様
  GPGPU 環境を提供する

● DirectX グラフィックスパイプラインとの
  親和性が高いため可視化に有利
Enjoy GPGPU!!

More Related Content

What's hot

冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safe
Kumazaki Hiroki
 
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
智啓 出川
 
2015年度GPGPU実践プログラミング 第12回 偏微分方程式の差分計算
2015年度GPGPU実践プログラミング 第12回 偏微分方程式の差分計算2015年度GPGPU実践プログラミング 第12回 偏微分方程式の差分計算
2015年度GPGPU実践プログラミング 第12回 偏微分方程式の差分計算
智啓 出川
 
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
 
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細 (様々なメモリの利用)
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細(様々なメモリの利用)2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細(様々なメモリの利用)
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細 (様々なメモリの利用)
智啓 出川
 
レイトレ空間構造入門
レイトレ空間構造入門レイトレ空間構造入門
レイトレ空間構造入門
Toru Matsuoka
 
2015年度GPGPU実践プログラミング 第8回 総和計算(高度な最適化)
2015年度GPGPU実践プログラミング 第8回 総和計算(高度な最適化)2015年度GPGPU実践プログラミング 第8回 総和計算(高度な最適化)
2015年度GPGPU実践プログラミング 第8回 総和計算(高度な最適化)
智啓 出川
 

What's hot (20)

1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門
 
マルチコアを用いた画像処理
マルチコアを用いた画像処理マルチコアを用いた画像処理
マルチコアを用いた画像処理
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
自作GPUへの道
自作GPUへの道自作GPUへの道
自作GPUへの道
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safe
 
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
 
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
 
【Unity】 Behavior TreeでAIを作る
 【Unity】 Behavior TreeでAIを作る 【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
 
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
 
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
 
2015年度GPGPU実践プログラミング 第12回 偏微分方程式の差分計算
2015年度GPGPU実践プログラミング 第12回 偏微分方程式の差分計算2015年度GPGPU実践プログラミング 第12回 偏微分方程式の差分計算
2015年度GPGPU実践プログラミング 第12回 偏微分方程式の差分計算
 
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミング
 
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細 (様々なメモリの利用)
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細(様々なメモリの利用)2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細(様々なメモリの利用)
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細 (様々なメモリの利用)
 
レイトレ空間構造入門
レイトレ空間構造入門レイトレ空間構造入門
レイトレ空間構造入門
 
Chainer で Tensor コア (fp16) を使いこなす
Chainer で Tensor コア (fp16) を使いこなすChainer で Tensor コア (fp16) を使いこなす
Chainer で Tensor コア (fp16) を使いこなす
 
多機能ボイチャを簡単に導入する方法
多機能ボイチャを簡単に導入する方法多機能ボイチャを簡単に導入する方法
多機能ボイチャを簡単に導入する方法
 
2015年度GPGPU実践プログラミング 第8回 総和計算(高度な最適化)
2015年度GPGPU実践プログラミング 第8回 総和計算(高度な最適化)2015年度GPGPU実践プログラミング 第8回 総和計算(高度な最適化)
2015年度GPGPU実践プログラミング 第8回 総和計算(高度な最適化)
 

Viewers also liked

Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例
tecopark
 
3D描画基礎知識
3D描画基礎知識3D描画基礎知識
3D描画基礎知識
AimingStudy
 
メールサーバをちゃんとする
メールサーバをちゃんとするメールサーバをちゃんとする
メールサーバをちゃんとする
yaasita
 
[学内勉強会]C++11とdirectxライブラリ
[学内勉強会]C++11とdirectxライブラリ[学内勉強会]C++11とdirectxライブラリ
[学内勉強会]C++11とdirectxライブラリ
Shota Homma
 

Viewers also liked (20)

3D勉強会 第1回 3Dプログラミングのススメ
3D勉強会 第1回 3Dプログラミングのススメ3D勉強会 第1回 3Dプログラミングのススメ
3D勉強会 第1回 3Dプログラミングのススメ
 
Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例
 
3D描画基礎知識
3D描画基礎知識3D描画基礎知識
3D描画基礎知識
 
Direct3D 12 Summary
Direct3D 12 SummaryDirect3D 12 Summary
Direct3D 12 Summary
 
C#でOpenCL with OpenTK + Cloo
C#でOpenCL with OpenTK + ClooC#でOpenCL with OpenTK + Cloo
C#でOpenCL with OpenTK + Cloo
 
[計算シミュレーション勉強会#1] 粒子法の復習(陽解法と陰解法の比較から)
[計算シミュレーション勉強会#1] 粒子法の復習(陽解法と陰解法の比較から)[計算シミュレーション勉強会#1] 粒子法の復習(陽解法と陰解法の比較から)
[計算シミュレーション勉強会#1] 粒子法の復習(陽解法と陰解法の比較から)
 
OpenMPSみんな使ってねー[第36回オープンCAE勉強会@関東]
OpenMPSみんな使ってねー[第36回オープンCAE勉強会@関東]OpenMPSみんな使ってねー[第36回オープンCAE勉強会@関東]
OpenMPSみんな使ってねー[第36回オープンCAE勉強会@関東]
 
Xamarin入門(技術というより心構え編)
Xamarin入門(技術というより心構え編)Xamarin入門(技術というより心構え編)
Xamarin入門(技術というより心構え編)
 
2016年11月.NETラボLT:超余談ゲームプラットフォームの話
2016年11月.NETラボLT:超余談ゲームプラットフォームの話2016年11月.NETラボLT:超余談ゲームプラットフォームの話
2016年11月.NETラボLT:超余談ゲームプラットフォームの話
 
メールサーバをちゃんとする
メールサーバをちゃんとするメールサーバをちゃんとする
メールサーバをちゃんとする
 
[関東GPGPU勉強会#2] ライブラリを使って大規模疎行列線形方程式を解いてみよう
[関東GPGPU勉強会#2] ライブラリを使って大規模疎行列線形方程式を解いてみよう[関東GPGPU勉強会#2] ライブラリを使って大規模疎行列線形方程式を解いてみよう
[関東GPGPU勉強会#2] ライブラリを使って大規模疎行列線形方程式を解いてみよう
 
C++ AMPを使ってみよう
C++ AMPを使ってみようC++ AMPを使ってみよう
C++ AMPを使ってみよう
 
GDC 2012: Advanced Procedural Rendering in DX11
GDC 2012: Advanced Procedural Rendering in DX11GDC 2012: Advanced Procedural Rendering in DX11
GDC 2012: Advanced Procedural Rendering in DX11
 
Direct3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave OldcornDirect3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave Oldcorn
 
[学内勉強会]C++11とdirectxライブラリ
[学内勉強会]C++11とdirectxライブラリ[学内勉強会]C++11とdirectxライブラリ
[学内勉強会]C++11とdirectxライブラリ
 
GTMF2016 catch up stingray
GTMF2016 catch up stingrayGTMF2016 catch up stingray
GTMF2016 catch up stingray
 
(人狼知能合宿)ビデオゲームへの人狼知能の応用について
 (人狼知能合宿)ビデオゲームへの人狼知能の応用について (人狼知能合宿)ビデオゲームへの人狼知能の応用について
(人狼知能合宿)ビデオゲームへの人狼知能の応用について
 
UE4.14で広がるVRの可能性
UE4.14で広がるVRの可能性UE4.14で広がるVRの可能性
UE4.14で広がるVRの可能性
 
プログラマがUnityでSTGを作った話
プログラマがUnityでSTGを作った話プログラマがUnityでSTGを作った話
プログラマがUnityでSTGを作った話
 
Substanceのちょっといい話
Substanceのちょっといい話Substanceのちょっといい話
Substanceのちょっといい話
 

Similar to Hello, DirectCompute

GPGPUによるパーソナルスーパーコンピュータの可能性
GPGPUによるパーソナルスーパーコンピュータの可能性GPGPUによるパーソナルスーパーコンピュータの可能性
GPGPUによるパーソナルスーパーコンピュータの可能性
Yusaku Watanabe
 
NVIDIA Japan Seminar 2012
NVIDIA Japan Seminar 2012NVIDIA Japan Seminar 2012
NVIDIA Japan Seminar 2012
Takuro Iizuka
 
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
智啓 出川
 
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU
Takuro Iizuka
 
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
Yosuke Onoue
 
GPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみたGPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみた
Ryo Sakamoto
 
2015年度GPGPU実践基礎工学 第11回 GPUでの並列 プログラミング(ベクトル和)
2015年度GPGPU実践基礎工学 第11回 GPUでの並列プログラミング(ベクトル和)2015年度GPGPU実践基礎工学 第11回 GPUでの並列プログラミング(ベクトル和)
2015年度GPGPU実践基礎工学 第11回 GPUでの並列 プログラミング(ベクトル和)
智啓 出川
 

Similar to Hello, DirectCompute (20)

GPGPUによるパーソナルスーパーコンピュータの可能性
GPGPUによるパーソナルスーパーコンピュータの可能性GPGPUによるパーソナルスーパーコンピュータの可能性
GPGPUによるパーソナルスーパーコンピュータの可能性
 
Cuda
CudaCuda
Cuda
 
NVIDIA Japan Seminar 2012
NVIDIA Japan Seminar 2012NVIDIA Japan Seminar 2012
NVIDIA Japan Seminar 2012
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
 
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
 
汎用グラフ処理モデルGIM-Vの複数GPUによる大規模計算とデータ転送の最適化
汎用グラフ処理モデルGIM-Vの複数GPUによる大規模計算とデータ転送の最適化汎用グラフ処理モデルGIM-Vの複数GPUによる大規模計算とデータ転送の最適化
汎用グラフ処理モデルGIM-Vの複数GPUによる大規模計算とデータ転送の最適化
 
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU
 
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
 
Maxwell と Java CUDAプログラミング
Maxwell と Java CUDAプログラミングMaxwell と Java CUDAプログラミング
Maxwell と Java CUDAプログラミング
 
シェーダーしよっ☆ Let's play shaders!
シェーダーしよっ☆ Let's play shaders!シェーダーしよっ☆ Let's play shaders!
シェーダーしよっ☆ Let's play shaders!
 
Linux KVM環境におけるGPGPU活用最新動向
Linux KVM環境におけるGPGPU活用最新動向Linux KVM環境におけるGPGPU活用最新動向
Linux KVM環境におけるGPGPU活用最新動向
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
 
3d graphics solution jp
3d graphics solution jp3d graphics solution jp
3d graphics solution jp
 
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
 
1070: CUDA プログラミング入門
1070: CUDA プログラミング入門1070: CUDA プログラミング入門
1070: CUDA プログラミング入門
 
GPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみたGPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみた
 
2015年度GPGPU実践基礎工学 第11回 GPUでの並列 プログラミング(ベクトル和)
2015年度GPGPU実践基礎工学 第11回 GPUでの並列プログラミング(ベクトル和)2015年度GPGPU実践基礎工学 第11回 GPUでの並列プログラミング(ベクトル和)
2015年度GPGPU実践基礎工学 第11回 GPUでの並列 プログラミング(ベクトル和)
 
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
 
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
 
20170421 tensor flowusergroup
20170421 tensor flowusergroup20170421 tensor flowusergroup
20170421 tensor flowusergroup
 

Recently uploaded

Recently uploaded (7)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

Hello, DirectCompute