技術

Ubuntu 13.04でCUDA

作業メモ。
解説は無し。

GPUドライバやCUDAのインストール方法。

Installing CUDA on Ubuntu 13.04 Raring Ringtail | Musings of a geek

依存関係の解決にCMakeを使う。

clang(c++11)を使うようにする。
CMakeLists.txt

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

PROJECT(CUDATest)

SET(CMAKE_CXX_COMPILER clang++)
ADD_DEFINITIONS("-std=c++0x")

INCLUDE_DIRECTORIES(/usr/local/cuda-5.0/include)

ADD_EXECUTABLE(main
    main.cpp
    CUDABvh.cpp
)

LINK_DIRECTORIES(/usr/local/cuda-5.0/lib64)
TARGET_LINK_LIBRARIES(main cuda)

EXECUTE_PROCESS(COMMAND nvcc -ptx -arch=sm_21 kernel.cu)

最近のCMakeはCUDAに対応してるらしいけど、使い方がいまいち分からなかったのと、どうもptxファイルの名前を任意に決めれないっぽいのでEXECUTE_PROCESSするようにした。

結果

この前の処理(Geforce 9400Mで1.7秒)が0.06秒になった(GTX 460)。はやっ。

ImageMagickのconvertの挙動

結果をppm形式の画像として出力してるのでImageMagickのconvertでpngに変換して確認してたけど、brewで入れたMacのconvertと、apt-getで入れたUbuntuのconvertでデフォルトのガンマ補正の値が違うみたいで、普通に convert image.ppm image.png とすると双方で色合いが違うものが出来上がる。
以下それぞれの convert –version の結果。上がMac、下がUbuntu。

Version: ImageMagick 6.7.7-6 2012-09-18 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features:  OpenCL  
Version: ImageMagick 6.7.7-10 2013-02-25 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP    

Macのほうを convert -gamma 1/1/1 image.ppm image.png とした場合、
Ubuntuのほうを convert -gamma 0.455/0.455/0.455 image.ppm image.png とすると同じ結果になった。
(0.455 ≒ 1.0 / 2.2)

逆にUbuntuのほうを convert -gamma 1/1/1 image.ppm image.png とした場合、
Macのほうを convert -gamma 2.2/2.2/2.2 image.ppm image.png とすると同じになる。

もしかしてconvertってOSのディスプレイの設定とかみてるのかな。
にしても微妙な挙動。

Macのほうが -gamma 1/1/1 で入力と出力に色の違いがないから分かりやすい。
Ubuntuのほうは -gamma 1/1/1 を指定してもsRGBのガンマ補正の逆補正が掛けられるという事になる。
convertのgammaオプションの厳密な意味ってなんだろう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です



※画像をクリックして別の画像を表示

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください