エルザジャパン GPUコンピューティングセミナー2009

Posted by Hiroaki.S | Posted in 未分類 | Posted on 11-09-2009

0

エルザ主催のCUDAセミナーに出てきました.
GPUコンピューティングがいかに速いかということを紹介しつつ,
CUDAのインストールやアーキテクチャについても盛り込んだ内容になっていました.

やっぱり速いですね,GPU.
個人的にはCベースで書くことができるというのがうれしい.

勉強が必要だと感じるところは,GPUのアーキテクチャ.
ホストとGPUのアクセスの部分が重要.
ハード的な知識が通常のプログラミングよりも必要ですね.
(ブロック,スレッド単位の挙動)

CUDAプログラミングのポイント

  1. CUDAはCPU側プログラム + GPUプログラム(kernel関数)で動く.
  2. CPU側プログラム
    • ホストPCで実行されるプログラム
    • 拡張子 .cu
    • ほぼ普通のC言語と同じ
    • GPUへのデータ転送やkernel関数の起動
  3. kernel関数
    • GPUで実行されるプログラム
    • ホストPCに呼び出されて実行
    • _global_を宣言につける.
    • 引数は利用可,値の返却は不可 => void型
  4. nvccを用いて,コンパイル

千葉大学の増田信之先生の発表から引用させていただきました.

ここで重要なのがkernel関数がvoid型だということ.
GPUからCPU(ホスト)に値が返却できない.
そこを解決するのがglobalメモリ.
このglobalメモリがCPUとGPU間における唯一の橋.
(実際にはConstant MemoryやTexture Memoryもあるが,
大体Global Memoryなので割愛)

CUDAまとめ

  1. 速い(プログラムにもよるが,大体あがる).
  2. 特に並列処理が格段に速くなる.
  3. 3DCGの知識がなくても扱える.
  4. フーリエや行列のライブラリを実装.

他色々.

最後にnVIDIAの方の講演がありましたが,nVIDIAも魅力的な会社だなと感じました.

Highslide JS for WordPress

Posted by Hiroaki.S | Posted in 更新情報 | Posted on 07-09-2009

0

箱根のエントリで画像をアップしたので,画像表示のプラグインとして
「Highslide JS」を使用しました.

こういったプラグインはLightbox系かHighslide系に分かれるのだけれど,
Lightboxは少し仰々しすぎるので,今回はHighslide系を使用することに.

Highslide JSそのものは以下からダウンロード
[Highslide JS] http://highslide.com/

Wordpressに適用させるに当たっては
[NAO - ROOM]のH!PD HighSlide for WPを使用させていただきました.
http://www.nao-room.com/wordpressplugin/hpd-wp-highslide/

設置方法は,リンク先に書いてある通り.

H!PD HighSlide for WPをpluginディレクトリ以下に入れ,
highslide JSのディレクトリも同じ場所に入れてやるとすぐ動く.

サンプル

ガッツポーズガッツポーズ

ガッツポーズ

ガッツポーズする猫.

箱根旅行Timeline1

Posted by Hiroaki.S | Posted in 雑記 | Posted on 06-09-2009

0

9/4-5で箱根旅行に行ってきた.

一日目

シュウマイ弁当シュウマイ弁当

シュウマイ弁当

10:40~ ロマンスカーに乗る.シュウマイ弁当が地味においしい.

12:07~ 箱根湯本に到着

甘酒茶屋甘酒茶屋

甘酒茶屋

13:08~ バスで箱根旧道へ.甘酒茶屋に立ち寄る.

箱根旧街道箱根旧街道

箱根旧街道

13:44~ 箱根旧街道を徒歩で出発.険しい.

芦ノ湖芦ノ湖

芦ノ湖

箱根神社箱根神社

箱根神社

14:30~ 芦ノ湖に到着スワンボートで箱根神社の前までひたすら漕ぐ.結構な重労働.

ガッツポーズガッツポーズ

ガッツポーズ

15:37~ 芦ノ湖沿いを散策.ぶら下がったルアーと格闘する猫に遭遇.愛らしい.

箱根関所箱根関所

箱根関所

15:56~ 箱根関所に到着.

水の音「水花の庄」水の音「水花の庄」

水の音「水花の庄」

17:00~ お泊まりする宿「水の音」に到着.部屋に露天風呂!非常に広いお部屋でした.

貸し切り露天風呂貸し切り露天風呂

貸し切り露天風呂

17:20~ 貸し切り風呂に.いつもより多く回しておりますの傘がおいてある.広げてお風呂そばに置くと非常に絵になった.

湯上がりの一杯湯上がりの一杯

湯上がりの一杯

18:30~ 今度は大浴場.ご飯の時間帯だったんので広々浸かれた.ラッキー.

何よりもうれしいのはお風呂後のあの一杯がサービス!コーヒー牛乳飲みました.

大浴場前大浴場前

大浴場前

19:00~ ホテル内を散策.夜にはラーメンもサービスされるらしい.

お品書きお品書き

お品書き

焼き物焼き物

焼き物

19:45~ ご飯スタート.今回は箱根の幸をふんだんに使用した「足柄遊膳」をチョイス.一時間半にも及ぶコースに大満足.

21:30~ お部屋でまったり.新しい和って感じの部屋で過ごしやすい.高校生クイズを見る.

ラーメンのサービスラーメンのサービス

ラーメンのサービス

22:52~ サービスのラーメンをいただきました.意外としっかりしていてびっくり.

23:30~ 一日目終了,お休みなさい

Openhaptics Toolkitバグ?

Posted by Hiroaki.S | Posted in 備忘録 | Posted on 02-09-2009

0

開発環境整えるだけで二日目.ほんと嫌い.
とりあえず通った.
原因はOpenhaptics Toolkit内で使用される
hdud.libとhlud.libのバグ(?).

どうやら最初にインストールされるライブラリファイルは信用できないらしい.
なので,
C:\Program Files\SensAble\3DTouch\utilities\src
内のHDU,HLUディレクトリ内のプログラムをビルドしてライブラリを作成しなおす.

キター.

これで意味不明なリンクエラーが出ません.
LINK2019 hogehogeと出るのは解決.
これはどう考えても俺のせいじゃないだろ.
ようやく研究が進められる.

以下はPHANToM Omniの動作確認用プログラムです.
動作確認といっても位置だけだから何とも言えないけど,
とりあえずPHANToMが認識されているかは確認できるはず.
ちゃんとPHANToMクラスを作ったものを作成しなければ.

//
//	PHANToM Training.cpp
//
//	ファントムの動作確認用
//	スタイラス位置を無限に取得し続けるだけ.
//

#include <windows.h>
#include <iostream>
using namespace std;

// Openhaptics
#include <HD/hd.h>
#include <HDU/hduVector.h>
#include <HDU/hduError.h>
#include <HD/hdScheduler.h>

#pragma comment(lib, "hd.lib")
#pragma comment(lib, "hl.lib")
#pragma comment(lib, "hdud.lib")
#pragma comment(lib, "hlud.lib")

// Global変数
HDdouble position[3] = {0.0, 0.0, 0.0};

int main()
{
	HDErrorInfo error;
	// 初期化及びエラー処理
	HHD hHD = hdInitDevice(HD_DEFAULT_DEVICE);
	if (HD_DEVICE_ERROR(error = hdGetError()))
    {
        hduPrintError(stderr, &error, "Failed to initialize haptic device");
        fprintf(stderr, "\nPress any key to quit.\n");
        getchar();
        exit(-1);
    }

	// スケジューラーのスタート
	hdStartScheduler();

	while (1){

		// フレームスタート
		hdBeginFrame (hdGetCurrentDevice());

		// スタイラスの現在位置を取得,表示
		hdGetDoublev (HD_CURRENT_POSITION, position);
		cout << position[0] << "," << position[1] << "," << position[2] << endl;

		// フレーム終了
		hdEndFrame(hdGetCurrentDevice());
	}

	return 0;
}

SyntaxHighlighter Evolved[WordPress Plugin]

Posted by Hiroaki.S | Posted in 更新情報 | Posted on 01-09-2009

0

WordPress Pluginの一つである[SyntaxHighlighter Evolved]を追加.

多くのWPで使われてますね.

ソースコードがきれいに表示されます.

/* css code */
h1 {
    width: 150px;
    height: 100px;
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>PHP Code Example</title>
</head>
<body>
<h1>PHP Code Example</h1>
<p><?php echo 'Hello World!'; ?></p>
<p>This line is highlighted.</p>
<div>
This	is	an
example	of	smart
tabs.
</div>
<p><a href="http://wordpress.org/">WordPress</a></p>
</body>
</html>

参考はこちら:

ソースコードサンプル WordPress-コード表示用プラグイン[SyntaxHighlighter]

http://www.sankhon.net/sample/archives/18

環境を整えるのが一番の敵

Posted by Hiroaki.S | Posted in 備忘録 | Posted on 01-09-2009

0

昨日の続きでまたOpenhapticsをいじっています.

正確にはまだいじっていません.

なんでプログラムは環境を整えるまでが大変なんだろう.

そろそろ慣れたいものです.

忘れないようにメモ

その1

#include <hogehoge>

の場合はVisual Studioが決めた場所から,

#include hogehoge

の場合はプロジェクトの場所から参照.

その2

Openhapticsを使うときはwindows.hも使うっぽい.

Openhaptics Toolkit

Posted by Hiroaki.S | Posted in 備忘録 | Posted on 31-08-2009

0

研究に使用するOpenhaptics Toolkit

どうやらVisual Studio 2008では動かない模様.

とりあえず2005をインストールしてコンパイルを試してみる.

動きそうな感じはする.が,各種エラーで止まる.

開発環境移ったからWindows Platform SDKとか入っていないことに気づく.

諸々の設定終了・・・

が,動かない!

どうやらプログラム側の問題らしい.

ブログはじめました

Posted by Hiroaki.S | Posted in 雑記 | Posted on 23-08-2009

0

wordpressでブログを始めました.

とりあえず稼働だけ.プラグインもデザインも通してません.

CMSの練習だと思ってちょこちょこ改造していきます.