ここは個人的な備忘録です。テキトーかつ適当が目標。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
よく

1 : #include
2 : /* main.c */
3 : int main()
4 : {
5 : printf("Hello World!\n");
6 : return 0;
7 : }

といった行番号つきのソースを自分の環境で試したい時がある。

エディタに張り付けるときは、先頭の行番号を除去したい。

手作業は面倒くさいので、awkさんにお願いすることにした:

$ cat main.c | awk '{print substr($0,8)}'

(先頭7文字目までは無視して)8文字目以降だけ標準出力に出してくれる。あとはリダイレクトで受けとればOK。



次を参考にしました。感謝。
スポンサーサイト
20110224追記:
債権の申し出期間は終わったらしいが,「毎日新聞のくらしナビ lifestyle (2011 2/24版)」 に次のような記述を見つけた(引用の太字はこちらでつけた):


現在清算手続き中で、払戻期間はすでに終了。未使用残高は公表していないが、2月1日までの5ヶ月間、額面通りの払い戻しをを行ったという。ギフトカードがまだ手元にある場合について代表精算人の清水将博弁護士は「ケースごとに誠意を持って対応する」と話し、早めの問い合わせを呼びかけている。清算後の会社の財産に合わせて、額面の一部払い戻しを受けられる可能性がある。

とのこと.問い合わせ先は「0120-775-035」だそうです.

一部払い戻しの可能性は本家のページには書いてないのな(2/24現在).


「**券終了」の一覧

[音楽ギフトカード 払戻期限は10月末まで → 債権申出11年2月1日まで]の続きを読む
第1回「暗号検定」
なるものが Web 上で開催されている模様。

気づいたのがさっきで、ちょっと出遅れた感じ。

暗号3(難易度:B)  (9月22日12時公開)
98725848551552971215073


【鍵】  「算盤の書」
というヒントが出ている状態。
数字的にアレな感じがしたので、PariGpでテキトースクリプトを書いてみて解答らしきものに到達的。

フォームから解答を送信したが、受領通知メールによると、すでに100人を大幅に越える方々が解答を送っている模様。2級はもらえなさそう。正解発表の流れは

合格された方には、10月4日(月)に、合格通知メールをお送りします。
また、同日、当協会HP上にも、上記ID番号を掲載予定です。

だそうです。

受かっているといいな。


しかし、特Aわけわからんw

暗号1(難易度:特A) (9月16日12時公開)
三呂四千七呂六千二耳六千十以

難易度Aは逆算もできたけど、特Aは逆算すらできない
イミフ
[第1回「暗号検定」]の続きを読む
こないだのこと。
C言語でなぞのSegmentation Faultが発生して、しばらく悩んだ。
原因は、馬鹿でかい自動変数の配列を作っていたため、スタック領域を食いつぶしていたことのようだった。

現象:
main関数の先頭に
printf("hoge");
fflush(stdout);
を入れてみても、表示される前にSegmentation Faultで落ちた。

どこかスタックぶっ壊しているくさいなぁ、と思ってよく見てみると、自動変数の配列のサイズ大きすぎたことに気づいた。(そもそも設計がよくない?)
配列のサイズを修正して事なきを得た。


Stack Heapでググってみたら
オブジェクト指向講座 スタック領域とヒープ領域
という記事が見つかった。

C#などの言語でのスタック、ヒープの説明がなされている。分かりやすかったので感謝。


こんな記事も見つけた:
Javaの知られざる欠陥(上)
自分が何書いたか忘れていることに気づいた。
はてなブックマークにでもつけておこうかと思った。

ブラウザに、右クリックで「はてなブックマークに追加」を追加してもいいが、あちこちのブラウザに登録するのは面倒。

しかしブログ自体にボタンをつければどこでも使えるので安心的。

ぐぐると
FC2ブログにはてなブックマーク登録ボタンを設置
AddClipsでブックマーク追加ボタンの設置
という記事が見つかった。感謝。

面白そうなので、AddClipつけてみた:
ソーシャルブックマーク追加ボタン作成サイト:AddClips
あらかじめ はてブ か LiveDoor のアカウントをとっておく必要はある。
が、以降の登録作業は簡単。道なり。

あまり気にしなくても自分用にメモが残せるようになった。快適。

ついに素数全書キター

表紙はこんな感じらしい:

CUDAの開発環境をCentOS 5.4(64bit)にインストール

前の記事
Express5800 110Ge で CUDAの練習
続き。

環境は前のとおり:
(どうでもいいがAtom、IONと来ているのな。この調子で進化?すればそのうちRNAとか出てくるかも分からんね)

CentOS 5.4にCUDAを入れたいので下調べしたら、そのものズバリなところが見つかった。

SofTekさんのところ:
CUDA™ 3.0開発環境をインストールする (Linux版) 対象 GPU CUDA 3.0 インストール CentOS 5.4

そのまま道なりでできました。感謝。
こういう風にかけるようになりたいなぁ。

ちなみに64bit環境なので、インストールしたのは次のファイル:
  • devdriver_3.1_linux_64_256.40.run (ドライバ)
  • cudatoolkit_3.0_linux_64_rhel5.3.run
  • gpucomputingsdk_3.0_linux.run
最初はドライバとして
  • NVIDIA-Linux-x86_64-256.53.run
を入れたが、これではCUDAが動かなかった(エラーメッセージ失念)。
新しければよい、というモンでもないようだ。




SDK付属のサンプルプログラムを確認。
SDKのディレクトリ
~/NVIDIA_GPU_Computing_SDK/C
に入って make するとバイナリは
~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release
にできる。

とりあえず bandwidthTest してみる:

$ ./bandwidthTest
[bandwidthTest]
./bandwidthTest Starting...

Running on...

 Device 0: ION
 Quick Mode

 Host to Device Bandwidth, 1 Device(s), Paged memory
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     164.0

 Device to Host Bandwidth, 1 Device(s), Paged memory
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     198.5

 Device to Device Bandwidth, 1 Device(s)
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     9054.9


[bandwidthTest] - Test results:
PASSED


Press <Enter> to Quit...
-----------------------------------------------------------

x1だし、こんなもんかな。ちょっと速いHDDくらいの転送速度だと思えばいいのか。
Device to Host のほうが速いのはちょっと意外。




書籍「はじめてのCUDAプログラミング」のサンプルをコンパイル。

人に勧められて
はじめてのCUDAプログラミング―驚異の開発環境[GPU+CUDA]を使いこなす! (I・O BOOKS)はじめてのCUDAプログラミング
(2009/11)
青木 尊之額田 彰

詳細

を購入。密度が濃い本だと思います。

サポートページ
www.kohgakusha.co.jp/support/cuda/index.html
に書籍内で紹介されたサンプルプログラムのソースが置いてある。ソースをいただいてきて、展開。

$ for NUM in 1 2 3 4 5 6 7; do wget http://www.kohgakusha.co.jp/support/cuda/linux/sample${NUM}_linux.tgz; done
$ for NUM in 1 2 3 4 5 6 7; do tar xvf sample${NUM}_linux.tgz; done

各ディレクトリに入ってmakeすると変なエラーが。結論的には64bit環境が原因。

sample1_linux $ make
nvcc -c -O3 -I/home/tekito/NVIDIA_GPU_Computing_SDK/C/common/inc -maxrregcount 32 sample_1.cu
gcc -o a.out sample_1.o -O3 -L/usr/local/cuda/lib64 -L/home/tekito/NVIDIA_GPU_Computing_SDK/C/lib -lcudart -lcutil
/usr/bin/ld: cannot find -lcutil
collect2: ld はステータス 1 で終了しました
make: *** [a.out] エラー 1

なんで -lcutil が見つからないんだ、と思ってディレクトリを確認してみたら原因判明:

$ ll ~/NVIDIA_GPU_Computing_SDK/C/lib/
合計 316
-rw-rw-r-- 1 tekito tekito 201540  9月  8 02:38 libcutil_x86_64.a
-rw-rw-r-- 1 tekito tekito  46330  9月  8 02:38 libparamgl_x86_64.a
-rw-rw-r-- 1 tekito tekito  61144  9月  8 02:38 librendercheckgl_x86_64.a

64bit環境だと -lcutil_x86_64 なのか。じゃあMakefileを直せばいい。てきとうスクリプトを書いた:

$ cat subst.sh
#!/bin/bash
TMP=$(find ./ -name 'Makefile')
for FILE in ${TMP};do
        cp ${FILE} ${FILE}.bak
        sed -e "s/-lcutil/-lcutil_x86_64/g" ${FILE}.bak > ${FILE}_x86_64
done

(これ1行で書けないかな。最初、xargsでやろうとしたが面倒になってスクリプトにすることにした)
このスクリプトはMakefileの中の「-lcutil」を「-cutil_x86_64」に置換した結果を、Makefile_x86_64 に出力する。ついでにバックアップファイルも作る。

で、各ディレクトリでmakeしたら通った:

sample1_linux $ make -f Makefile_x86_64
nvcc -c -O3 -I/home/tekito/NVIDIA_GPU_Computing_SDK/C/common/inc -maxrregcount 32 sample_1.cu
gcc -o a.out sample_1.o -O3 -L/usr/local/cuda/lib64 -L/home/tekitou/NVIDIA_GPU_Computing_SDK/C/lib -lcudart -lcutil_x86_64





CUDAしたくなったので、GPU買ってきた。


Express5800 110GeのWikiをみる。この機種にはPCI Expressスロットはあるが、x16のスロットはない。カードやスロットを削ったり切ったりすれば選択肢は多いが、それはいやなので x1 を探すことにした。
110Ge VGAカード動作報告
  • 加工不要&動作報告有りVGAカード (PCI-Express)
    • ELSA GLADIAC 584 GS LP x1 512MB (PCI-Express x1) (#2)
    • ELSA GLADIAC 210 LP x1 512MB (PCI-Express x1) (#1) Embedded MegaRAID
    • ELSA NVIDIA Quadro NVS 290 x1 (PCI-Express x1) (#1)
    • ELSA NVIDIA Quadro NVS 440 x1 (PCI-Express x1) (#2)
    • GALAXY GF P73GT-X1/128D3 (PCI-Express x1) (#1, #2)
    • HIS H155HMF256EDDE1LN-R (PCI-Express x1)
    • HIS H155HMF256EL1N-R (PCI-Express x1)
    • ZOTAC ION-GPU-A-E (PCI-Express x1 Slot#1,#2)
      • 参考までに本カードを実装時、もう一方のPCI-Express SlotにはCMI8768-8CHPCIe(サウンドカード)を実装、ともに正常動作
CUDAできそうなのは、だった。TZ○N○で探してみたら、ELSA GLADIAC 210 LP x1 512MBZOTAC ION-GPU-A-Eはすぐ見つかった。店員さんに聞いたら、どちらも同じようなファンを使っていて、どちらかが特に壊れやすいとかの評判はないらしい。結局ZOTACのを購入。6%引きだかで7.5kで買えました。


ZOTAC IONマザー用 グラフィックカード ION-GPU-A-EZOTAC IONマザー用 グラフィックカード ION-GPU-A-E


詳細


店員さん、いろいろありがとうヽ('ー`)ノ


さて帰宅して Express5800 110Geにさしてみる。Wikiのひとは #2スロットでもいけたようだったが、うちのは個体差なのかだめだった(POST音までたどり着かない。画面真っ暗、キーボード無反応)

気をとりなおして#1スロットにさしてみたら、いい塩梅。
そういえば店員さん、「x1は相性が出やすい」と言っていたな。#1で使えただけでもありがたいと思うことにする。

ただ、Windows環境(XP x64)では、ドライバ入れるまでは画面のケーブルをつなぐ先の選択が、少し面倒。
  • Windowsがあがるまで:オンボードのVGAにつないでも画面は写らない。が、新しいグラボにつなぐと写る。
  • Windowsがあがると:新しいグラボにつないでも写らないが、オンボードにつなぎなおすと写る。
というわけで。ケーブルをつなぎ変えながら付属のドライバを入れて亊無きをえた。

次はCentOS 5.4の方で起動して、ドライバをインストールしにいく。
こっちはOSがあがってもオンボードのVGAのままで写るので楽。
ドライバをメーカーから拾ってきてインストール。(init 3 とかやって、Xを落とすのを忘れずに)

こちらも見違えたように速くなった。




さて本題の CUDA のインストールにとりかかろう。
つづきはあとでExpress5800 110Ge で CUDAの練習 続き(開発環境インスコ)




Knoppix Math 2010入ったのUSBメモリをDynabook Satellite W11にさして起動してみたところ、CPU使用率が100%になた。
(この機種はUSBブート非対応だが、PLoP Boot Managerで解決済み。)

topコマンドで様子を見てみたら、kacpidがCPUを占有している。

消えてもらいたいので、起動時のチートコードを探してみたらほどなく見つかった:
http://www.eng.tohoku-gakuin.ac.jp/knoppix/cheatcode.html

■045■ACPIオフ
ACPI(Advanced Configuration and Power Interface)、つまりパソコンの電力制御機能をOFFにするチートコードです。ノートパソコンなどでは頻繁に電力制御機能が使われます。これが逆にKNOPPIXの正常動作を妨げる元になる場合があります。
boot: knoppix acpi=off


感謝。



参考:Knoppix Math 2010をUSBブート非対応マシンで使う
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。