<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>雑記</title>
    <link>http://azumaya.s101.xrea.com/blog/</link>
    <description></description>
    <language>ja</language>
    <generator>Nucleus CMS v3.3</generator>
    <copyright>&#169;</copyright>
    <category>Weblog</category>
    <docs>http://backend.userland.com/rss</docs>
    <image>
      <url>http://azumaya.s101.xrea.com/blog/nucleus/nucleus2.gif</url>
      <title>雑記</title>
      <link>http://azumaya.s101.xrea.com/blog/</link>
    </image>
    <item>
 <title>さらさら</title>
 <link>http://azumaya.s101.xrea.com/blog/?itemid=308</link>
<description><![CDATA[<p>一撃ですか。リンク更新しました。</p>
<p>さて、最近CUDAの話しかしてない気がしますが、<a href="http://forums.nvidia.com/index.php?showtopic=82290">CUDA2.1β</a>が公開されたようです。今落としているので気がついたことがありましたら追記します。</p>
<p>追記。リリースノートとマニュアルを流し読みした程度。環境を壊せないので動作確認などは行っていません。</p>
<ul>
<li>Physx用として指定することでVistaでディスプレイに接続されていないGPUのサポート?</li>
<li>相変わらずVistaでカーネルとメモリ転送のオーバーラップはできない</li>
<li>VC9のサポートが追加されVC7のサポートが打ち切り</li>
<li>PTXをJITコンパイル?するDriver APIが追加、Runtimeは不明</li>
<li>Direct3D 10連携関数がRuntime/Driver APIに追加</li>
<li>32bit Linuxのみにデバッガが提供される</li>
</ul>]]></description>
 <category>雑記</category>
<comments>http://azumaya.s101.xrea.com/blog/?itemid=308</comments>
 <pubDate>Sat, 22 Nov 2008 01:33:13 +0900</pubDate>
</item><item>
 <title>CUDA# #4</title>
 <link>http://azumaya.s101.xrea.com/blog/?itemid=306</link>
<description><![CDATA[<p><a href="http://azumaya.s101.xrea.com/wiki/index.php?%A4%AC%A4%E9%A4%AF%A4%BF%C3%D6%BE%EC%2FCUDA%A2%F4">CUDA#</a>更新。</p>
<p>更新率高いですがどうせ最初だけです。残るはArrayと2D,3Dメモリ。<br />…連携関数?ありましたねそんなのOpenGL連携はともかくDirectX連携はどうしよう。いまどきManaged DirectXなんてないでしょうし。</p>
<p>それよりも割りと面倒なタスクが上から降ってきたのでどうしようかと思案中。</p>]]></description>
 <category>プログラム</category>
<comments>http://azumaya.s101.xrea.com/blog/?itemid=306</comments>
 <pubDate>Tue, 18 Nov 2008 22:32:30 +0900</pubDate>
</item><item>
 <title>CUDA@コアレスにグローバルメモリにアクセスする</title>
 <link>http://azumaya.s101.xrea.com/blog/?itemid=304</link>
<description><![CDATA[<p>CUDAのパフォーマンスガイド見てるとグローバルメモリはコアレスにアクセスしろとしつこく書かれています。で、コアレスにアクセスとはスレッドNからBaseAddress+N*sizeof(T)のようにアクセスすればいいのだろうと思っていたのですが、違いました。</p>

<p>何が違うかといいますと、このsizeof(T)は任意のサイズではなく4, 8, 16バイトのいずれかである必要があります。float3はsizeof(float3)=12なのでコアレスではありません。これ、図で描かれているのですが最近まで気づきませんでした。つまるところこのような単位でメモリを配置しておくとスレッド起動時に一度のメモリアクセスでまとめて読み込めるから速いというわけですね。</p>

<p>じゃあパラメータが多い場合どうするかといいますと、</p>
<pre><code>
for(int i=0; i&lt;len; i++)
    result[i * memSize + idx] = ~;
</code></pre>

<p>このようにひとつのメモリにブロックをつくり使用します。memSizeが十分に大きい場合、これはコアレスにアクセスすることができます。別に変数を分けてもいいのですが、これは茨の道です。上記のようにforで連続してアクセスしたい場合ポインタを配列にマップする、</p>

<pre><code>T* t[] = { t0 + idx, t1 + idx, ... };</code></pre>

<p>このようなアプローチが考えられますが、これはうまく動いてはくれないようです。いくつか試してみましたが意図した結果は得られませんでした。採用したのはマクロで展開するというものですが、私のケースでは逆に遅くなってしまう理由で先のとおりひとつのメモリブロックにおくことで落ち着きました。また、引数のサイズの問題もあります。CUDAの引数は256バイトという制限がありますが、64bitではポインタが8バイトになりメモリを激しく圧迫します。(Driver APIのdevptrは32bitなのになんで64bitなんだろう?)</p>

<p>なおコアレスにアクセスできているかはパフォーマンスモニタでチェックすることで確認できます。gltが読み込み、gstが書き込みです。アルゴリズムの事情でコアレスにアクセスできない場合はコンスタントメモリ、テクスチャを代替手段として使いますが、話が大きくそれるのでこれはまた機会があれば。<p>

<p>最後にCompute Capability 1.2以上では事情が異なるようですが、環境がないのでわかりません。</p>]]></description>
 <category>プログラミング</category>
<comments>http://azumaya.s101.xrea.com/blog/?itemid=304</comments>
 <pubDate>Mon, 17 Nov 2008 22:56:37 +0900</pubDate>
</item><item>
 <title>さらさら</title>
 <link>http://azumaya.s101.xrea.com/blog/?itemid=301</link>
<description><![CDATA[<p>セール最終日なので冷やかしに行ったら閉店時間でもないのに店じまいってどーよ。いやきっと商品がなくなったのでしょう。ええきっと。</p>
<p>さて11月も折り返し、トップ絵は描いていますが未だポーズが決まりません。なんというかあれもこれも描きたい状態でだめだー。</p>
<p>さて気がつけばXNA3.0が公開されているわけです。常々ゲーム作りたいけど時間がないとかチャットで言ってるわけですが、今から作るならManaged DirectXよりXNAなのでしょうか。別に3Dがグリグリ動かなくても2Dが早く描画できればいいのですが。つまることろスプライトだけしか使わないわけですから、2k切り捨てて移行(=新しく勉強)するのもありかなと思ったり。そういった意味ではWindows 7のDirect2Dは期待でしょうか。ただ動作するのがVista以降になっていますのがなんとも。</p>]]></description>
 <category>雑記</category>
<comments>http://azumaya.s101.xrea.com/blog/?itemid=301</comments>
 <pubDate>Sun, 16 Nov 2008 01:36:59 +0900</pubDate>
</item><item>
 <title>VistaにおけるCUDAの制限</title>
 <link>http://azumaya.s101.xrea.com/blog/?itemid=299</link>
<description><![CDATA[<ul>
<li>Kernelとmemcpyのオーバーラップが使用不能、CU_DEVICE_ATTRIBUTE_GPU_OVERLAPが常に0</li>
<li>ディスプレイが接続されていないマルチGPUが不可、よって常にタイムアウト時間が存在</li>
</ul>
<p>うーん、エンコが劇遅なのでフィルタをCUDAで書こうとか思ってましたが制限が厳しい印象。VistaとXPのドライバモデルの違いが原因だと思いますが、XPのメインストリームサポートはもう少しで終わるわけですし、何とかして欲しいところ。</p>]]></description>
 <category>プログラミング</category>
<comments>http://azumaya.s101.xrea.com/blog/?itemid=299</comments>
 <pubDate>Thu, 13 Nov 2008 00:21:09 +0900</pubDate>
</item><item>
 <title>6万リロード</title>
 <link>http://azumaya.s101.xrea.com/blog/?itemid=297</link>
<description><![CDATA[<p>です。正確には昨日でしたが、ぐだぐだとしゃべっていたら日付が変わっていました。例によって特に何もありません。ええ、ありません。</p>]]></description>
 <category>サイト</category>
<comments>http://azumaya.s101.xrea.com/blog/?itemid=297</comments>
 <pubDate>Wed, 12 Nov 2008 02:34:50 +0900</pubDate>
</item><item>
 <title>CUDA# #3</title>
 <link>http://azumaya.s101.xrea.com/blog/?itemid=295</link>
<description><![CDATA[<p><a href="http://azumaya.s101.xrea.com/wiki/index.php?%A4%AC%A4%E9%A4%AF%A4%BF%C3%D6%BE%EC%2FCUDA%A2%F4">CUDA#</a>更新。</p>
<p>CuEvent, CuStream他追加です。ただ非同期系はまだ考察の余地ありかなと思っております。.NETにあわせてBegin*にしてみましたけどEnd*がないんですよね。ていうかLaunchが非同期なのにBeginLaunchはないなと。メモリに関してはまた今度。ていうか2次元3次元もありますしどうしたものか。</p>
<p>コンテキストがディアクティブの状態でもDispose()の処理できるようにしました。ただファイナライザからの呼び出しの場合は無理です。ファイナライザではインスタンスに触れれませんしどう対処しましょうか。むむむ。</p>]]></description>
 <category>プログラム</category>
<comments>http://azumaya.s101.xrea.com/blog/?itemid=295</comments>
 <pubDate>Wed, 12 Nov 2008 02:32:58 +0900</pubDate>
</item><item>
 <title>散財</title>
 <link>http://azumaya.s101.xrea.com/blog/?itemid=291</link>
<description><![CDATA[<ul>
  <li>まぶらほ～またまたメイドの巻～</li>
</ul>
<p>積読です。果たして読むのはいつの日になるのでしょーか!?</p>
<p>話は変わって<a href="http://kenip.blog116.fc2.com/">けに山</a>達とゲーセン行って来たんですよ。クレーンゲームで豚が流れてたんですね。節約中ですし、私はこういうのはやらない主義なのですが、皆で「し○さんだ!し○さんだ!」と騒いで挑戦した結果<br />
<a href="http://azumaya.s101.xrea.com/blog/media/1/20081110-buta.jpg">し○さんの授乳</a><br />
雪崩が起こって全部でこの3倍くらい取れました。使ったのは3人合計で1kくらいでしょうか。この写真をみてし○さんを想像しない人が果たして居るでしょうか?いえ居ません。(反語)</p>]]></description>
 <category>散財</category>
<comments>http://azumaya.s101.xrea.com/blog/?itemid=291</comments>
 <pubDate>Mon, 10 Nov 2008 23:59:28 +0900</pubDate>
</item><item>
 <title>CUDA# #2</title>
 <link>http://azumaya.s101.xrea.com/blog/?itemid=289</link>
<description><![CDATA[<p><a href="http://azumaya.s101.xrea.com/wiki/index.php?%A4%AC%A4%E9%A4%AF%A4%BF%C3%D6%BE%EC%2FCUDA%A2%F4">CUDA#</a>ですが、cutilの定義を追加しようと持ったのですが気が乗らなかったのでラッパライブラリの構築を始めました。自分の使ってる範囲は大体実装。</p>
<p>ただ名前が微妙。Cuプレフィックスはいらない気がしますし、CuContext.Contextとかおかしいと思う。ということで名前に関しては変わる可能性ありです。</p>
<p>cudaGetSymbolAddress()相当がない気がするのですが、ConstantMemoryはどうやって使うのでしょう?</p>]]></description>
 <category>プログラム</category>
<comments>http://azumaya.s101.xrea.com/blog/?itemid=289</comments>
 <pubDate>Thu, 6 Nov 2008 23:23:33 +0900</pubDate>
</item><item>
 <title>CUDA# #1</title>
 <link>http://azumaya.s101.xrea.com/blog/?itemid=287</link>
<description><![CDATA[<p>今日時間があったので<a href="http://azumaya.s101.xrea.com/wiki/index.php?%A4%AC%A4%E9%A4%AF%A4%BF%C3%D6%BE%EC%2FCUDA%A2%F4">CUDA#</a>というのを作ってみました。名前のとおりC#からCUDAを呼び出します。何番煎じでしょうか。</p>
<p>まぁ肝心なラッパライブラリはまだ乗せていないので、ライブラリというよりサンプルといった感じです。このラッパ層について書きたいことがあるのですが、時間もないのでこの辺で。</p>]]></description>
 <category>プログラム</category>
<comments>http://azumaya.s101.xrea.com/blog/?itemid=287</comments>
 <pubDate>Tue, 4 Nov 2008 23:56:17 +0900</pubDate>
</item>
  </channel>
</rss>