2006-01-01から1年間の記事一覧

x264 ppu patch

x264をクロスコンパイルするためのパッチをいつもの場所に置きました。 こちらベースはx264のdaily snapshotです。20061218のコードにパッチが当たることを確認しています。

x264

次なるターゲットは画像エンコ。ということでx264で試してみる。 とりあえずsnapshotをダウンロードして、クロスコンパイル。って、全然通らず。クロスコンパイルはあまり考慮されていないconfigureスクリプト。適当に直してしまう。 ビルドすると今度はalti…

xlc高!

せっかくPS3でFC5が動くのでセルフ開発を基本にしようと思っていたけど、前回のxlcの実力を見てちょっと考えを変えようかと思っています。xlcはi386用しかないので、PCによるクロス開発にしようかなと。普段のブラウザ、メール環境としてもちょっと非力な感…

Athlonでは?

ちなみにAthlon 3800(2.5GHzにクロックアップ中)だと、こんな感じ。 LAME version 3.96.1 (http://lame.sourceforge.net/) CPU features: MMX (ASM used), 3DNow! (ASM used), SSE, SSE2 Using polyphase lowpass filter, transition band: 17249 Hz - 177…

xlcの実力

lameをppuだけで実行した結果がいまいち遅いのでコンパイルオプションを変えて実行してみました。またIBMのxlcも試してみました。で、その結果ですが、 CC=ppu-gcc ./configureLAME version 3.96.1 (http://lame.sourceforge.net/) Using polyphase lowpass …

SPU版

今日はSPU版のビルド。とりあえずコンパイル時間は少々かかるがビルドは通る。で、早速実行するとlibmisc.soが無いといわれる。そんなものの存在をすっかり忘れているが、Makefileを見ると確かにリンクしている。どうもSDKで用意するライブラリの様子。SDKを…

SDK1.1 on PS3

環境が大体整ったので次はSDK1.1のインストール。PC上にダウンロードしていたISOファイルをPS3にコピーし、インストール開始。が、stubs-32.hがないというエラーでビルドが通らず。stubs-64.hはあるのに。rpm -qf /usr/include/gnu/stubs-64.hを実行するとgl…

FC5インストール続き

20日の続きです."GNOME Desktop Environment"だけではXは入ってなさそうだったのでyum groupinstall "X Window System"を実行する。まだネットワークはつながっていないのでFC5のDVDROMはドライブに入れて、/mnt/cdromにマウントしておく。日本語環境用にyu…

FC5インストール

すっかり出遅れましたが、FC5をPS3へインストール中です。軟弱にもFIXSTARSさんのページを見ながらインストール。出遅れたぶん情報があって楽ですな。GameOS側では認識してくれなかった手持ちのUSBキーボードもブートローダは認識してくれたので無事にインス…

他のシステムインストーラ

YDLまでlinux導入はお預けかと思っていたら本家から素晴らしいご案内が!http://www.playstation.com/ps3-openplatform/jp/index.htmlこちらから「他のシステムインストーラ」を導入するとブートローダーが起動できるようになる。さらにこちらには各種パッチ…

購入

無事PS3購入しました。せっかくなのでPS3から入力中。手持ちのusbキーボードが認識しないのでソフトキーボードで入力しています。モニターはデルの2407でHDMIからDVIに変換して接続しています。最初は何も映らなかったがコンポジットでつないで画面設定を変…

lameポート完

ひさしぶりのパッチのアップです。いつも通りパッチはこちらです。いつもの10秒WAVファイルのエンコ結果です。 systemsim % mysim spu 7 display statistics SPU DD3.0 *** Total Cycle count 957282924 Total Instruction count 643 Total CPI 1488775.86 *…

SDK on FC6

今月Fedora Core 6がリリースされました。KDE環境の日本語入力が良くなったし、なかなかいい感じ。そこでFC6にSDK1.1 updateをインストールしてみました。SDK1.0はFC4用なのですが、これをFC5に入れるとシミュレータが動かなかった経験があったのでどうかな…

PS3予約

無事にPS3の予約ができました。 YDLの入手はよくわからん。最初はYDL.netにリリースされて、2週間後DVDで、さらに2週間後public mirror?YDL.netに加入するのは高そうやし、DVDのshipping費用や時間を考えるとpublic mirrorに落ちるまで待つかなぁ。ついで…

YDL

最近Lameはやってません。忙しくて…と仕事のせいにする。やっとPS3でLinuxが動作するという具体的な話が出てきました。http://pc.watch.impress.co.jp/docs/2006/1019/tera.htm:Title=YellowDogLinuxだそうです。「Sony Computer Entertainment(SCEI)公認」…

SDK1.1 update

気づくの遅すぎですが、SDK1.1とXLCコンパイラとシステムシミュレータがアップデートされたようです。こちらへ

profマクロ

今回はprofマクロを使ってプロファイルを取ってみました。encoder.cのlame_encode_mp3_frame関数がエンコード処理のメインループになりますが、この中のいくつかの関数の前後でプロファイルを取ってみるとL3psycho_anal_ns関数とiteration_loop関数が全体の7…

ひさびさのパッチ

fht関数もそれなりに速くなったのでパッチにまとめました。パッチはこちらです。いつものstarwarsの3秒WAVファイルのエンコ結果は以下のとおり。 systemsim % mysim spu 6 display statistics SPU DD3.0 *** Total Cycle count 981364963 Total Instruction …

fht関数

fft.cのfht関数のSIMD化をまだやってます。夏休みで一応動くところまで作ったものの速度が出なかったので、再度やり直しです。せっかくの夏休みが。

SDK1.1の結果

systemsim % mysim spu 6 display statistics SPU DD3.0 *** Total Cycle count 185063862 Total Instruction count 643 Total CPI 287813.15 *** Performance Cycle count 185063862 Performance Instruction count 105187041 (95980854) Performance CPI 1…

SDK1.0.1の実行結果

systemsim % mysim spu 7 display statistics SPU DD3.0 *** Total Cycle count 182385313 Total Instruction count 643 Total CPI 283647.45 *** Performance Cycle count 182385313 Performance Instruction count 102226631 (94395215) Performance CPI 1…

new SDKその3

現在作業中のコードをSDK1.0.1とSDK1.1でビルドして速度を比較してみました。-fshort-doubleが使えないので倍精度で演算している部分は手直ししたものを使い、どちらも-O3オプションでビルドしたものです。

new SDKその2

FC5をインストールし、SDKを入れました。早速再ビルド。が、-fshort-doubleオプションがあるとinternal-errorが発生してビルドできず。基本的にdoubleは遅いので使う意味がないし、気づかぬうちにdoubleで演算するための関数までリンクされて貴重なLSが使わ…

new SDK

ひさびさの日記です。 lameはfft.cのfht関数のSIMD化を考え中。単純なループではないのでどう攻めるか模索してます。Cell Broadband Engine resource centerを見てみたら新しいSDKがリリースされたようです。gccは4.0.2になるという点がどれぐらいパフォーマ…

SIMD化

手作業によるSIMD化はなかなか時間がかかっています。個人的な目標はCPIを1.0以下にすることですが、思った以上にCPIが減らないので取り合えず現状のパッチをアップします。SIMD化した部分は#ifdef __SIMD__で囲っています。パッチはこちら。個人的にはMMXや…

SIMD化奮闘中

プロファイル結果とソースコードを見ながら、簡単にSIMD化できそうなところから対応中。改善は見られるものの人に見せれる程ではないなぁ。ループアンローリングを手作業でするのも結構面倒。コードサイズが増えるので、スタック領域が減って動かなくなると…

プロファイル

SIMD化するにあたり、どの部分の処理が重いか把握するためgprofを使いプロファイルを取ってみました。spuパートを-pgオプションを付けて実行してみましたが、プロファイル情報のファイルが見当たらないので(そりゃーspu側からどうやってファイルを作るの?…

xlc続き

xlcでビルドしたプログラムが動いていない件はbitfield命令の生成コードが動いていないようです。これ以上xlcにこだわってもしょうがないので、gccでビルドすることにします。地道にsimd化してみます。

xlc

xlcによるビルドは難航しています。 -qhot=simdオプション、または-O4以上の最適化で、自動SIMD化が有効になるようですが、一部のファイルでinternal errorが発生してビルドが通りません。残念。-O2でデバッグオプション無しならぎりぎりLSに収まりますが、…

不具合修正と改良

log_tableを初期化していない点を修正したところ、結構速度が落ちました。また前回pow43はたいして使ってないからそのままとしましたが、実際呼ばれる回数を測定すると0.5秒(22フレーム)でも3万回以上呼ばれていることがわかったので、メモリ使用量をさらに…