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

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Fedora7が動いているPS3に、Windowsマシンからputtyで接続してemacsを起動したら、画面がスクロールするたびに表示が崩れる崩れる。

Ctrl+zやってからfgで復帰するときれいに戻るのだが、画面がスクロールするとまた崩れる。

根本的な原因までは絞れてないが、とりあえずフォントがTerminalだと崩れるようなので、MSゴシックにしてみたら崩れなくなった。

「putty emacs 崩れる」あたりでぐぐってみると、GNU Screenの話がよく出てきた。
スポンサーサイト
PS3にFedora7、CellSDK3.0を入れて実験中。
SIMD逆数命令について速度を比較してみた。

調査対象
PPU側:vector float vec_re(vector float a);
     vector float vec_re_nrm(vector float a); NewtonRaphson法で近似精度を高める関数
SPU側:vector float spu_re(vector float a);
     vector float spu_re_nrm(vector float a); NewtonRaphson法で近似精度を高める関数

コンパイルオプション
ppu-gcc -O6 -maltivec -mabi=altivec
spu-gcc -O6

次の命令を32億回実行して所要時間を確認した。クロックが3.2Ghzなので「時間≒所要クロック数」となると考えての実験。この結果にどれほどの一般性があるかどうかは不明。とりあえず自分用覚え書き。

PPU側
vec_re 1個:18.146秒
vec_re 2個:32.249秒
vec_re 3個:46.338秒
→vec_re関数は14クロックほど、ループ自体は4クロックほどかかる模様。

vec_re_nrm 1個:42.309秒
vec_re_nrm 2個:80.840秒
vec_re_nrm 3個:118.795秒
→vec_re_nrm関数は38クロックほど、ループ自体は4クロックほどかかる模様。


SPU側
spu_re 1個:13.040秒
spu_re 2個:24.067秒
spu_re 3個:35.094秒
→spu_re関数は11クロックほど、ループ自体は2クロックほどかかる模様。

spu_re_nrm 1個:25.140秒
spu_re_nrm 2個:48.127秒
spu_re_nrm 3個:71.184秒
→spu_re_nrm関数は23クロックほど、ループ自体は2クロックほどかかる模様。



使ったコードは次のもの
PPU側

#include < stdio.h >
#include < altivec.h >
float d[4] = { 1.414213562, 1.732050807, 3.141592653, 1.6180339};

inline vector float vec_re_nrm(vector float a )
{
vector float unit = (vector float){1.0, 1.0, 1.0, 1.0};
vector float approximation;

approximation = vec_re( a );
return vec_madd( vec_nmsub( approximation, a, unit ), approximation, approximation);
}

int main(int argc, char **argv)
{
vector float *vd = (vector float *) d;
unsigned int i;

for (i = 0; i < 3200000000; i++) {
*vd = vec_re(*vd); //この行を1~3個に増減させて計測
}
return 0;
}

SPU側

#include < stdio.h >
#include < spu_intrinsics.h >
float d[4] = { 1.414213562, 1.732050807, 3.141592653, 1.6180339};

inline vector float spu_re_nrm(vector float a )
{
vector float unit = (vector float){1.0, 1.0, 1.0, 1.0};
vector float approximation;

approximation = spu_re( a );
return spu_madd( spu_nmsub( approximation, a, unit ), approximation, approximation);
}

int main(int argc, char **argv)
{
vector float *vd = (vector float *) d;
unsigned int i;

for (i = 0; i < 3200000000; i++) {
*vd = spu_re(*vd); //この行を1~3個に増減させて計測
}
return 0;
}

PS3にLinux(Fedora7)をインストールした。haltでは電源が落ちてくれないので、電源ボタンを長押しで対処する必要あり。

手順は「PS3 Linuxのインストール(fixstarsさん)」を参考にした。

CUIで使えれば十分、と割り切ったので必要な機材は次のもので済んだ。

  • PS3本体

  • USBキーボード

  • ネットの環境

  • DVDが焼けるPC

  • 普通のテレビ



まずはPCでFedora7のISOファイルを落としてきてDVDに焼く。
その後はほぼ「PS3にFedora 7をインストールする」のサイトどおりの手順でできる。
ただ今回はテレビが貧弱なので高解像度は利用できない。したがって
kboot: linux video=720p
のところは
kboot: linux video=480i text
とやって、テキストインストールする。

個人的な設定メモ。


Fedora 7 インストール個人的ノート」「Services in Fedora 7」を参考に不要なサービスを停止。

# chkconfig atd off
# chkconfig anacron off
# chkconfig avahi-daemon off
# chkconfig avahi-dnsconfd off
# chkconfig bluetooth off
# chkconfig hidd off
# chkconfig cups off
# chkconfig firstboot off
# chkconfig hplip off
# chkconfig ip6tables off
# chkconfig isdn off
# chkconfig mcstrans off
# chkconfig mdmonitor off
# chkconfig restorecond off
# chkconfig sendmail off
# chkconfig setroubleshoot off
# chkconfig yum-updatesd off



備忘録:ゲームをしたいとき。
kboot:ps3-boot-game-os
Scoreのインストールが完了。
使ったマシンは
Gateway E1200 Celeron 366Mhz, 256MB×3台
で、1台をサーバーホスト、2台を計算ホストに割り当てた。

OSはRedHat7.2
Scoreのバージョンは5.0.1

Gatewayのマシンはもう1台あったのだが、これはオンボードのNICが壊れているので今回の参戦は見送り。
Aptiva(Celeron 600Mhz、256MB 型名は現在不明)のマシンもあったがこれも参戦見送り。理由は
フロッピーに書き込もうとするとハングアップするのでサーバーホストのインストールでこけること、およびオンボードのNIC(SiS900)が計算ホストのインストール時にうまく認識されないこと。
GatewayにしろAptivaにしろ、ちゃんとしたNICをPCIバスにでもさして、eth0とeth1を入れ替えるなどすれば、計算ホストとして使えるかもしれないので、これは今後の課題。

トラブるシューティング関係は↓
Scoreインストールメモ参照
数式番号を左側に出したい時は次のようにすればOK


\documentclass[leqno]{jarticle}
などとleqnoオプションを付ける。すると数式番号やタグも番号も左側に出る。


ちなみに
\documentclass{amsart}
amsartではデフォルトで数式番号関係は左側に出る。
PS3にFedora7をインストール中。

が、ISOイメージを落とす段階でつまづいた。
落としてきたファイルのsha1sumがどうにも合わない。コマタ

相異なる3ヶ所から落として、sha1sumを出してみると3者の値は一致するけども、その値は本物の値とは異なる,という状況。何だろこれ。
Irvineを使って落としていたのだけど、よく見てみると2Gバイトを越えたあたりで表示がマイナスになっている。内部では32ビット符号つき整数でカウントしているのか
うーんこれが怪しいのかも。Irvineでダウンロードできるサイズは最大2Gバイトなのか?



とりあえずこちら側の環境に原因がありそうな雰囲気だが、まだ絞りきれていない。転送容量の上限とかでもあるのかな。

とりあえず違う環境で落としてsha1sumを出してみて考える。
こちらの環境で2ヶ所から落としてみたときのF-7-ppc-DVD.isoのsha1sumの値はそれぞれ
689f2d197c549b213c084a39ca5e7b05812dcc07
78e6c82656dc07cd8c19351894e767b9b60e9cf3 ←これはここから落とした
となった。正しいSHA1SUMの値は
78e6c82656dc07cd8c19351894e767b9b60e9cf3
なので、一個は成功した模様。
これを自宅の方に転送しておくか。

続きはまた。



続き。
ISOイメージのダウンロードは成功。
結局、
1. 正しく落とせる環境で落とす。
2. splitコマンドでファイル分割($ split -d -b 102400k F-7-ppc-DVD.iso F_7_ppc_DVD_split.)
3. 念のためlhaで圧縮
4. 自宅に転送
5. 念のため書庫の正当性(CRC)のチェック
6. ファイルの結合
7. sha1sumのチェック
8. DVDに焼く
という手順を踏んだ。
バイナリファイルは1ビットでも間違っているとパーなので、こいうときでかいファイルだと困る。

で、焼いたDVDをPS3に突っ込んでインストールを始めたところで時間切れ。
ポンコツテレビ(14インチ)しか持っていないので、
boot: linux video=480i text
とやってテキストインストール。字が細かい上、滲みまくっているがインストール中だけの我慢。インストール後はPCからsshか何かでつないで使う予定。

例によって、LavieNX lw40hへのFedora7のインストール関係。

インストール後の細かい設定についての覚え書き。
画面の解像度が800×600にしかなっていなかったので調べた。やっぱり1024×768で使いたい。
「Fedora 800 600」でぐぐったら、対処法はすぐ見つかった。

画面の解像度を1024×768に変えよう。 on Fedora Coreを参考にしました。感謝
具体的な手順が丁寧に書かれていてうれしい


詳しいことは↑を見ることにして、概要だけまとめる。
要は
/etc/X11/xorg.conf
のSubSection "Display"のなかにある、Modesのところを調整すればOK
(xorg.confのバックアップをとってから作業するのを忘れずに)

GUI上からだといろいろ面倒なので、
# init 3
でGUIを抜けてCUIで /etc/X11/xorg.conf を設定し、
# startx
でGUIに戻って確認。という手順。

うまくいかないときは、Xの起動のログファイルを見て考える。
場所は/var/log/Xorg.0.log
#cat /var/log/Xorg.0.log|grep "1024x768"|uniq
と入力すれば関係するところが出てくる。
uniqって重複した行を削って1行だけ表示することにして後は捨ててくれるんだ。これ便利だな

自分の場合は、一発では1024×768にならなかった。ログファイルを見たところ、水平同期周波数の問題だった。
こちらのデフォルトでは 「HorizSync 31.5- 」となっていたが、「HorizSync 30.0 - 」に直したら、うまくいった。

上記URLでも注意されているが、
水平・垂直同期周波数の値を大きく変更するとハードウェアを損傷する可能性があります。値の変更は少しずつ。
とりあえずハマっている問題点を。

サーバーホストでブートフロッピーの作成時にハングアップ。
フロッピードライブがこわれているのかと思い、3台くらい交換してみたが、ダメ。しばらく書き込んだあと、アクセスランプがつきっぱなしになってマシン全体が固まる。→別のマシンをサーバーホストにすることにして対処。

Scoreでの計算ホストのインストールの時。
EITはeth0じゃないとダメ。eth1とかを使いたいときは、eth0を使ってインストールしてから、eth0をeth1とかに変更する。ここ参照
→オンボードのeth0が壊れてるから、PCIバスにNICをさしているのでこれは困る。何とかしないと。未解決。
要は、eth0とeth1を入れ替えればいいので
/etc/modprobe.confのaliasの書き換えと、
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
の中のHWADDRを入れ替えをすれば出来そう。

eth0とeth1を入れ替えるには これは古い情報。/etc/modules.confをいじっている。古いOSを入れるときに役に立ちそう。実際今回はRedHat7.2でやっているのでこちらの情報が役に立った。
CentOSのネットークデバイスをeth0とeth1を入れ替える方法 ifcfg-eth0のHWADDRを設定すれば良さそう、という記述があった。
実際に試してみたら、modules.confのaliasの設定を書き換えるだけで、HWADDRの設定は書かなくても、eth0とeth1がちゃんと入れ替わった。



計算ホストのインストール時に次のメッセージが出る。サーバーホストからはこの計算ホストは認識されないママ。

SIOCSIFADDR: No such device
Try it again
Configure Network fails
done
NFS mount : /mnt/runtime
Cannot mount
exiting

→いま考え中。このあたりを参照中。未解決。

↓このあたりが関係しそうな感じなので、メモ。
EITでサポートされていないNIC用のEIT boot floppyの作成
NICの認識


計算ホストのインストール時に、ブートフロッピーをさす順番を間違えた。
→これは不注意。解決。

yumを使っているとき、回線が遅くて失敗しまくってストレスフルだったので、タイムアウト値を変更してみた。

設定ファイルは /etc/yum.conf
この中に
timeout=60
などと書いてあげればおk
NISの設定方法のメモ。

NIS の利用を参考にした。というかそのまま。

RedHat7.2をフルインストールしておけば、ypservは入っている模様。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。