2009年8月28日金曜日

【CUDA】忘却録1



ここでは,GPUアーキテクチャとcudaを使用する際のスレッドの関係について述べる.
(ここに記述していることに間違いなどありましたら,ご鞭撻のして頂けると幸いです)


GPUは画像処理などの並列処理に長けている.その理由としてはGPU自身に処理を行うコアが多く搭載されている事に起因する.このコア数と,一度に計算をおこなうスレッドの限界数に密接な関係があることは言うまでもない.以下,GeForce 8800 GTXを例に,GPUのアーキテクチャとcudaのスレッドの関係を少しだけ見ていく.

GeForce 8800GTX(以下G80)は16コアの処理系をもつGPUである.実際のG80のブロックダイヤは以下の通りになっている.


これを見ると,1コアあたりにSPが8個格納されている事がわかる.このSPが演算ユニットになっており,32ビットの整数演算,浮動小数点乗算,浮動小数点積和算を行う.このSPは同じ演算を4サイクルにわたり実行する事が可能となっている.つまり,一度の命令により1コアに処理を投げれるスレッドの数は8(SP数)×4(1回の処理でSPが処理を行えるサイクル数)=32となる.この1コアで1度に処理を行えるスレッド数の単位をcudaではwarpと称している.

僕のmacではモバイル版のGPUであるGeForce 9400 Mを搭載している.このコア数をNvidiaのサイトから調べると16個となっていた.他のサイトではSP数が16個と記述しており,コアとSPの区別がつけられていない状態の情報がネット上で蔓延しているようである.

実際に自身のマシンのGPUの情報そ知りたいとき,cudaのSDKのdeviceQueryを実行するとメモリ数,コア数,warpサイズ,スレッド数(ブロックやグリッドのサイズ)や速度がわかる.
ちなみに,GeForce 9400 Mでは以下のようになった.


2009年8月26日水曜日

【MAC】ThunderbirdからMail.appへの移行



FirefoxもそうだがThunderbirdの起動が遅くてストレスを感じる事がしばしば。
そこでMacに標準についているMail.app ver3.6を使用する事にした。

Thunderbirdからのメール移行は、Mail.appの「ファイル」→「メールボックスを読み込む」で簡単にできる。

メールのフォルダ自動振り分けは、「環境設定」の「ルール」に記述することにより可能である。
また、自動振り分けを使わなくてもMail.appの「スマートメールボックス」機能を使えば、
全メールを設定した条件に基づきクラスタリングしてくれる。

2009年8月12日水曜日

【MAC】家のPCへのリモートデスクトップ設定



家のmacにリモート設定.

【リモート先macの設定】
固定IPにする.
環境設定→共有→画面共有で,画面共有をON.ついでにパスもかけとく.

【ルータの設定】
リモート用のポートを解放する.
ルータの「アドレス変換」においてリモート用のポート(プロトコルはTCP/IP)を解放.
 ※「アドレス変換」の項目はルータにより異なる.
  例:「ポートフォワーディング」「IPマスカレード」「仮想サーバ」
 ※Windowsなら3389,vncなら5900や5800(設定により異なる)

【リモート元での動作】
macには標準でvncクライアントソフト(画面共有.app)があるので,それを使う.
フリーのvncクライアントソフトを使っても良いが,速度がかなり遅いのでおすすめできない.
画面共有.cppのパスは以下の通り

Macintosh HD¥システム¥ライブラリ¥CoreServices¥画面共有.app

以上で基本の準備はOK.

http://www.ugtop.com/spill.shtml

にアクセスして,自身のグローバルIPを確認.
そのIPをリモートデスクトップソフトの接続先に以下のように指定すればリモートができる.


しかし,グローバルIPは変動するので,その度に確認するのは不便で仕方ない.
そこで,DNSサービスを受ける.

無料のDNSサービスを提供しているサイトはあるので,そこで登録.(僕はddo.jpってとこを利用)
登録が終えるとIPアドレスの自動更新方法を設定.
macやLinuxではcronというツールがあるのでそちらを利用.(WindowsにはDiCEというソフトがあるのでググってください)

【cronの設定】
ターミナル上で
#crontab -e

viを利用した設定になるので,以下のように記述
10 * * * * wget -0 - 'http://free.doo.jp/dnsupdate.php?dn=ドメイン名&pw=パスワード'
 ※http://free.doo.jp/dnsupdate.php?dn=の部分はDNSサービスサイトを参照