超音波流体屋のプログラム備忘録内検索 / 「cuda3.2のあれこれ」で検索した結果

検索 :
  • cuda3.2のあれこれ
    実行中凍る ディスプレイ兼用で長時間カーネルを走らせると凍るのは仕様。 計算用にもう一本GPUを用意するか、実行時間が少なくなるようカーネルを分割する。 unspecified launch failureについて cudaMemcpyとかの行に出現するけど、大半の原因は直前のカーネル実行。 大体2タイプあってsegmentation faultタイプとstack overflowタイプがある。 そして区別がつかない。 ひとまずカーネルで範囲外配列参照とかぬるぽとかしてないか前者の確認。 後者の対応はよく分からない。 GPUサイドのスタックはCPUのスタックよりかなり小さい印象。 ローカル変数とか関数呼び出しとかをできるだけ少なくするアルゴリズムにするぐらいか。 __device__ staticで扱っていた定数を__constant__に切り替えると直ったり MPI連携で外と...
  • メニュー
    ...算サーバー構築メモ cuda3.2のあれこれ OS別ソフト対応まとめ CentOS Linux 6.2への引越 CentOS6.2+AtokX3+親指シフト Mac帰還メモ CudaとGLX競合問題について Octave 古いパッケージリスト Fortran汎用コード 雑多なメモ 数値計算 分布点音源法(DPSM) 複素数引数ベッセル関数の実装 バターワースフィルタ定数 有限要素法 有限要素法・導出 積分前係数行列の導出 三角形要素・四面体要素 四角形要素・六面体要素 有限要素法・アルゴリズム 有限要素法・付録
  • トップページ
    ...011/08/04 cuda3.2のあれこれ 追加 2011/08/03 Ruby, matlab-octave, CUDA 3.2追加 名前 コメント
  • CUDA 3.2
    いわゆるところのHello world的なのがちょっと長め [以下cuda 3.2の話] 開始から終わりまで gpuinc.cu 単純に2だけ足すだけのプログラム #include stdio.h #include cutil.h  #define DATASIZE 10000#define THREADNUM 100 __constant__ double gpuinc; //コンスタントメモリ__global__ cudaKernel(double *gpumem){ int id = blockIdx.x*blockDim.x+threadIdx.x; gpumem[id] += gpuinc;} int main(int argc, char** argv)...
  • CULA Sparse (S5, CUDA 5.5)
    CULA Sparse はCUDA上で動作する疎行列用の線形システム反復解法ツール。 おまじないが20行くらいあって非常に煩雑であるため、 疎行列でも1000x1000くらいかそれ以下ならDense使ったほうがラク。 アカデミックならフリーで使える。ダウンロードは以下からID登録してから。 http //www.culatools.com/downloads/sparse/ linuxは落としてきた.runを管理者権限でbashで実行。 使用例 一次元ポアソン方程式を解く CULA Sparse 使い方の一例として、疎行列の代表例であるラプラシアンを含む微分方程式を解く。 行列の導出はこのページの最下部を見てもらうとして、こんな形状の行列を解く。 結果のyは上に凸の放物線になる。 $\left[ \begin{array}{cccccc} 2 -1 ...
  • CULA (R14, CUDA 4.4)
    CUDA 4.1, CULA Dense R14 版の(古い)情報です。 → CULA Dense (R17, CUDA 5.5) → CULA Sparse (S5, CUDA 5.5) CULA free editionならfloat, float complex限定、連立方程式・最小二乗法・LU分解あたりが使える。 ダウンロードは以下からID登録してから。 http //www.culatools.com/downloads/dense/ linuxは落としてきた.runを管理者権限でbashで実行。 今回はCULA Dense R14 free editoinを使用。 要CUDA 4.1だったので、CUDAも4.1にバージョンアップ。 ソース CULA使い方の一例として、連立方程式 Ax = bを解く話。 んで今回はMatlab記法で A=ones(...
  • CULA Dense (R17, CUDA 5.5)
    (CUDA 5.5, CULA Dense R17 版の情報です。) アカデミックならFull Editionが使える。 ダウンロードは以下からID登録してから。 http //www.culatools.com/downloads/dense/ linuxは落としてきた.runを管理者権限でbashで実行。 ソース R14の時のcutilが使えなくなったので、そのへんを修正。 参考 CUDA5.5+Fedora19 CUDA™ 5.5 開発環境をインストールする (Linux版) CULA使い方の一例として、連立方程式 Ax = bを解く話。 んで今回はMatlab記法で A=ones(10 000, 10 000)-eye(10 000); b=ones(10 000, 1); 対角成分だけ0、後は1の行列。解は確か全部 1/9999。 ...
  • CudaとGLX競合問題について
    環境 CentOS Linux 6.4 CUDA 5.5 + NVIDIA TESLA K20 表示はオンボードのIntel HD Graphics 症状 Paraview やらOpenGL系の三次元表示ソフトが下記のエラーを吐いて軒並み起動しない。 Xlib extension "GLX" missing on display " 0.0" 対処 NvidiaのX11系ドライバが悪さをする模様。 1.一旦 nvidia系のrpmを消す # yum erase nvidia-* 2.Xサーバを入れなおして再起動、xorg.confが残ってたらよけとく # yum reinstall xorg-x11-server-* # cd /etc/X11 # mv xorg.conf xorg.conf.old # r...
  • CentOS Linux 6.2への引越
    Windows7の入ったThinkpad T420sが来たので、引越しでやったことまとめ。 Linux領域の確保まで CentOSのisoを落としてきてDVDに焼いておく(DVD1,2と2枚あるものを選んでくること) 仮想化環境を使いたいならBIOSの設定をしておくこと。 GPUまわりの詳細設定やCUDAを使うことを考えるなら、NVIDIA OptimusもBIOSの時点で切っておくこと。 初期状態は160GB SSD中, MBR(?)100M, 20Gリカバリ, 残りwin7 リカバリ領域をDVDへ 管理ツール→コンピュータの管理でC を70Gに縮小 リカバリ領域は削除 インストール 領域が80Gくらいしかないのと、sda5までしかできないらしく、 特殊な何かがいるのでパーティションはインストーラ任せ そのあと適当にサイズ調整 /boot 500M /swap ...
  • 複素数引数ベッセル関数の実装
    (2015/03/27編集, 前の関数は遠方で発散するので) cuda上で複素数入力のハンケル関数(complex Bessel function, Hankel function)を扱いたかったんでメモ。 四角い車輪の再発明なので用途に困ったとき以外は素直にboostライブラリの関数や、fortranライブラリの流用を検討すること。 complex_bessel GitHub scipy.special.hankel2 SciPy Cyclic Hankel Functions boost.org amos http //www.netlib.org/amos/ 計算式 $\L J_n(z) = \sum_{m=0}^{\infty} \frac{(-1)^m}{m!(n+m)!} \left( \frac{z}{2} \right)^{2m+n...
  • 雑多なメモ
    新しいページを作るまでもない些細なPC関係のメモ Linux HDD追加 (2017年06月20日) サイズ・認識確認 # parted -l 編集 (gptを指定) # parted /dev/sdb (parted) mklabel (gptを選択) (parted) mkpart (ext4, 0%, 100%) スワップを新規追加したければ linux-swap フォーマット # mkfs.ext4 /dev/sdb1 # mkswap /dev/sdb2 マウント # mkdir /work # mount -t ext4 /dev/sdb1 /work # swapon /dev/sdb2 その後、fstabへの登録 その後swapをファイルとして追加したければ スワップをファイルとして追加したければ # ...
  • CLapack
    インストール (on CentOS 64bit 6.2) yumから以下をインストールする。 blas, blas-devel, atlas, atlas-devel, lapack, lapack-devel, arpack Linux で CLAPACK バージョン 3.2.1 のビルドとインストールに従ってclapack.tgzを落としてくる。 make.incの変更点は以下のとおり CC = gcc -DNO_BLAS_WRAP -m64 -fPIC -fomit-frame-pointer -O3 -fno-tree-vectorize -fexceptions -march=native -fopenmp (64bit, core-i7のため, 32bitとからなら -m64含めた先は不要らしい) LOADOPTS = -L/usr/lib64/atlas BLASLIB =...
  • OpenMPI
    環境的な問題でOpenMPI ver.1.6.5をインストールした時のメモ インストールなど OpenMPI現行バージョンは ver.1.10.2のため、yumでインストールすると 古いバージョンでコンパイルされているプログラムが動かない。 古いFedoraなど近いバージョンが入るなら良いが、CentOS 6.7の yumもver.1.8程度なので自分でインストールする。 mpif90をifort下で使用し、mpich2との競合を考えてデフォルトprefixはさける。 tar xvfz openmpi-1.6.5.tar.gz cd openmpi-1.6.5 export MPIROOT=/usr/lib64/openmpi ./configure --prefix=$MPIROOT FC=ifort make su make install sudo ma...
  • OS別ソフト対応まとめ
    近々macを移行しないといけないので、整理も兼ねて要る物・互換リスト。 (win/mac/linux) 絶対使うもの テキストエディタ(EmEditor free/mi Xcode/ gedit) バイナリエディタ(Stirling, 0xED, g2hex) inkscape gimp paraview MS Office/iWork/wineで動作? dvi閲覧(dviout, Mxdvi, xdvi他) 圧縮・解凍(各種, The Unarchiver, cui上?) VLC unix系 (macportから) platex(utf8) + TeXshop gnuplot octave texmacs + maxima imagemagick ffmpeg ネット関係 Firefox FileZilla (sFTPが使えるから) YoruFukurou V2C Ever...
  • Linux計算サーバー構築メモ
    Ubuntu 20 LTS ベースで計算サーバーとして運用する初期設定など インストール時 4K以上高解像度スクリーンは認識しないことがある (safeグラフィックでインストールする。) NFS環境を想定する場合はuid/gidを振りなおす。 UID/GIDは1000番以下は予約されているので2000番台を使うとあまり干渉しない。 変更対象からログアウトした後 groupadd group -g GID usermod user -u UID -g GID ドライバ関係 NVIDIAグラフィックカード BIOS/UEFIからsecure bootを無効化する。 aptに普通はあるのでドライババージョンを調べてインストールする。 (.runはaptと干渉することが多い) lspci | grep NVIDIA https //...
  • CentOS6.2+AtokX3+親指シフト
    CentOSにデフォルトでついてるiBus Anthyさんは親指シフトデフォルトでサポートしてくれるんですが、 なにぶん学習機能ほか他の日本語変換と比べて劣るところも多いわけで。 そんなわけでCentOS6.2下で親指シフトAtokX3を使う方法について調べた話。 追記 このパッチの当て方だとどうも日本語入力中はコピペCtrl+x,c,vあたりが動かないっぽい。直接入力中ならきちんと動くんだが。 濁音の連続みたいに連シフトのときは、きちんとシフトキーを離さないと無理らしい。 Atok X3のインストールCUI部分 GUIが効くうちに32bitモジュールであるgtk2-immodule-xim.i686をインストールする。 # init 3 でコマンドラインモードへ cdromの内容をマウントする。 # mount -r -t iso9660 /dev/cdrom /mnt...
  • NLopt
    NLoptは非線形(勾配利用型)最適化ライブラリ。 http //ab-initio.mit.edu/wiki/index.php/NLopt MATLAB用インストール MATLAB(Linux)で使いたいときは ./configure --enable-shared MEX=/usr/local/MATLAB/R2012b/bin/mex MEX_INSTALL_DIR=~/bin/nloptなど MATLAB(Windows版)は、http //ab-initio.mit.edu/wiki/index.php/NLopt_on_Windows MATLABで使用する場合は,要Visulal StudioでDLLから.libを生成したのち mexでコンパイルする必要がある。手順は下記の通り。 1.nlopt-2.4.2-dll64.zipの解凍、C \bin\...
  • Octave 古いパッケージリスト
    Octave 3.4.3でSignalのbutterを使いたい。 現行はOctave 3.6.3なのだが yumが追いついてないので手動ダウンロードする。 Octave Forge 古いpakageのリスト 注意 以降のリンクはすべてダウンロードリンク signal 1.1.2 現行 1.2.2 octave ( = 3.4.0), optim ( = 1.0.0), specfun, control ( = 2.2.3) optim 1.2.2 現行最新 octave ( = 2.9.7), miscellaneous ( = 1.0.10), struct ( = 1.0.10) specfun 1.1.0 現行最新 octave ( = 3.4.0) control 2.2.5 現行 2.6.1 octave ( = 3.4.0) misc...
  • MPICH2 (mpd, hydra)
    代表的なMPIソフト、MPICH2での並列計算方法の構築手順など。 CentOS Linux 6.5, mpich2 1.2.1。 ネットワークで繋がった複数の独立マシン間を通信する場合について扱う。 主にmpdの場合について扱うけど、バージョンが新しいhydra使うタイプのがずっと楽なので、 yumが対応してない場合は自分でビルドしたほうが良いかも。 1.双子マシンを準備する 最低限、Linuxのディストリビューションは揃える。 (CentOSとFedraで試したら、MPIライブラリの関係で駄目だった。) ユーザー名も共通の物を準備しておく。 2.MPICH2のインストール 全マシンに。バージョンも揃えたほうがよい。 gcc, gfortranで良いなら、yumで mpich2とmpich2-develを取ってくる。 インテルやPGIのコンパイラを使いたけ...
  • バターワースフィルタ定数
    Matlab / Octave のbutter関数を手実装したかったので。 アルゴリズムのみ記述する。理論的背景は参考URLを参照すること。 バターワース多項式 伝達関数$H(s)$は下記のバターワース多項式の逆数である[1]。(mは整数) $\L B(s) = \prod_{k=1}^{n/2} \left[ s^2 -2s \cos\left(\frac{2k+n-1}{2n}\pi\right) +1 \right]$ (for n=2m) $\L B(s) = (s+1)\prod_{k=1}^{(n-1)/2} \left[ s^2 -2s \cos\left(\frac{2k+n-1}{2n}\pi\right) +1 \right]$ (for n=2m+1) 例えば5次では下記の通り。 $B(s) = (s+1)\left[s^2 -2s\cos(6\...
  • PETSc
    PETScとはC/Fortranで使える、反復解法スパースソルバで有力なオープンソースコード。 PETScの入門的な使い方として、連立方程式の求解の計算例を示す。 https //www.mcs.anl.gov/petsc/index.html インストール https //www.mcs.anl.gov/petsc/documentation/installation.html make installがないので、使用予定の場所に解凍する。 (2016/10/20編集) OpenMPI環境で$MPI_ROOTにインストールされている場合下記が多分よい。 (追記)blas,lapackがyumで手に入っているなら--downloadの部分も不要。 その際libblas.soおよびliblapack.soにアクセスできるよう、適切なシンボリックリンクを貼ること。 ./...
  • Fortran
    Matlabが遅いよってことで一から勉強するよ Hello Worldまで コンパイラだけなら、linuxは常備(なかったらyumなどで)。 [Windows] OctaveかMingGW環境で手に入る。 Windowsならインストール後"C \Octave\Octave3.6.4_gcc4.6.2\mingw\bin"と"C \Octave\Octave3.6.4_gcc4.6.2\mingw\msys\1.0\bin" または、"C \MinGW\bin"と"C \MinGW\msys\1.0\bin"にパスを通しとくのを忘れないこと。 (LAPACKを使う予定があるならOctaveをいれておくこと) [Mac] macportsやhomebrewなどで、gfortranをインス...
  • 分布点音源法(DPSM)
    分布点音源法(Distributed Point Source Method, DPSM)とは、線形(音)場の解析手法の一つである。 手法としては、球面波の重ね合わせで音場を再現する点音源法に、境界要素法的な音場散乱の勘定が加わったものである。 複雑な定式化を有する境界要素法に比較して、原理・背景の理解が平易な計算手法であるので、 境界要素法の入門代わりに使うのも良いかもしれない。 多分2015年の現時点で日本語の教科書は無いので、興味があればページ末の英語の教科書を参照されたい。 このページでは流体中の線形音場について記述するが、 固体内の音場伝播やら線形空間微分方程式なら解けることになっているので必要に応じてページ末の教科書を参照すること。 本ページではMatlabまたはOctaveで実行可能なサンプルプログラムを付す。 https //github.com...
  • bash
    条件分岐 elifが特徴。" [ ", " ] "の前後には半角スペースを忘れずに。 i=0if [ $i -eq 1 ]; then echo $ielif [ $i -eq 2 ]; then echo $ielse echo $ifi if 文と test コマンド[1] ループ for i in 1 2 3; do echo $i done i=0while [ $i -ne 10 ]; do echo $i i=`expr $i + 1`done 無限ループ while [ 1 -eq 1 ]; dosleep 10done 置換 後方置換 (拡張子変換など, %で最短・%%で最長マッチ) for f in `ls *.dat`; do mv...
  • Lapack
    Fortran環境下で連立方程式を WindowsならMinGW前提で。 インストール linuxならrpm等から、WindowsはOctaveのディレクトリの中にあるのを流用する、 MacはXcodeのDeveloper s kitについてくるveclibが流用できる。 [Windows] dllがあるフォルダ"C \Octave\Octave3.6.4_gcc4.6.2\bin"にパスを通しておき その際liblapackがlibopenblasを求めるくせに無いので、 libblas.dllを複製してlibopenblas.dllとし、同フォルダにおいておく。 リンク Eclipse Photranを使っているなら [Windows] プロジェクトのプロパティ→Fortran Build→設定 ツール設定タブ→Fortran Li...
  • matlab-octave
    条件分岐 インタラクティブだと動かないかも。 if condition statementelseif condition statementelse statementend インタラクティブで動かすなら三項演算子的に var = (condition)*x + (!condition) *y ループ できるだけ行列演算で済ます方が賢い for I=1 col A( , I) = dat((I-1)*row+1 I*row);end ファイル読み書き データをスクリプト言語で行列に整えてload saveして結果をスクリプト言語処理が楽。 Cとほぼ同関数・フォーマットの入出力も可能 fid = fopen( filename , rb )...
  • C_and_C++
    ファイル読み書き #include stdio.h #include stdlib.h #include string.h  int main(void){ FILE *f; if ((f = fopen("hoge.dat", "r/w[b]")) == NULL){ printf("file open error!!\n"); exit(EXIT_FAILURE); }  //サイズとか fseek(f, 0, SEEK_END); long dsize = ftell(f); rewind(f); ...
  • Python
    atwikiは行番号を入れるとコピペ時インデントが飛ぶので、この文書では行番号は付けていない。 基本 インタラクティブモードは python3 windows実行時はminttyなど使用せず、cmdを使うほうが良い模様。 コメントは#、代入演算子(+=)は使えるがインクリメントはなし。 電気屋なのか複素数はj z=1+2j z.conjugate() ^はビット演算子(排他的ビット和)なのでpowを使う numpyなど毎回使うものは適当にスクリプトとして書いておき alias py="python3 -i ~/startup.py"とかすればよい import numpy as np import math as m import matplotlib.pyplot as plt 出力フォーマット %に続いておなじ...
  • 積分前係数行列の導出
    前 有限要素法・導出 にて省略した質量行列の作り方とか。 積分前の係数行列 $ [M] =\left[ \iiint \{N_n\} {}^t\{N_n\} dV \right] = \iiint [\tilde{M}] dV $ $ [K] =\left[ \iiint \{\nabla N_n\} {}^t\{\nabla N_n\} dV \right] = \iiint [\tilde{K}] dV $ $ [{\cal M}] = \iiint [\tilde{\cal M}] dV $ $ [{\cal K}] = \iiint[\tilde{\cal K}] dV $ における、$[\tilde{M}], [\tilde{K}], [\tilde{\cal M}], [\tilde{\cal K}]$を扱います。 数値積分については各要...
  • Ruby
    参考リンク オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル 逆引きRuby Exerbへようこそ 条件分岐 if condition statementelsif condition statementelse statementend 短いとき便利 statement if condtion 三項演算子も使用可能 var = condition ? x y ループ for i in 1..10 statement next if conditionend hoge.rb *.datとかやりたいときに for arg in ARGV print argend while condition1 statement break if condition2end ファイル読み書き fid = open...
  • 有限要素法・アルゴリズム
    六面体要素の例でアルゴリズム処理の並びを整理する。 プログラム上での便宜のために導出で用いなかった記号を用いる。 定数行列の準備 ${\cal C}_{ijkl} = \lambda \delta_{ij}\delta_{kl} + \mu (\delta_{ik}\delta_{jl} + \delta_{il}\delta_{jk}) $ $ S_{kn} = \left[ \begin{array}{cccccccc} 1 -1 -1 1 1 -1 -1 1 \\ 1 1 -1 -1 1 1 -1 -1 \\ 1 1 1 1 -1 -1 -1 -1 \end{array} \right]$ メッシュ 以下のように作成済みとする。 $ x_{ip} = \left[ \begin{array}{c...
  • 有限要素法・導出
    テンソル演算の嵐なのであまり入門用でないです。 あまり参考にしないように。 微分方程式 有限要素法使って解きたい支配方程式ってだいたいこの辺だろうか。 このページでは3式並列で離散化する。 物理的意味ではなく数理的意味が把握できたら他の微分方程式も応用が効くんじゃないかな。 弾性運動方程式 $\rho \ddot{\bf u} = {\rm div}{\bf \sigma} + \rho {\bf f} $ ポアソン方程式 $\nabla^2 \varphi = - \varrho/\varepsilon $ 波動方程式 $\nabla^2 \phi - (1/c^2)\ddot{\phi} = q$ 重み付け(仮想仕事の式) 上の式で厄介なのは、空間微分$\nabla$が関わった項。 これを処理する上での有限要素法のトリックは、両辺によくわか...
  • 三角形要素・四面体要素
    形状関数 $N= ^t \{ N_1, N_2, \cdots, N_n \}$の中身、その1。高次要素はやりません。 一次補完 ある物理量$f$を一次関数で補完する。 $f= ax + by + cz + o = \{x\ y\ z\ 1 \} \left\{ \begin{array}{c} a \\ b \\ c \\ o \end{array} \right\} = {}^t\tilde{\bf x} {\bf a} $ 二次元空間上なら3節点、三次元空間上なら4節点あれば係数$o, a, b, c$を決定できる。 四面体で導出するが、三角形は$c, z$を削るだけなので問題ないはず。 $ \left\{ \begin{array}{c} f_1 \\ f_2 \\ f_3 \\ f_4 \end{array} \right\} = \left[ \b...
  • 有限要素法・付録
    有限要素法・導出の付録部分。 積分形 今回の導出で使わないと思うが、積分形ならこんな形をしてる。 (弾) $ \iint {\bf \sigma} d{\bf S} = \iiint \rho (\ddot{\bf u} - {\bf f}) dV $ (ポ) $ \iint \nabla \varphi d{\bf S} = - \iiint \varrho/\varepsilon dV $ (波) $ \iint \nabla \phi d{\bf S} = \iiint (\ddot \phi/c^2 + q) dV $ 総和規約 このページでは、テンソル演算において総和記号$\Sigma$は使わない。 $\delta{\bf \epsilon} {\bf \sigma} = \epsilon_{ij} \sigma_{ij} = \sum_{...
  • @wiki全体から「cuda3.2のあれこれ」で調べる

更新順にページ一覧表示 | 作成順にページ一覧表示 | ページ名順にページ一覧表示 | wiki内検索

目安箱バナー