<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Satoshi OHSHIMA’s website</title>
	<atom:link href="http://exth.net/~ohshima/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://exth.net/~ohshima/wordpress</link>
	<description>GPGPUメインな研究者の情報発信所</description>
	<lastBuildDate>Mon, 21 Jun 2010 15:01:45 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>NVIDIA Parallel Nsightを導入してみた</title>
		<link>http://exth.net/~ohshima/wordpress/2010/06/21/55/</link>
		<comments>http://exth.net/~ohshima/wordpress/2010/06/21/55/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 14:43:53 +0000</pubDate>
		<dc:creator>ohshima</dc:creator>
				<category><![CDATA[CUDA]]></category>

		<guid isPermaLink="false">http://exth.net/~ohshima/wordpress/?p=55</guid>
		<description><![CDATA[とりあえずのメモであり、設定の漏れなどがある可能性は否定できません。暫定。 NVIDIA Parallel Nsightとは？ VisualStudioに統合されたCUDAデバッガ。実際にCUDA対応のGPUを用いるハードウェアデバッガ。一時期NVIDIA Nexusという名前で発表されていたモノ。商標やら何やらの都合で名称変更したのかな？ 使い方（導入準備編） Betaプログラムに無料登録するとダウンロード可能になる。 HostとMonitorが組になっており、HostがVisualStudioと統合された環境、MonitorがGPUにアクセスするプログラム。両方同じPCに導入するローカルでバッグと、それぞれ個別に導入するリモートデバッグが可能。HostもMonitorもWindowsが必要なことを考えるとローカルデバッグの方がやりやすそうな気がするけど、実はローカルデバッグを行うにはGPUが2枚必要。1枚がCUDA対応ならOKなのは救いだが、物理的に2枚のGPUが刺さらないような環境の人はご愁傷様と言わざるを得ない。 使い方（使用準備編） VisualStudio2008（以下VS2k8）とNVIDIAドライバとHostとMonitorをインストールする。ToolkitやSDKは不要、というかNsightに最新版が入っている。 （実際にToolkitとSDKが入っていない環境を使ったわけではないので、もしかしたら間違っているかも？） インストールは単純にインストーラを実行するだけでOKだが、後述するようにインストール後の設定は必要。 インストールするとスタートメニューに「NVIDIA Parallel Nsight 1.0」および「NVIDIA Parallel Nsight Monitor 1.0」というフォルダが追加される。前者に「User Guide」が含まれているのでこれに従えば良い、が、全部英語で悔しい人もいると思うので簡単に解説しておく。 (Installation and Setup EssentialsとWalkthroughを斜め読みすれば何とかなるので、できれば読んで欲しい。) 簡単に説明すると、以下のような準備作業が必要： VS2k8とドライバとHostとMonitorの導入（済） Minitorを起動しオプションをいじる Hostを起動しオプションをいじる それから、GPUの接続にはちょっと注意が必要。 使い方（GPU接続編） １つのGPUに表示とデバッグを行わせると、不具合が起きる……かもしれない。ので、回避する。 デバッグに使いたいGPUもDVIでモニタにつないだ状態で起動し、NVIDIA コントロールパネルで出力を切る。運用を間違えるとディスプレイがもったいない気はするが、なんとかする。 このへんは「UserGuide」の「How To: Setup Local Headless GPU Debugging」に絵が付いているので、英語がわからなくてもそちらを見た方が良い。（メニュー項目さえ読み替えれば良いので。） ついでに、Aeroが有効な状態だとデバッグできないようなので、Windows7ベーシックテーマを使うように設定するなどして回避しておく。（個人的にAlt+Tabがしょんぼりになるのが嫌なのだが……。） 使い方（Monitor設定編） （UserGuideではHostが先なんだけど、気にしない。） Monitorを起動すると、UAC警告・防火壁設定あたりが出た後にタスクトレイにアイコンが増える。右クリックから「Options&#8230;」を選ぶと設定画面が出る。 左のツリーで「Security」を選び、右のEnabled secure serverをTrueにする。リモートデバッグを行う場合はEnable per machine permissions等もいじる……はずなのだが、一度Trueで接続確認したあとはFalseにしてもつながってしまった。Trueだと接続コントロールあり、Falseだと接続コントロール無し＝誰でもつながれる、かも？ それから「General」の「WDDM　TDR　enabled」はFalseにしておくこと。これはおそらく「ドライバによるGPUアプリ強制ｎ秒殺し」回避だと思われる。 Monitorの設定はこれだけ。ポップアップで再起動を促されることもあるので、その際は素直に右クリックメニューから終了して起動し直すべし。 使い方（Host設定編） [...]]]></description>
			<content:encoded><![CDATA[<div class="section">
<p>とりあえずのメモであり、設定の漏れなどがある可能性は否定できません。暫定。</p>
<h4 id="hs_7ba8293d440eea30315f63c59f09d223_header_0">NVIDIA Parallel Nsightとは？</h4>
<p>VisualStudioに統合されたCUDAデバッガ。実際にCUDA対応のGPUを用いるハードウェアデバッガ。一時期NVIDIA Nexusという名前で発表されていたモノ。商標やら何やらの都合で名称変更したのかな？</p>
<p></p>
<h4 id="hs_7ba8293d440eea30315f63c59f09d223_header_1">使い方（導入準備編）</h4>
<p>Betaプログラムに無料登録するとダウンロード可能になる。</p>
<p>HostとMonitorが組になっており、HostがVisualStudioと統合された環境、MonitorがGPUにアクセスするプログラム。両方同じPCに導入するローカルでバッグと、それぞれ個別に導入するリモートデバッグが可能。HostもMonitorもWindowsが必要なことを考えるとローカルデバッグの方がやりやすそうな気がするけど、実はローカルデバッグを行うにはGPUが2枚必要。1枚がCUDA対応ならOKなのは救いだが、物理的に2枚のGPUが刺さらないような環境の人はご愁傷様と言わざるを得ない。</p>
<p></p>
<h4 id="hs_7ba8293d440eea30315f63c59f09d223_header_2">使い方（使用準備編）</h4>
<p>VisualStudio2008（以下VS2k8）とNVIDIAドライバとHostとMonitorをインストールする。ToolkitやSDKは不要、というかNsightに最新版が入っている。</p>
<p>（実際にToolkitとSDKが入っていない環境を使ったわけではないので、もしかしたら間違っているかも？）</p>
<p>インストールは単純にインストーラを実行するだけでOKだが、後述するようにインストール後の設定は必要。</p>
<p></p>
<p>インストールするとスタートメニューに「NVIDIA Parallel Nsight 1.0」および「NVIDIA Parallel Nsight Monitor 1.0」というフォルダが追加される。前者に「User Guide」が含まれているのでこれに従えば良い、が、全部英語で悔しい人もいると思うので簡単に解説しておく。</p>
<p>(Installation and Setup EssentialsとWalkthroughを斜め読みすれば何とかなるので、できれば読んで欲しい。)</p>
<p>簡単に説明すると、以下のような準備作業が必要：</p>
<ol>
<li>VS2k8とドライバとHostとMonitorの導入（済）</li>
<li>Minitorを起動しオプションをいじる</li>
<li>Hostを起動しオプションをいじる</li>
</ol>
<p>それから、GPUの接続にはちょっと注意が必要。</p>
<p></p>
<h4 id="hs_7ba8293d440eea30315f63c59f09d223_header_3">使い方（GPU接続編）</h4>
<p>１つのGPUに表示とデバッグを行わせると、不具合が起きる……かもしれない。ので、回避する。</p>
<p>デバッグに使いたいGPUもDVIでモニタにつないだ状態で起動し、NVIDIA コントロールパネルで出力を切る。運用を間違えるとディスプレイがもったいない気はするが、なんとかする。</p>
<p>このへんは「UserGuide」の「How To: Setup Local Headless GPU Debugging」に絵が付いているので、英語がわからなくてもそちらを見た方が良い。（メニュー項目さえ読み替えれば良いので。）</p>
<p>ついでに、Aeroが有効な状態だとデバッグできないようなので、Windows7ベーシックテーマを使うように設定するなどして回避しておく。（個人的にAlt+Tabがしょんぼりになるのが嫌なのだが……。）</p>
<p></p>
<h4 id="hs_7ba8293d440eea30315f63c59f09d223_header_4">使い方（Monitor設定編）</h4>
<p>（UserGuideではHostが先なんだけど、気にしない。）</p>
<p>Monitorを起動すると、UAC警告・防火壁設定あたりが出た後にタスクトレイにアイコンが増える。右クリックから「Options&#8230;」を選ぶと設定画面が出る。</p>
<p>左のツリーで「Security」を選び、右のEnabled secure serverをTrueにする。リモートデバッグを行う場合はEnable per machine permissions等もいじる……はずなのだが、一度Trueで接続確認したあとはFalseにしてもつながってしまった。Trueだと接続コントロールあり、Falseだと接続コントロール無し＝誰でもつながれる、かも？</p>
<p>それから「General」の「WDDM　TDR　enabled」はFalseにしておくこと。これはおそらく「ドライバによるGPUアプリ強制ｎ秒殺し」回避だと思われる。</p>
<p></p>
<p>Monitorの設定はこれだけ。ポップアップで再起動を促されることもあるので、その際は素直に右クリックメニューから終了して起動し直すべし。</p>
<p></p>
<h4 id="hs_7ba8293d440eea30315f63c59f09d223_header_5">使い方（Host設定編）</h4>
<p>Hostの設定というか、そもそもデバッグするプログラム（VS208プロジェクト）が必要なのだが、とりあえず全般的な設定から。</p>
<p></p>
<p>VS2k8を起動するとMonitor同様のアイコンやNsightと書かれたメニュー追加されているのに気がつくはず。Nsightメニューから「Nsight Options&#8230;」を選んで設定ダイアログを出し、GeneralのSecurityのEnable secure connectionをTrueにしておく。</p>
<p></p>
<p>プロジェクトファイルは</p>
<p>C:\ProgramData\NVIDIA Nsight 1.0\Samples\CUDA\Debugging\Matrix Multiply</p>
<p>にある行列積を使ってみる。</p>
<p>matrixMul_vc90.vcprojを開けば良い。</p>
<p>ソリューションエクスプローラでプロジェクト名を右クリックするとNsight User Propertiesというメニュー項目があるので選択し、設定ダイアログを出す。</p>
<p>Launch OptionsのConnection name:にMonitorのアドレス（IPでも名前でも、ネットワーク的に理解可能ならOK）を記入する。ローカルデバッグならlocalhostでOK。</p>
<h4 id="hs_7ba8293d440eea30315f63c59f09d223_header_6">実行編</h4>
<p>メニューのNsightからStart CUDA Debuggingを選べばOK。</p>
<p>うまくいかない場合はHost側＝VS2k8の出力やらMonitorのポップアップやらでエラーが見えるはずなので、なんとかする。</p>
<p>Nsightメニュー内にある「Enable CUDA Kernel Launch Debugging」が有効ならGPU kernel内の変数トレースも可能。メモリダンプ的なことも可能。</p>
<p>「CUDA Debug Focus&#8230;」を選んで出てくるGUIを使えばBlockやThreadを選んで変数をチェックすることも可能。</p>
<p>「New Analysis Activity」を選んで出てくるGUIを使えばプロファイリングも可能。（非常に大雑把に言うと、適当にオプションをいじって下の方にあるLaunchを押せばOK。）</p>
<p></p>
<h4 id="hs_7ba8293d440eea30315f63c59f09d223_header_7">その他注意点など</h4>
<p>リモートデバッグ時には実際にアプリが動くのはMonitor側になるわけだが、ここでEnterを押したら終わるようなプログラムを動かすと、ちゃんとMonitor側で押してあげないと駄目になるわけで、手元にMonitorが無いと残念なことになる。</p>
<p>だいたいこんなかんじです。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://exth.net/~ohshima/wordpress/2010/06/21/55/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>久々にサンプルプログラムなどを公開</title>
		<link>http://exth.net/~ohshima/wordpress/2010/06/08/52/</link>
		<comments>http://exth.net/~ohshima/wordpress/2010/06/08/52/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 17:36:38 +0000</pubDate>
		<dc:creator>ohshima</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://exth.net/~ohshima/wordpress/?p=52</guid>
		<description><![CDATA[職場の発刊物に書いた記事のサンプルプログラムを公開した。内容的には非常に初歩的で薄っぺらだが、一応。 今実装などしているものが少し落ち着いたら続きも公開したいところだが、、、。 公開先→スパコンニュース]]></description>
			<content:encoded><![CDATA[<div class="section">
<p>職場の発刊物に書いた記事のサンプルプログラムを公開した。内容的には非常に初歩的で薄っぺらだが、一応。</p>
<p>今実装などしているものが少し落ち着いたら続きも公開したいところだが、、、。</p>
<p></p>
<p>公開先→<a href="http://exth.net/~ohshima/cgi-bin/fswiki/wiki.cgi?page=%A5%B9%A5%D1%A5%B3%A5%F3%A5%CB%A5%E5%A1%BC%A5%B9">スパコンニュース</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://exth.net/~ohshima/wordpress/2010/06/08/52/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>近況報告</title>
		<link>http://exth.net/~ohshima/wordpress/2009/10/19/32/</link>
		<comments>http://exth.net/~ohshima/wordpress/2009/10/19/32/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 07:05:17 +0000</pubDate>
		<dc:creator>ohshima</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://exth.net/~ohshima/wordpress/?p=32</guid>
		<description><![CDATA[最近ちっとも更新していない大島です． お誘いを受けて職場を異動しました．なかなかこのページに書くのにちょうど良いネタがありません．しばらくは，日々のネタは「向こうのサイト」に，学会発表等の情報はwikiに書くつもりでいます． 以上，近況報告終わり．]]></description>
			<content:encoded><![CDATA[<div class="section">
<p>最近ちっとも更新していない大島です．</p>
<p>お誘いを受けて職場を異動しました．なかなかこのページに書くのにちょうど良いネタがありません．しばらくは，日々のネタは「向こうのサイト」に，学会発表等の情報はwikiに書くつもりでいます．</p>
<p></p>
<p>以上，近況報告終わり．</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://exth.net/~ohshima/wordpress/2009/10/19/32/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>投稿テスト</title>
		<link>http://exth.net/~ohshima/wordpress/2009/06/29/31/</link>
		<comments>http://exth.net/~ohshima/wordpress/2009/06/29/31/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 07:45:14 +0000</pubDate>
		<dc:creator>ohshima</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://exth.net/~ohshima/wordpress/2009/06/29/31/</guid>
		<description><![CDATA[投稿テスト by iPhone]]></description>
			<content:encoded><![CDATA[<div class="section">
<p>投稿テスト by iPhone</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://exth.net/~ohshima/wordpress/2009/06/29/31/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WindowsでCUDAを使うための方法に関するメモ</title>
		<link>http://exth.net/~ohshima/wordpress/2009/05/13/30/</link>
		<comments>http://exth.net/~ohshima/wordpress/2009/05/13/30/#comments</comments>
		<pubDate>Wed, 13 May 2009 06:10:49 +0000</pubDate>
		<dc:creator>ohshima</dc:creator>
				<category><![CDATA[CUDA]]></category>

		<guid isPermaLink="false">http://exth.net/~ohshima/wordpress/2009/05/13/30/</guid>
		<description><![CDATA[はじめに 新年度になり，新たにCUDAに関する研究を行ってみたいという学生が増えてくるだろうということで，ざっとメモしておきます． ちなみにLinuxを用いる場合はこちら．（記述が古いですが，まぁ大枠は一緒でしょう．） ここでは最低限の環境としてビデオカードを無視した内容を記述します．CUDA対応GPUが搭載されていなくても大丈夫です．なお，OSはWindowsXP Professionalを想定しています．他のWindowsの場合は適宜読み替えてください． 準備：必要なソフトウェアの導入 CUDA Toolkit（CUDAツールキット） CUDA SDK code samples（CUDA　SDKコードサンプル） VisualStudio（VisualC++）2008 ToolkitとSDKは[http://www.nvidia.com/object/cuda_get.html:title=]からダウンロードし，順番にを実行してインストールしましょう．（日本語サイトを利用する場合はこちら：[http://www.nvidia.co.jp/object/cuda_get_jp.html:title=]．私は習慣的に本家を利用していますが，おそらくどちらでも大丈夫．） CUDA対応GPUを搭載しているPCの場合はついでにドライバも導入しておきましょう． VisualStudioは，持っていない場合は[http://www.microsoft.com/japan/msdn/vstudio/Express/:title=]からVisualC++2008ExpressEditionを入手しましょう．無料で利用できます．（大学生・大学院生の場合は先生や事務に問い合わせると無料で上位の製品が使えたりすることもあるようです．） CUDA ToolkitはデフォルトでC:\CUDAにインストールされます． CUDA SDK code samplesはデフォルトでC:\Document and Settings\All Users\の中にインストールされますが，ここではC:\Program Files\NVIDIA Corporation\NVIDIA CUDA SDKにインストールしたとして話を進めます．（少し前のバージョンまではこちらでした．） VisualStudioはデフォルトでC:\Program Files\Microsoft Visual 9.0にインストールされます． インストールが終わったら，コマンドプロンプトを開き（ファイル名を指定して実行からcmd.exe），nvcc(nvcc.exe)とcl(cl.exe)が実行できることを確認しましょう．実行できない場合はそれぞれのパス（C:\CUDA\binおよびC:\Program Files\Microsoft Visual Studio 9.0\VC\bin）を環境変数PATHに追加してください．（詳細な操作手順はweb検索すればすぐにわかるので説明しません．） なお，nvccが実行できない場合はCUDA_BIN_PATH，CUDA_INC_PATH，CUDA_LIB_PATH（それぞれC:\CUDA以下のbin,include,lib）なども追加されていないかもしれません．（再インストールした方が良いかも？） clは実行するとmspdb80.dllが無いなどと言った警告が出るかもしれませんが，ここでは無視して構いません． 以上で準備が整いました． コードの記述とコンパイル，実行 それでは実際にコードを記述しコンパイルしてみることにします． 今回は先ほどインストールしたCUDA SDK code samplesに含まれているプログラムを利用してみます． C:\Program Files\NVIDIA Corporation\NVIDIA CUDA SDK\projects 以下に多数のサンプルがインストールされており，それぞれ.slnファイルが同梱されています． C:\Program Files\NVIDIA [...]]]></description>
			<content:encoded><![CDATA[<div class="section">
<h3 id="hs_b1b94093dac47ee4210897ee575b7c00_header_0">はじめに</h3>
<p>新年度になり，新たにCUDAに関する研究を行ってみたいという学生が増えてくるだろうということで，ざっとメモしておきます．</p>
<p>ちなみにLinuxを用いる場合は<a href="http://exth.net/~ohshima/wordpress/2007/10/31/11/">こちら</a>．（記述が古いですが，まぁ大枠は一緒でしょう．）</p>
<p></p>
<p>ここでは最低限の環境としてビデオカードを無視した内容を記述します．CUDA対応GPUが搭載されていなくても大丈夫です．なお，OSはWindowsXP Professionalを想定しています．他のWindowsの場合は適宜読み替えてください．</p>
<p></p>
<h3 id="hs_b1b94093dac47ee4210897ee575b7c00_header_1">準備：必要なソフトウェアの導入</h3>
<h4 id="hs_b1b94093dac47ee4210897ee575b7c00_header_2">CUDA Toolkit（CUDAツールキット）</h4>
<h4 id="hs_b1b94093dac47ee4210897ee575b7c00_header_3">CUDA SDK code samples（CUDA　SDKコードサンプル）</h4>
<h4 id="hs_b1b94093dac47ee4210897ee575b7c00_header_4">VisualStudio（VisualC++）2008</h4>
<p>ToolkitとSDKは[http://www.nvidia.com/object/cuda_get.html:title=]からダウンロードし，順番にを実行してインストールしましょう．（日本語サイトを利用する場合はこちら：[http://www.nvidia.co.jp/object/cuda_get_jp.html:title=]．私は習慣的に本家を利用していますが，おそらくどちらでも大丈夫．）</p>
<p>CUDA対応GPUを搭載しているPCの場合はついでにドライバも導入しておきましょう．</p>
<p>VisualStudioは，持っていない場合は[http://www.microsoft.com/japan/msdn/vstudio/Express/:title=]からVisualC++2008ExpressEditionを入手しましょう．無料で利用できます．（大学生・大学院生の場合は先生や事務に問い合わせると無料で上位の製品が使えたりすることもあるようです．）</p>
<p></p>
<p>CUDA ToolkitはデフォルトでC:\CUDAにインストールされます．</p>
<p>CUDA SDK code samplesはデフォルトでC:\Document and Settings\All Users\の中にインストールされますが，ここではC:\Program Files\NVIDIA Corporation\NVIDIA CUDA SDKにインストールしたとして話を進めます．（少し前のバージョンまではこちらでした．）</p>
<p>VisualStudioはデフォルトでC:\Program Files\Microsoft Visual 9.0にインストールされます．</p>
<p></p>
<p>インストールが終わったら，コマンドプロンプトを開き（ファイル名を指定して実行からcmd.exe），nvcc(nvcc.exe)とcl(cl.exe)が実行できることを確認しましょう．実行できない場合はそれぞれのパス（C:\CUDA\binおよびC:\Program Files\Microsoft Visual Studio 9.0\VC\bin）を環境変数PATHに追加してください．（詳細な操作手順はweb検索すればすぐにわかるので説明しません．）</p>
<p>なお，nvccが実行できない場合はCUDA_BIN_PATH，CUDA_INC_PATH，CUDA_LIB_PATH（それぞれC:\CUDA以下のbin,include,lib）なども追加されていないかもしれません．（再インストールした方が良いかも？）</p>
<p>clは実行するとmspdb80.dllが無いなどと言った警告が出るかもしれませんが，ここでは無視して構いません．</p>
<p></p>
<p>以上で準備が整いました．</p>
<p></p>
<h3 id="hs_b1b94093dac47ee4210897ee575b7c00_header_5">コードの記述とコンパイル，実行</h3>
<p>それでは実際にコードを記述しコンパイルしてみることにします．</p>
<p></p>
<p>今回は先ほどインストールしたCUDA SDK code samplesに含まれているプログラムを利用してみます．</p>
<p>C:\Program Files\NVIDIA Corporation\NVIDIA CUDA SDK\projects</p>
<p>以下に多数のサンプルがインストールされており，それぞれ.slnファイルが同梱されています．</p>
<p>C:\Program Files\NVIDIA Corporation\NVIDIA CUDA SDK\projects\deviceQuery\deviceQuery_vc90.sln</p>
<p>を開いてビルドすれば実行ファイルが生成され，実行すればCUDA対応GPUが搭載されていなくてもデバイスエミュレーションで動きます．（GPUの性能がコマンドプロンプトにテキスト表示されます．）</p>
<p></p>
<p>また，deviceQuery.cppを別の作業フォルダにコピーし，拡張子をcuに変更し，コマンドプロンプトから</p>
<p>>nvcc deviceQuery.cu -I&#8221;C:\Program Files\NVIDIA Corporation\NVIDIA CUDA SDK\common\inc&#8221; -L&#8221;C:\Program Files\NVIDIA Corporation\NVIDIA CUDA SDK\common\lib&#8221; -lcutil32 -o deviceQuery</p>
<p>とすれば実行ファイルdeviceQuery.exeが作成されます．</p>
<p>こうして作成されたdeviceQuery.exeは実行しようとするとcutil32.dllが無いと怒られてしまうので，実行前に</p>
<p>C:\Program Files\NVIDIA Corporation\NVIDIA CUDA SDK\common\lib\cutil32.dll</p>
<p>を</p>
<p>C:\Windows\sytem32</p>
<p>以下にコピーしておきましょう．</p>
<p></p>
<h3 id="hs_b1b94093dac47ee4210897ee575b7c00_header_6">おわりに</h3>
<p>以上，CUDAに触れるための方法を簡単にまとめてみました．テキストばかりで書いてしまいましたが，難しいところは特に無いと思います．</p>
<p>ちなみにこの記事は私が実際にVM上のWindowsXP Professionalでやったことのメモなので，うまく動かないということはそうそう無いと思いますが，何か記述抜けなどがあるかもしれないので，不具合などありましたら気軽にコメントで指摘してやってください．</p>
<p></p>
<p>今回のプログラム（deviceQuery）はGPUの情報を取得するだけのプログラムであり，この段階ではまだGPUは何も計算していません．実際に計算させる方法については，また機会があれば書くかも？（過去に書いた記事がカバーしている上に，それこそサンプルを見れば良い気がするのであまり必要性は感じませんが．）</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://exth.net/~ohshima/wordpress/2009/05/13/30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CUDAでLU分解テスト</title>
		<link>http://exth.net/~ohshima/wordpress/2008/10/23/28/</link>
		<comments>http://exth.net/~ohshima/wordpress/2008/10/23/28/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 15:04:07 +0000</pubDate>
		<dc:creator>ohshima</dc:creator>
				<category><![CDATA[CUDA]]></category>

		<guid isPermaLink="false">http://exth.net/~ohshima/wordpress/2008/10/23/28/</guid>
		<description><![CDATA[昔作ったものを発掘． 誰かの参考になるかも知れないのでとりあえずアップしておきます． 単純なLU分解を適当にBlock並列化．Block並列化に走ったので変な同期関数（MPI_Barrierというなの強引なBlock間同期）が入っているあたりはちょっと謎ですが，作成したのがかなり前なのでよくわかりません． 特に価値のあるソースコードでもないので，いわゆる「煮るなり焼くなり好きにしろライセンス」扱いでどうぞ． 20080123lu.zip]]></description>
			<content:encoded><![CDATA[<div class="section">
<p>昔作ったものを発掘．</p>
<p>誰かの参考になるかも知れないのでとりあえずアップしておきます．</p>
<p></p>
<p>単純なLU分解を適当にBlock並列化．Block並列化に走ったので変な同期関数（MPI_Barrierというなの強引なBlock間同期）が入っているあたりはちょっと謎ですが，作成したのがかなり前なのでよくわかりません．</p>
<p></p>
<p>特に価値のあるソースコードでもないので，いわゆる「煮るなり焼くなり好きにしろライセンス」扱いでどうぞ．</p>
<p></p>
<p><a href='http://exth.net/~ohshima/wordpress/wp-content/uploads/2008/10/lu.zip' title='20080123lu'>20080123lu.zip</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://exth.net/~ohshima/wordpress/2008/10/23/28/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CUDA謎の実行結果（__syncthreadsの使い方が悪い？）</title>
		<link>http://exth.net/~ohshima/wordpress/2008/01/30/27/</link>
		<comments>http://exth.net/~ohshima/wordpress/2008/01/30/27/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 17:03:01 +0000</pubDate>
		<dc:creator>ohshima</dc:creator>
				<category><![CDATA[CUDA]]></category>

		<guid isPermaLink="false">http://exth.net/~ohshima/wordpress/2008/01/30/27/</guid>
		<description><![CDATA[実験的に行列積の並列化を行っていたところ、突然実行結果が合わなくなるという症状に見舞われた。 今のところ、BLOCKとTHREADの数を増やし、__syncthreadsを多く使うことで安定している気はする。 少なくとも10sec制限には引っかかっていない。 Sharedメモリを少し叩いているので、その辺が悪さをしているのだろうか？意外と難しい。こういうときにどうやってバグを発見・排除すればよいのか……。 （__syncthreadsが少ない時に全く同一の問題設定で計算結果が狂うことがあることを考えると、恐らく__syncthreadsの使いどころを間違えているのであろうと予想することはできる。）]]></description>
			<content:encoded><![CDATA[<div class="section">
<p>実験的に行列積の並列化を行っていたところ、突然実行結果が合わなくなるという症状に見舞われた。</p>
<p>今のところ、BLOCKとTHREADの数を増やし、__syncthreadsを多く使うことで安定している気はする。</p>
<p>少なくとも10sec制限には引っかかっていない。</p>
<p></p>
<p>Sharedメモリを少し叩いているので、その辺が悪さをしているのだろうか？意外と難しい。こういうときにどうやってバグを発見・排除すればよいのか……。</p>
<p>（__syncthreadsが少ない時に全く同一の問題設定で計算結果が狂うことがあることを考えると、恐らく__syncthreadsの使いどころを間違えているのであろうと予想することはできる。）</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://exth.net/~ohshima/wordpress/2008/01/30/27/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GPUでライフゲーム</title>
		<link>http://exth.net/~ohshima/wordpress/2008/01/28/26/</link>
		<comments>http://exth.net/~ohshima/wordpress/2008/01/28/26/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 04:38:36 +0000</pubDate>
		<dc:creator>ohshima</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://exth.net/~ohshima/wordpress/2008/01/28/26/</guid>
		<description><![CDATA[[http://exth.net/~ohshima/cgi-bin/fswiki/wiki.cgi?page=GPU%A4%C7%A5%E9%A5%A4%A5%D5%A5%B2%A1%BC%A5%E0:title=] 久しぶりにHLSLプログラム。 どう書く？orgに投げ込むついでにページを作成しなおしました。 もともとは性能評価などもやってからまとめてUPしようとしていたのですが、割と手間がかかってやる気がなくなっていたため、簡易化しました。 （こちらのサイトは本名でやってるのにハンドルネームがばれてしまうのは、あえて気にしないことにします。）]]></description>
			<content:encoded><![CDATA[<div class="section">
<p>[http://exth.net/~ohshima/cgi-bin/fswiki/wiki.cgi?page=GPU%A4%C7%A5%E9%A5%A4%A5%D5%A5%B2%A1%BC%A5%E0:title=]</p>
<p>久しぶりにHLSLプログラム。</p>
<p>どう書く？orgに投げ込むついでにページを作成しなおしました。</p>
<p></p>
<p>もともとは性能評価などもやってからまとめてUPしようとしていたのですが、割と手間がかかってやる気がなくなっていたため、簡易化しました。</p>
<p>（こちらのサイトは本名でやってるのにハンドルネームがばれてしまうのは、あえて気にしないことにします。）</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://exth.net/~ohshima/wordpress/2008/01/28/26/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CUDA@MacBookPro(GeForce8600M GT)</title>
		<link>http://exth.net/~ohshima/wordpress/2008/01/24/25/</link>
		<comments>http://exth.net/~ohshima/wordpress/2008/01/24/25/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 13:35:26 +0000</pubDate>
		<dc:creator>ohshima</dc:creator>
				<category><![CDATA[CUDA]]></category>

		<guid isPermaLink="false">http://exth.net/~ohshima/wordpress/2008/01/24/25/</guid>
		<description><![CDATA[CUDA@WindowsXP/BootCamp/MacBookPro(GeForce8600M GT)な環境で導入に成功したのでメモを残しておきます。 参考資料 MacBook Pro + Windows XP で CUDA を使う [http://www.laptopvideo2go.com/drivers:title=] MacBook ProのGeForce 8600M GTにnVidiaの最新ドライバを入れる方法 [http://forums.nvidia.com/index.php?showtopic=51622:title=] nvidiaの公式ではBetaを含めて対応ドライバが公開されていないことに愕然としたが、1.から導入可能らしいという情報を得ました。 2.にいくつものドライバが上がっていますが、最新らしきものをDLしてsetup.exeを実行しても、対応ハードウェアがない旨を告げられて導入できません。 infファイルを上書きすることで入れられましたが、これでもCUDAが動きません。（CUDAプログラムを実行しても、対応デバイスが検出されなくてエラーしてしまう。） 3.と4.からinfファイルをハックすればよいことを知り、書き換えてドライバを再導入。CUDAプログラムの動作成功を確認しました。 性能評価は追々。とりあえずbandwidthTestの結果を貼り付けておきます。 Quick Mode Host to Device Bandwidth for Pageable memory . Transfer Size (Bytes) Bandwidth(MB/s) 33554432 845.4 Quick Mode Device to Host Bandwidth for Pageable memory . Transfer Size (Bytes) Bandwidth(MB/s) 33554432 761.2 Quick [...]]]></description>
			<content:encoded><![CDATA[<div class="section">
<p>CUDA@WindowsXP/BootCamp/MacBookPro(GeForce8600M GT)な環境で導入に成功したのでメモを残しておきます。</p>
<p><span id="more-25"></span></p>
<ul>
<li>参考資料
<ol>
<li><a href="http://chihara.naist.jp/people/STAFF/imura/computer/OpenGL/cuda_on_macbookpro/disp_content">MacBook Pro + Windows XP で CUDA を使う</a></li>
<li>[http://www.laptopvideo2go.com/drivers:title=]</li>
<li><a href="http://d.hatena.ne.jp/ruzia/20071124/1195905934">MacBook ProのGeForce 8600M GTにnVidiaの最新ドライバを入れる方法</a></li>
<li>[http://forums.nvidia.com/index.php?showtopic=51622:title=]</li>
</ol>
</li>
</ul>
<p></p>
<p>nvidiaの公式ではBetaを含めて対応ドライバが公開されていないことに愕然としたが、1.から導入可能らしいという情報を得ました。</p>
<p>2.にいくつものドライバが上がっていますが、最新らしきものをDLしてsetup.exeを実行しても、対応ハードウェアがない旨を告げられて導入できません。</p>
<p>infファイルを上書きすることで入れられましたが、これでもCUDAが動きません。（CUDAプログラムを実行しても、対応デバイスが検出されなくてエラーしてしまう。）</p>
<p>3.と4.からinfファイルをハックすればよいことを知り、書き換えてドライバを再導入。CUDAプログラムの動作成功を確認しました。</p>
<p></p>
<p>性能評価は追々。とりあえずbandwidthTestの結果を貼り付けておきます。</p>
<pre>
Quick Mode
Host to Device Bandwidth for Pageable memory
.
Transfer Size (Bytes)   Bandwidth(MB/s)
 33554432               845.4

Quick Mode
Device to Host Bandwidth for Pageable memory
.
Transfer Size (Bytes)   Bandwidth(MB/s)
 33554432               761.2

Quick Mode
Device to Device Bandwidth
.
Transfer Size (Bytes)   Bandwidth(MB/s)
 33554432               2253.6

&#038;&#038;&#038;&#038; Test PASSED</pre>
<p></p>
<p>ちなみにこちらは新GeForce8800GTSを搭載したLinuxPCでの実行結果。</p>
<pre>
Quick Mode
Host to Device Bandwidth for Pageable memory
.
Transfer Size (Bytes)   Bandwidth(MB/s)
 33554432               1883.7

Quick Mode
Device to Host Bandwidth for Pageable memory
.
Transfer Size (Bytes)   Bandwidth(MB/s)
 33554432               1444.5

Quick Mode
Device to Device Bandwidth
.
Transfer Size (Bytes)   Bandwidth(MB/s)
 33554432               51085.6

&#038;&#038;&#038;&#038; Test PASSED</pre>
<p>倍以上違うのはちょっとショックですね。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://exth.net/~ohshima/wordpress/2008/01/24/25/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LU分解＠GPU(CUDA)</title>
		<link>http://exth.net/~ohshima/wordpress/2008/01/21/24/</link>
		<comments>http://exth.net/~ohshima/wordpress/2008/01/21/24/#comments</comments>
		<pubDate>Mon, 21 Jan 2008 05:41:26 +0000</pubDate>
		<dc:creator>ohshima</dc:creator>
				<category><![CDATA[CUDA]]></category>

		<guid isPermaLink="false">http://exth.net/~ohshima/wordpress/2008/01/21/24/</guid>
		<description><![CDATA[物は試しということで、適当に組んで実行してみました。 参考（Right-looking法）：LU分解の並列化について 遅い。256*256の行列で4sec。CPUでは0.1sec。 globalメモリのアクセス削減と並列化をしてどう変わるかがポイントですかね。 ちなみに計算機スペックは以下の通り。 CPU:Intel QuadXeon E5345 @ 2.33GHz, 4096KB cache GPU:新GeForce8800GTS]]></description>
			<content:encoded><![CDATA[<div class="section">
<p>物は試しということで、適当に組んで実行してみました。</p>
<p>参考（Right-looking法）：<a href="http://mikilab.doshisha.ac.jp/dia/research/report/2002/0612/018/report20020612018.html">LU分解の並列化について</a></p>
<p>遅い。256*256の行列で4sec。CPUでは0.1sec。</p>
<p>globalメモリのアクセス削減と並列化をしてどう変わるかがポイントですかね。</p>
<p>ちなみに計算機スペックは以下の通り。</p>
<ul>
<li>CPU:Intel QuadXeon E5345 @ 2.33GHz, 4096KB cache</li>
<li>GPU:新GeForce8800GTS</li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://exth.net/~ohshima/wordpress/2008/01/21/24/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
