Suche senden
Hochladen
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
•
Als KEY, PDF herunterladen
•
7 gefällt mir
•
3,858 views
Yosuke Onoue
Folgen
Technologie
Melden
Teilen
Melden
Teilen
1 von 35
Jetzt herunterladen
Empfohlen
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
Yosuke Onoue
GPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみた
Ryo Sakamoto
Cython intro prelerease
Cython intro prelerease
Shiqiao Du
llvm入門
llvm入門
MITSUNARI Shigeo
条件分岐とcmovとmaxps
条件分岐とcmovとmaxps
MITSUNARI Shigeo
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
MITSUNARI Shigeo
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング -GPGPUも-
Yusaku Watanabe
研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法
Takeshi Yamamuro
Empfohlen
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
Yosuke Onoue
GPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみた
Ryo Sakamoto
Cython intro prelerease
Cython intro prelerease
Shiqiao Du
llvm入門
llvm入門
MITSUNARI Shigeo
条件分岐とcmovとmaxps
条件分岐とcmovとmaxps
MITSUNARI Shigeo
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
MITSUNARI Shigeo
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング -GPGPUも-
Yusaku Watanabe
研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法
Takeshi Yamamuro
Prosym2012
Prosym2012
MITSUNARI Shigeo
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
MITSUNARI Shigeo
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
MITSUNARI Shigeo
Anaconda & NumbaPro 使ってみた
Anaconda & NumbaPro 使ってみた
Yosuke Onoue
フラグを愛でる
フラグを愛でる
MITSUNARI Shigeo
LLVM最適化のこつ
LLVM最適化のこつ
MITSUNARI Shigeo
C++のビルド高速化について
C++のビルド高速化について
AimingStudy
Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介
MITSUNARI Shigeo
Chainer v1.6からv1.7の新機能
Chainer v1.6からv1.7の新機能
Ryosuke Okuta
Wavelet matrix implementation
Wavelet matrix implementation
MITSUNARI Shigeo
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
MITSUNARI Shigeo
Chainer/CuPy v5 and Future (Japanese)
Chainer/CuPy v5 and Future (Japanese)
Seiya Tokui
optimal Ate pairing
optimal Ate pairing
MITSUNARI Shigeo
Emcjp item33,34
Emcjp item33,34
MITSUNARI Shigeo
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
TVM の紹介
TVM の紹介
Masahiro Masuda
R-hpc-1 TokyoR#11
R-hpc-1 TokyoR#11
Shintaro Fukushima
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
Ryo Sakamoto
Rの高速化
Rの高速化
弘毅 露崎
実用Brainf*ckプログラミング
実用Brainf*ckプログラミング
京大 マイコンクラブ
CuPy解説
CuPy解説
Ryosuke Okuta
CUDA 6の話@関西GPGPU勉強会#5
CUDA 6の話@関西GPGPU勉強会#5
Yosuke Onoue
Weitere ähnliche Inhalte
Was ist angesagt?
Prosym2012
Prosym2012
MITSUNARI Shigeo
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
MITSUNARI Shigeo
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
MITSUNARI Shigeo
Anaconda & NumbaPro 使ってみた
Anaconda & NumbaPro 使ってみた
Yosuke Onoue
フラグを愛でる
フラグを愛でる
MITSUNARI Shigeo
LLVM最適化のこつ
LLVM最適化のこつ
MITSUNARI Shigeo
C++のビルド高速化について
C++のビルド高速化について
AimingStudy
Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介
MITSUNARI Shigeo
Chainer v1.6からv1.7の新機能
Chainer v1.6からv1.7の新機能
Ryosuke Okuta
Wavelet matrix implementation
Wavelet matrix implementation
MITSUNARI Shigeo
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
MITSUNARI Shigeo
Chainer/CuPy v5 and Future (Japanese)
Chainer/CuPy v5 and Future (Japanese)
Seiya Tokui
optimal Ate pairing
optimal Ate pairing
MITSUNARI Shigeo
Emcjp item33,34
Emcjp item33,34
MITSUNARI Shigeo
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
TVM の紹介
TVM の紹介
Masahiro Masuda
R-hpc-1 TokyoR#11
R-hpc-1 TokyoR#11
Shintaro Fukushima
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
Ryo Sakamoto
Rの高速化
Rの高速化
弘毅 露崎
実用Brainf*ckプログラミング
実用Brainf*ckプログラミング
京大 マイコンクラブ
Was ist angesagt?
(20)
Prosym2012
Prosym2012
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
Anaconda & NumbaPro 使ってみた
Anaconda & NumbaPro 使ってみた
フラグを愛でる
フラグを愛でる
LLVM最適化のこつ
LLVM最適化のこつ
C++のビルド高速化について
C++のビルド高速化について
Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介
Chainer v1.6からv1.7の新機能
Chainer v1.6からv1.7の新機能
Wavelet matrix implementation
Wavelet matrix implementation
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
Chainer/CuPy v5 and Future (Japanese)
Chainer/CuPy v5 and Future (Japanese)
optimal Ate pairing
optimal Ate pairing
Emcjp item33,34
Emcjp item33,34
プログラムを高速化する話
プログラムを高速化する話
TVM の紹介
TVM の紹介
R-hpc-1 TokyoR#11
R-hpc-1 TokyoR#11
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
Rの高速化
Rの高速化
実用Brainf*ckプログラミング
実用Brainf*ckプログラミング
Andere mochten auch
CuPy解説
CuPy解説
Ryosuke Okuta
CUDA 6の話@関西GPGPU勉強会#5
CUDA 6の話@関西GPGPU勉強会#5
Yosuke Onoue
教育機関でのJetsonの活用の可能性
教育機関でのJetsonの活用の可能性
智啓 出川
Rsa暗号で彼女が出来るらしい
Rsa暗号で彼女が出来るらしい
Yosuke Onoue
Cuda fortranの利便性を高めるfortran言語の機能
Cuda fortranの利便性を高めるfortran言語の機能
智啓 出川
GPGPU Education at Nagaoka University of Technology: A Trial Run
GPGPU Education at Nagaoka University of Technology: A Trial Run
智啓 出川
GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)
GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)
智啓 出川
社会的決定とAHP
社会的決定とAHP
Yosuke Onoue
GPGPU Seminar (GPGPU and CUDA Fortran)
GPGPU Seminar (GPGPU and CUDA Fortran)
智啓 出川
Polymerやってみた
Polymerやってみた
Yosuke Onoue
AngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたい
Yosuke Onoue
Angular 2のRenderer
Angular 2のRenderer
Yosuke Onoue
AngularFireで楽々バックエンド
AngularFireで楽々バックエンド
Yosuke Onoue
GDG DevFest Kobe Firebaseハンズオン勉強会
GDG DevFest Kobe Firebaseハンズオン勉強会
Yosuke Onoue
PGI CUDA FortranとGPU最適化ライブラリの一連携法
PGI CUDA FortranとGPU最適化ライブラリの一連携法
智啓 出川
アニメーション(のためのパフォーマンス)の基礎知識
アニメーション(のためのパフォーマンス)の基礎知識
Yosuke Onoue
[関東GPGPU勉強会#2] ライブラリを使って大規模疎行列線形方程式を解いてみよう
[関東GPGPU勉強会#2] ライブラリを使って大規模疎行列線形方程式を解いてみよう
aokomoriuta
GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)
智啓 出川
PythonistaがOCamlを実用する方法
PythonistaがOCamlを実用する方法
Yosuke Onoue
PyCUDAの紹介
PyCUDAの紹介
Yosuke Onoue
Andere mochten auch
(20)
CuPy解説
CuPy解説
CUDA 6の話@関西GPGPU勉強会#5
CUDA 6の話@関西GPGPU勉強会#5
教育機関でのJetsonの活用の可能性
教育機関でのJetsonの活用の可能性
Rsa暗号で彼女が出来るらしい
Rsa暗号で彼女が出来るらしい
Cuda fortranの利便性を高めるfortran言語の機能
Cuda fortranの利便性を高めるfortran言語の機能
GPGPU Education at Nagaoka University of Technology: A Trial Run
GPGPU Education at Nagaoka University of Technology: A Trial Run
GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)
GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)
社会的決定とAHP
社会的決定とAHP
GPGPU Seminar (GPGPU and CUDA Fortran)
GPGPU Seminar (GPGPU and CUDA Fortran)
Polymerやってみた
Polymerやってみた
AngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたい
Angular 2のRenderer
Angular 2のRenderer
AngularFireで楽々バックエンド
AngularFireで楽々バックエンド
GDG DevFest Kobe Firebaseハンズオン勉強会
GDG DevFest Kobe Firebaseハンズオン勉強会
PGI CUDA FortranとGPU最適化ライブラリの一連携法
PGI CUDA FortranとGPU最適化ライブラリの一連携法
アニメーション(のためのパフォーマンス)の基礎知識
アニメーション(のためのパフォーマンス)の基礎知識
[関東GPGPU勉強会#2] ライブラリを使って大規模疎行列線形方程式を解いてみよう
[関東GPGPU勉強会#2] ライブラリを使って大規模疎行列線形方程式を解いてみよう
GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)
PythonistaがOCamlを実用する方法
PythonistaがOCamlを実用する方法
PyCUDAの紹介
PyCUDAの紹介
Ähnlich wie PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
Shiqiao Du
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
Computational Materials Science Initiative
Python で munin plugin を書いてみる
Python で munin plugin を書いてみる
ftnk
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
Preferred Networks
C base design methodology with s dx and xilinx ml
C base design methodology with s dx and xilinx ml
ssuser3a4b8c
Python physicalcomputing
Python physicalcomputing
Noboru Irieda
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
Masashi Shibata
Introduction to NumPy & SciPy
Introduction to NumPy & SciPy
Shiqiao Du
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
京大 マイコンクラブ
PCL
PCL
Masafumi Noda
Introduction to OpenCL (Japanese, OpenCLの基礎)
Introduction to OpenCL (Japanese, OpenCLの基礎)
Takahiro Harada
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU
Takuro Iizuka
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
Ryuuta Tsunashima
Introduction to Chainer (LL Ring Recursive)
Introduction to Chainer (LL Ring Recursive)
Kenta Oono
第11回 配信講義 計算科学技術特論B(2022)
第11回 配信講義 計算科学技術特論B(2022)
RCCSRENKEI
第12回 配信講義 計算科学技術特論B(2022)
第12回 配信講義 計算科学技術特論B(2022)
RCCSRENKEI
ディープラーニングフレームワーク とChainerの実装
ディープラーニングフレームワーク とChainerの実装
Ryosuke Okuta
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
Kohei KaiGai
“Symbolic bounds analysis of pointers, array indices, and accessed memory reg...
“Symbolic bounds analysis of pointers, array indices, and accessed memory reg...
Masahiro Sakai
200625material naruse
200625material naruse
RCCSRENKEI
Ähnlich wie PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
(20)
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
Python で munin plugin を書いてみる
Python で munin plugin を書いてみる
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
C base design methodology with s dx and xilinx ml
C base design methodology with s dx and xilinx ml
Python physicalcomputing
Python physicalcomputing
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
Introduction to NumPy & SciPy
Introduction to NumPy & SciPy
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
PCL
PCL
Introduction to OpenCL (Japanese, OpenCLの基礎)
Introduction to OpenCL (Japanese, OpenCLの基礎)
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
Introduction to Chainer (LL Ring Recursive)
Introduction to Chainer (LL Ring Recursive)
第11回 配信講義 計算科学技術特論B(2022)
第11回 配信講義 計算科学技術特論B(2022)
第12回 配信講義 計算科学技術特論B(2022)
第12回 配信講義 計算科学技術特論B(2022)
ディープラーニングフレームワーク とChainerの実装
ディープラーニングフレームワーク とChainerの実装
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
“Symbolic bounds analysis of pointers, array indices, and accessed memory reg...
“Symbolic bounds analysis of pointers, array indices, and accessed memory reg...
200625material naruse
200625material naruse
Mehr von Yosuke Onoue
asm.jsとWebAssemblyって実際なんなの?
asm.jsとWebAssemblyって実際なんなの?
Yosuke Onoue
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
Yosuke Onoue
AngularJSでの非同期処理の話
AngularJSでの非同期処理の話
Yosuke Onoue
What's New In Python 3.3をざっと眺める
What's New In Python 3.3をざっと眺める
Yosuke Onoue
数理最適化とPython
数理最適化とPython
Yosuke Onoue
201010ksmap
201010ksmap
Yosuke Onoue
Mehr von Yosuke Onoue
(6)
asm.jsとWebAssemblyって実際なんなの?
asm.jsとWebAssemblyって実際なんなの?
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
AngularJSでの非同期処理の話
AngularJSでの非同期処理の話
What's New In Python 3.3をざっと眺める
What's New In Python 3.3をざっと眺める
数理最適化とPython
数理最適化とPython
201010ksmap
201010ksmap
Kürzlich hochgeladen
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
Kürzlich hochgeladen
(8)
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
1.
PyOpenCLによるGPGPU入門
Tokyo.SciPy#4 編 @_likr
2.
お前、誰よ 尾上 洋介(@_likr) 関西大学大学院 総合情報学研究科M2 ナップザック問題とかやってる PythonとかOCamlが好き
3.
数理最適化とPython CPLEX
Python用ライブラリの提供 Gurobi インタラクティブシェルベースのUI Pyomo モデリング用ライブラリ
4.
発表概要 OpenCL / GPGPUの概要を解説 numpy.ndarrayライクのインタフェースで 細部を意識することなくGPGPUを利用 対応PyOpenCLのバージョンは 現行最新の2011.2と次期リリースの2012.1
5.
GPGPUの基礎
6.
GPGPUとは GPGPU : General
Purpose Computing on GPU GPUによる汎目的計算 スパコンなどでも利用 今後モバイルにも普及が進む(?)
7.
GPU処理の特徴 数百∼数千のコア 高速なメモリアクセス 高い費用対効果 演算性能向上率が高い
8.
OpenCLとは ヘテロジニアス並列環境のためのフレームワーク マルチコアCPU、GPU、DSP、FPGA
Host Device CPU Processor Bus Memory Memory
9.
OpenCLを使う利点 各社のGPUが対応 NVIDIA、AMD、Intel(Ivy Bridge) CPUでも並列計算可能 非プラットフォーム依存 ピュアなC/C++
10.
PyOpenCL Andreas Klöckner 氏が開発したPythonから OpenCL
APIにアクセスするためのライブラリ PyCUDAと同様のインタフェース
11.
PyOpenCLを使う利点 ソースコードが簡潔 コンパイル不要 カーネルコードは通常のOpenCLと共通 Pythonの各種ライブラリを利用可能 GPGPU概念の習得、アプリケーション開発に最適
12.
PyOpenCLの利用
13.
インストール 1 OpenCLのインストール NVIDIA
OpenCL AMD OpenCL Intel OpenCL Apple OpenCL
14.
インストール 2 pip install
numpy pip install mako pip install pyopencl OpenCLのインストール先が標準以外の場合、 OpenGL連携を有効にするなどの場合は ~/.aksetup-defaults.py を作成 http://d.hatena.ne.jp/likr/20120604#1338786247
15.
ContextとCommandQueue create_some_context()
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 実行時にデバイスと 3 4 import pyopencl as cl プラットフォームを 5 import numpy 6 選択 7 # Contextの作成 8 ctx = cl.create_some_context() CommandQueue 9 10 # CommandQueueの作成 host - device間の制御 11 queue = cl.CommandQueue(ctx) [onoue@localhost test]$ python sample.py Choose device(s): [0] <pyopencl.Device 'Tesla C2050' on 'NVIDIA CUDA' at 0xfd4000> [1] <pyopencl.Device 'GeForce GT 240' on 'NVIDIA CUDA' at 0xc85df0> Choice, comma-separated [0]:0
16.
Arrayオブジェクト device上のメモリ空間に確保される numpy.ndarrayを経由してやり取り #
host側メモリ host_a = numpy.random.rand(100) host_b = numpy.random.rand(100) # ndarrayからArrayオブジェクトを作成 dev_a = clarray.to_device(queue, host_a) # hostからdeviceへデータ転送 dev_a.set(host_b) # deviceからホストへデータ転送 host_c = dev_a.get()
17.
Arrayを直接生成する
host - device間のデータ転送はコストがかかる 簡単なデータ生成はdeviceで行うのが効率的 a = clarray.empty(queue, 100, numpy.float32) b = clarray.zeros(queue, 100, numpy.float32) c = clarray.arange(queue, 0, 1000, 10, dtype=numpy.float32) d = clrandom.rand(queue, 100, numpy.float32)
18.
同じ型のArrayを作る size, shape, dtypeが同じArrayを作る
e = clarray.empty_like(a) f = clarray.zeros_like(a)
19.
fill emptyで作成したArrayの初期化などに利用
a.fill(2.0) clrandom.fill_rand(e)
20.
演算子のサポート 二項演算はArray同士、
a+b -a Arrayとスカラー値で可能 a-b abs(a) ** は浮動小数点数のみ a*b a ** b bit演算は未対応 a/b len(a)
21.
リダクション
sum GPU上で効率よく計算するには テクニックが必要な処理が min 関数として提供 max
22.
性能比較
23.
n = 100000
numpy Core i7 920 GTX 465 a+b 0.0001 0.0004 0.0002 a+s 0.0001 0.0004 0.0002 a*b 0.0001 0.0004 0.0002 a*s 0.0001 0.0002 0.0002 sin(a) 0.0012 0.0004 0.0002 sum(a) 0.0001 0.0027 0.0005 dot(a) 0.0001 0.0027 0.0005 rand 0.0016 0.0001 0.0008
24.
n = 1000000
numpy Core i7 920 GTX 465 a+b 0.0013 0.0004 0.0004 a+s 0.0011 0.0004 0.0003 a*b 0.0013 0.0004 0.0003 a*s 0.0011 0.0002 0.0003 sin(a) 0.0124 0.0004 0.0003 sum(a) 0.0011 0.0028 0.0005 dot(a) 0.0012 0.0026 0.0005 rand 0.0158 0.0001 0.0041
25.
傾向 データサイズが十分に大きければOpenCLが 速い、n < 1000000ぐらいではnumpyが速い OpenCLではまだスケールしそう 数学関数、乱数生成はGPUが高速
26.
チューニングtips
27.
複合代入演算 a = a
+ bはa += bと書くとメモリが節約される __idiv__は未実装なので、 スカラー値による除算はa *= 1./sなどで対応 a = clarray.zeros(queue, 1000000, numpy.float32) start = time() for _ in range(10000): a += 2.0 stop = time() print stop - start # 0.942986965179 a = clarray.zeros(queue, 1000000, numpy.float32) start = time() for _ in range(10000): a = a + 2.0 stop = time() print stop - start # 3.3877761364
28.
数学関数の場合 clmathの関数は新しいメモリを確保する インプレースに演算するにはElementwiseKernel from pyopencl.elementwise
import ElementwiseKernel k = ElementwiseKernel(ctx, 'float* a', 'a[i] = sin(a[i]);') a = clarray.zeros(queue, 1000000, numpy.float32) start = time() for _ in range(10000): k(a) stop = time() print stop - start # 0.979743003845 a = clarray.zeros(queue, 1000000, numpy.float32) start = time() for _ in range(10000): a = clmath.sin(a) stop = time() print stop - start # 3.34474182129
29.
カーネル関数の適用 dataメソッドでBufferオブジェクトを取得
import pyopencl as cl from pyopencl import clrandom import numpy ctx = cl.create_some_context(False) queue = cl.CommandQueue(ctx) prg = cl.Program(ctx, '''//CL// __kernel void add2(__global float* a) { const int i = get_global_id(0); a[i] += 2; } ''').build() a = clrandom.rand(queue, 1000, numpy.float32) prg.add2(queue, a.shape, None, a.data)
30.
参考情報
31.
kyoto.py Pythonの勉強会 京都を中心とした関西圏で活動 活動予定
8月4日 OSC Kyoto 8月末頃 勉強会(予定) https://groups.google.com/forum/#!forum/kyotopy
32.
GPGPU勉強会 GPGPU関連技術、事例に関する 情報共有を目的 次回開催予定 関東 夏頃
関西 秋頃
33.
参考資料 1 CUDA プログラミング入門(白山工業 森野編) http://www.youtube.com/user/NVIDIAJapan はじめてのCUDAプログラミング ー脅威の開発環境[GPU+CUDA]を使いこなす! http://www.amazon.co.jp/dp/4777514773 PyCUDAの紹介
- PythonとAWSですぐ始めるGPUコンピューティング http://www.slideshare.net/likr/pycuda
34.
参考資料 2 改訂新版 OpenCL入門
1.2対応 マルチコアCPU・GPUのための並列プログラミング http://www.amazon.co.jp/dp/4844331728 The OpenCL Specification Version 1.2 http://www.khronos.org/registry/cl/specs/opencl-1.2.pdf PyOpenCL http://mathema.tician.de/software/pyopencl PyOpenCLハンズオン in kyoto.py 資料 http://pykyoto201109-pyopencl.s3-website-ap-northeast-1.amazonaws.com/pyopencl.html
35.
ご清聴ありがとございました
Hinweis der Redaktion
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Jetzt herunterladen