>rdpmc
実は私の所ではVxDで動いてます。
どうやら、あちこちで同時多発的にドライバが
作成されたようです^^;
ring0は危険がいっぱいらしいですが、今のところ
1件の事故も起こっていません。
Win98DDKのCVXD32(だったかな)をベースに簡単に
作成できました。
#私にはこのドライバよりFFTの方がはるかに面倒です^^;
wrmsrで妙な値を書き込むと簡単に飛んでいくので
やはり相当の危険物ですね。
#カウンターを止めずにプログラムを終了すると
#がんがんカウントされて楽しい^^
>この図を見比べると、GAsはグローバルだとしか思えません(TwT)
Win上でpsファイルってどうやって見るんでしょう^^;
っとその前に正常に展開できないなぁ。なぜだ。
#またlinuxで見ます
へるみ様にとりいるべく、極秘裏に開発していたrdpmcをring3で使うモジュールは
実験が終わり、あとはデバイスドライバにするだけ(^^)
と思っていたら、既にご自身が作られていたようです(TwT)
しかも、当然ながら僕のより出来がいい(^^;
全充さん、にゅ〜マシンおめでとうございます。
>強敵ですね(誰に対して?^^;)
僕に対してですか?(^^;
そうです!3次キャッシュなんかいりません!
2次だっていりません(>w<)
キャッシュを最適にコントロールする我々には
1次キャッシュさえあればいいのです(>w<)
#無茶苦茶言ってますが、やっぱり2Mだと結構効果ありますか(^^;
rdpmc関係を調べていたら、分岐予測の履歴データは各アドレスごとにあると
ちゃんと書いてあるのを発見しました。
以前に皆様を惑わすようなことを書いてしまい、すみませんでした。
#惑わされていたのは僕だけ・・・?
http://cardit.et.tudelft.nl/~steven/ilp/yeh93.ps.gz
この図を見比べると、GAsはグローバルだとしか思えません(TwT)
どなたか説明してください・・・
>PS/V Visionのファンはベルト(のようなもの)が切れていました。
いとも簡単に復活しそうですね^^;
>K6-III/450、3次キャッシュ2Mマシンの出現です。
強敵ですね(誰に対して?^^;)
L3-2MだとRound3に効くかもしれませんね。
>ビデオカードの直下ぐらいに挿しなおしてみます。
PCI-1はAGPと被ることも多いみたいですが・・・
とりあえず全部試してみましょう^^;
結局新たに組み立てました。
PS/V Visionのファンはベルト(のようなもの)が切れていました。
まあPS/V Visionは蘇れば、娘用PCということで
新たに組み立てました。
K6-III/450、3次キャッシュ2Mマシンの出現です。
まあWin98は無事動いているのですが、LANがつながっていません。
どうもスロットの下のほうに挿したのが敗因ですかねぇ。
ビデオカードの直下ぐらいに挿しなおしてみます。
送信したらIEが落っこちました^^;
無事送れていたみたいで一安心。
>>AMD Athlon Processor x86 Code Optimization Guide
>不思議なことに今AMDからとってくるとその説明が一切無いんですよ。
あ、ホントだ。22007.pdfの一つ前のrev.fまでは
あったんですけどね。嫌がらせですかね?(爆)
#分岐予測の計測結果を気長に楽しみにしています^^
>そうそう、体験を勧められてましたね(^^;
>レジストリ感染がこわいので体験できませんm(_ _)m
だから自分で試さずにプティタイジュさんに勧めて・・(自粛^^;)
>マンデルブローの睡眠学習
ベクトル化コンパイラはどういう最適化をするのか
非常に興味があります・・が、何をしているか知りません^^;
今回の方法は処理幅が広い方が効果があります。
おまけにマンデルブローでは私の言う所の擬似SIMD効果が
でるのでSSEに効きます(というか元々SSE用の案だ^^;)
#(脱線話)SSEを3DNow!に置き換える際にレイテンシ2と
#書いていますが、これは3か4が正しいですね。
>僕と同じ路線の演算器積みまくり系に走ってきましたか
x86のレジスタ数8の原則に縛られるなら、レジスタ幅を
増やすのもアリかな?と思ってみたり。
でも現実的では無いですね^^;
#眠くてウソを言っていなければよいのですが^^;
プティタイジュさん
>現在、へるみさんが分岐予測を研究されています。
>その成果にすごく期待しまくりなのですが(^^;
期待なんてしないでください(^^;
PENさんにrdmpmc使えるようにするルーチンをいただいたんですが、何故か私のところでは動かないのです(泣)。勉強不足だ。
うるりさん
>AMD Athlon Processor x86 Code Optimization Guide
でも参照してください(逃げ^^;)
不思議なことに今AMDからとってくるとその説明が一切無いんですよ。ばっさり消えていて困ってます。
書いたつもりで忘れてました。
>結局メモリアクセスがネックになって
>あるクロック数以上には高速化する意味が無い問題だと
>思っています。
僕も非常におっしゃる通りなような気がします(^^;
やはり足まわり(キャッシュというよりもユニット性能)が問題ですね!?
そうそう、体験を勧められてましたね(^^;
レジストリ感染がこわいので体験できませんm(_ _)m
おはようございます(^^;
僕はマンデルブローの睡眠学習が今終わりました。
うるりさん、考えましたね。
マンデルブローの特徴を活かしたアルゴリズム!
これはベクトル化コンパイラに使えそうなアイデア・・・?
#ところでベクトル化コンパイラってループをアンロールしてるだけですか?
で、アルゴリズムはナイス説明だったので分かったのですが
コードの解析は例によってしてません(TwT)ごめんなさい
#うるりさん作成なので、解析するまもなく完璧なのでいいんです(>w<)
それで、SSEが3DNow!の2倍いけるというのが納得できなかったりします(^^;
いや、きっとそこが今回の作品のポイントなのですね。
・・・とも思うのですが、3DNow!のSISDが相対的に速く、
SSEのSISDは遅いということも関係しているのではないでしょうか?
でもレジスタは明らかにSSEが多いな・・・
マンデルブローは演算性能より入れ物がモノを言うということですか(?w?)
あと、これは突っ込みどころ?だと思うので、一応やっときます(^^;
>8要素SIMDでもあれば試してみたいところである。
ついにうるりさんも僕と同じ路線の演算器積みまくり系に走ってきましたか(^^;
そうです!発熱は気にしなくていいのです!0.10マイクロメートルですから(^^;
演算器は絶対に最大同時発音数必要です!
ちなみに8ともなると足回りが気になりますが(^^;
スポーツカーはエンジンと見た目が良ければいい!?
ついでに体験版でもどうです>プティタイジュさん
>IntelC/C++ Compiler V4.5
http://developer.intel.com/vtune/compilers/cpp/demo.htm
>Performance Analyzer V4.5
http://developer.intel.com/vtune/analyzer/demo2.htm
>PENさんからの贈り物は、分岐予測成功の回数を測定出来るらしいです。
>きっとRDPMC命令ですね!?
また出ましたね。私の苦手な特権命令系^^;
詳しくは
>Intel Architecture Software Developer's Manual Volume 3
>AMD Athlon Processor x86 Code Optimization Guide
でも参照してください(逃げ^^;)
簡単に使う方法無いですかね。
#VTuneという突っ込み可^^;
>VTuneのダイナミック解析ってかなり不可解なリタイア
>タイム値を示すことがありませんか?
あ、シミュレートではなくてダイナミック解析ですね。
RDPMCはシリアライズ命令ではない(アウトオブオーダー
で実行される)ので厳密な値は返しません。
数十クロック程度なら簡単にずれそうに思います^^;
あくまでも傾向を見る機能ではないでしょうか?
#使ったこと無い人が推測を偉そうに言うなって?^^;
>今明かされる「濃緑」の秘密!
・・・そ、そおんな理由があったとは。
#全充さんは体育会系出身・・・?
>今明かされるプとVTuneの秘密!
実は・・・VTune使ったことありません(TwT)すみません。
うるりさんに期待していたのですが・・・
しかたがありません!ここは僕が例によって、
それっぽい(けどあまり保証できない)考えを書きまくります(>w<)
現在、へるみさんが分岐予測を研究されています。
その成果にすごく期待しまくりなのですが(^^;、掲示板によると
PENさんからの贈り物は、分岐予測成功の回数を測定出来るらしいです。
きっとRDPMC命令ですね!?
VTuneもおそらくこれでキャッシュミスの回数などを測っているのではないでしょうか?
ああ(TwT)でもペナルティがないのに数十クロックも止まっているのは
分かりませんm(_ _)m
>分岐予測
けっこう頑張りましたが、僕はもうあきらめました(^^;
>VTuneのダイナミック解析ってかなり不可解なリタイア
>タイム値を示すことがありませんか?
VTuneを使ったことがないという最大の問題がありまして
よく分からないです^^;
説明を見ている限りでは結構忠実にシミュレートしている
ように感じられます。
なんらかの遅延が生じることがあると言うことでしょうか?
>半透明ポリゴンは昔ながらのZソートが必要になるので
これが悩ましい問題ですよね。
上手い完全な解決方法はないものでしょうか。
>結局メモリアクセスがネックになってあるクロック数
>以上には高速化する意味が無い問題
キャッシュがある程度増大してくるので、頂点データ
ぐらいなら載っかるようになると思います。
1頂点46クロックだと460MHzで1000万頂点/秒ですか(あってる?)
#HardwareHnLって何クロック/頂点で処理してるんだろ^^;
>PowerVR
一応続編のリリースも予定されているみたいですが、
この系統はいまいち認知度が低いような気がします。
構造的にDirect3Dとの相性がいまいちな気が・・・^^;
#最近はチップよりもドライバの出来が重要ですね。
>パソコンだとラスタライズでのCPU消費が大きいのでいまいちアレ
ジオメトリをCPUでやるのは分かりますが、ラスタライズは
さすがにCPUではきついように思います。
素直に専門のチップに任せましょう^^;
>分岐予測
指摘の通り資料に載ってないので適当な予測です^^;
で、
>4bitの履歴データは各アドレス毎に独立、
>4bit16状態から2bit4状態の遷移データへの表は
>全てで共有されています。
あたりで理解してもらえるとうれしいのですが・・・
なかなか説明しづらいですな^^;
デフォルトを分岐しないとか0にするのが綺麗だと思うので。
10(めっちゃ分岐)、11(ちょっと分岐)、
00(あんまり分岐しない)、01(めっちゃ分岐しない)
とでも考えましょうか^^;
#注釈:MMXと同じ飽和カウンタです
4bit履歴は0000(ぜーんぜん分岐しなかった)で
初期化がいいかな。
以上信憑性まったく無し(無いがデフォルトで01)です^^;;
マンデルブローを放出しました^^;
http://ww1.tiki.ne.jp/~hino/Mandel100.zip
ちょっと詰めが甘いですが、こんなものでしょう(自己完結)。
説明もあるので暇なら読んでやってください^^
フラキチさん&みなさん
”濃緑”って
濃い緑という意味もあるのですが(AMDのカラー?)
私の卒業した学校の体育会の機関誌が「濃緑」っていいまして
そこから拝借しました。(著作権は?)
学校のカラーも当然”濃緑”です。
濃尾平野の実り豊かな緑ってことでしょうか?
解説でした。
みなさんこんばんは。
VTuneのダイナミック解析ってかなり不可解なリタイア
タイム値を示すことがありませんか? P6アーキテクチャ
の全てのストールを考えてみても、納得のいかない命令で
しかも数十クロックも止まっていることがあります。当然
ペナルティは報告されていません。
詳細は今後自分のWEBにでも書き込もうかと思ってます。
そもそもキャッシュミス等をシミュレート出来るとはいえ、
クロック倍率やメモリのアクセスタイムを設定する項目が
無いのにどうやってシミュレートしているのでしょうか?
…などなど、VTune話のネタはいくらでもあります。
>ハードウェアTnLより自分でやった方が何でも出来ていいのだと思います。
不透明ポリゴンのような描画順序に依存しないプリミ
ティブはハードウェアT&Lで処理した方が圧倒的に効率が
いいのですが、半透明ポリゴンは昔ながらのZソートが
必要になるので、どうしてもCPUでT&Lをする必要があり
ます。
そのこともあって高速化を考えているのですが、しかし
半分以上はアセンブラ馬鹿一代的な好奇心ですね(笑)。
>#Round4のネタにどうですかね^^;
自分の予想では、結局メモリアクセスがネックになって
あるクロック数以上には高速化する意味が無い問題だと
思っています。46クロックを叩き出したコードも、同じ
アドレスから頂点を読んで、同じアドレスに出力してでの
話です。PCではメモリレイテンシ/CPUクロックが機種毎に
まちまちなので、一概に早い遅いが判断しにくいですよね。
>PowerVRってのもありましたね。(忘れられてる?)
>意外と採用されることにメリット無いのかも^^;
とんでもないです!PowerVRアーキテクチャは非常に扱い
やすいですよ。前に書いた半透明ポリゴンのソート問題も
自動で処理してくれます。Zバッファなどを用いたトリック
等は弱いですが、モディファイヤボリュームと言う機能を
駆使すれば、やりたいことはほとんど出来ると思います。
マルチテクスチャやハードウェアT&L等の機能を実装した
PowerVRがリリースされれば、GSなんか目じゃないですね!
>フラキチさんは愛知県御出身ですか?
>では濃緑とは縁がありますね。
「なぜ能力でなく濃緑か?それは性能と西濃に起因する。」
って事でしょうか(笑)?
フラチキさんはじめまして。
僕は3D関係は、内積には意味がちゃんとあった(TwT)と感動したところで止まってて
ライティングはわかってない人間なのですが(^^;
46クロック!凄いです。
ぜひちょくちょくおじゃましてやってください^^
でないと僕のようなニセモノが幅をきかせてしまいます(^^;
>PS2など
僕が分かったところでは、
本当に3D(ポリゴンシステム)を理解されてる方にとっては
自分でライブラリを作った方が良さそうだということでしょうか。
ソフトウェアレンダリングは、パソコンだとラスタライズでの
CPU消費が大きいのでいまいちアレかもしれませんが、
ラスタライズが問題ないレベルであれば
ハードウェアTnLより自分でやった方が何でも出来ていいのだと思います。
#フラチキさんのように凄い人ならの話です。
#僕では無理だと先に言っておきます(^^;
>バグバグ <ギャグになってない(TwT)一発ネタということで
(TwT)しまったぁ。
前回僕は何をワケのわからないことを言ってしまったのでしょう。
#いつも?
そもそも資料に載っていないことを聞いてもしかたないのに(^^;
いや、あの、00-01-10-11で弱い成立が入るのか、それとも強い成立か?と
ふと思ってしまったもので(^^;
#4ビットの履歴は全てのジャンプでグローバルでいいんですよね・・・?
フラチキさんはじめまして。
VTuneユーザーとお見受けしました。
今のところ効率低下の原因は分かりませんが、
ソフト支援によるTnLは興味深いです。
#Round4のネタにどうですかね^^;
ちょくちょくおじゃましてやってください^^
全充さん
ファンを変えたら問題解決・・・それじゃぁつまんない?^^;
私の中ではK6-III-450MHzは今や伝説ですねー
>PS2
とりあえずグラフィックのメモリが足りないですね。
全体的に数値上は速いけどあくまで理論値という感じがします。
インターネットやDVD再生ならもっと使いやすい(作りやすい)
構成にして欲しいなぁ。
#やはり基本はゲーム機なのか?
どのユニットを何に使うのかが結構難しいように思います。
最後は妥協して適当に遊ばせておくのが無難だろうなぁ^^;
>GLIDE
PowerVRってのもありましたね。(忘れられてる?)
意外と採用されることにメリット無いのかも^^;
>バグ
やはり保存法則はあるようですね。プティタイジュさん。
分岐予測は初回時に適当(^^;)に初期化されるのでは?
多分基本的には分岐しないのがデフォルトでしょうね。
PS2をソニーがぶち上げたとき、出てくるのはトランジスタ数と
マーケティング上の能書きばかりで、「け、所詮半導体屋」が
なにをカタリやがる、と馬鹿にしていました。結局API整備は
しないんですね。
#GLIDEを売り込んだらどうだろう。
SONYから漏れ聞こえてきた話によりますと
あるSONY内部のインターネットな部署が
PS2の開発ツール整備をお願いしたところ、
今回は資料のみの提供で
DirectXのようなライブラリ化は独自にやってちょ
というお話で、取り合ってもらえなかった
そうです。
各ゲームメーカさんも独自開発となるのですね。
フラチキさん
はじめまして。
最近のここでの内容に完全に落ちこぼれている
管理人です。
私以外の人は十二分にお話に付き合ってくださると
思いますので、これからもよろしくお願いいたします。
フラキチさんは愛知県御出身ですか?
では濃緑とは縁がありますね。
はじめまして、
最近VTuneを購入して遊びまくっている折、このWEBを拝見
しました。
自分は3Dパイプラインの頂点変換と法線ライティング
の最適化に挑んでいたのですが、SSEとMMXを併用して
実行パイプ0と1をかつかつに埋めたところ、CPIを
0.71、46クロック/頂点を実現しました。(ソフトウェア
パイプラインで二頂点同時に処理しているので、レイテンシー
はもう少しかかります。)
しかし、その後メモリ読み込みを追加したとたん、
原因不明のストールで90クロックまで遅くなってしまい、
かなりやる気が失せていました。
このページはその手の話が出来そうなので、ちょくちょく
おじゃましようと思います。ではでは、お見知りおきを。
FFT、ちょっと手間取ってます。もうしばらくお待ち下さい。(謎)
>PS2について
知らないのにアレなのですが(^^;
VPU1は、ほぼ使い方が決まっているし
VPU0もエスケープ命令、ようするにコプロセッサレベルなので同期の問題は無し?
アッパーユニットとロウワーユニットの役割も分かれているので
あまり変なことは出来ず、見通しはたちやすい。
#大体は除算等でかい方の裏に詰めることになるだけ?
PCと違いハードは固定で、なおかつマルチタスクでもないので
クロック数の正確な資料さえあれば、見切りで同期を取れる。
#む〜ん、こっちが19クロックだから間に合うな・・・とか?
組み合わせの仕方くらいは、マシン語使いなら
誰もが考えずに組めていることなので楽勝です。
あと、アセンブラを使うのはライブラリを作る人だけでしょう。
その他の部分は単にMIPSコアをCで使うだけ?
だいたい、資料があるのに難しいもなにもありません!(>w<)
僕らなんか資料がないからキーボードとか割り込みコントローラとか、
いばらの道の解析を・・・(TwT)
>分岐予測について
最初に分岐命令に突入した後には、遷移状況は何が入るのでしょうか?
なんか的外れでしたらすみません。
#初心者風質問書き込み
>奥様にお許しをいただく計画について
今回は貯金です!貯金!(>w<)
と言おうと思ってたら、電動入りですか?
しかたがありません。ケースと電源だけ買って、あとは貯金です!
突っ込みお待ちしています。
というか、別にPS2のことはもうどうでもいいかも(^^;
PS/V Vision
実はマザボはLPX仕様別物
K6-III/450、メモリ128M、HDD3.2G、CD-ROM20倍速
(なんか全て初期構成の10倍)
外見だけがPS/V Visionでして。
購入済みのマザボもFreeWayのSocket7赤マザー
(年始セールに\2,000で手に入れたやつ)
従って、K6-III/450マシンにしかなりません。
Duronはまだまだです、年末にアスリートになった
ばかりですし、とてもSocketAマザーはまだまだ
そういえば今日から下北で公演中の演劇
明日観にいきたいなぁ
うるりさん、
>バグ保存の法則ですか?あったらすごく嫌ですね^^;
いやです、いや過ぎます(汗)
全充さん
>いよいよ妻用マシン(酔漢さん風、嫁マシン?)
>構築の時期でしょうか。
ときて、部品が全部そろってるんじゃ、作るしかないですね(^^;
それはそうと、PS/V Visionは486DXだったと思いますが、
やはりCPUとメモリーは買いなおしでしょうね。
#意外と全充さんがDuron一番乗りだったりして。
昨日とうとう
PS/V Visionのファンが止まりました。
1994年3月購入の遺物もいよいよ殿堂入りか?
既にMacPlus、SE/30が殿堂入りしています。
ファンの交換も考えてはいますが、
いよいよ妻用マシン(酔漢さん風、嫁マシン?)
構築の時期でしょうか。
マザー、ビデオカード購入済み
PS/V visionを廃棄処分すれば
FDD、HDD、CD-ROM、メモリは流用ですね。
キーボードもマウスもあるし。
後はケースと電源だけ。
どうしましょうかねぇ
>どうしても、SIMD FFTコードがまともに動かないの
>ですが、ひょっとすると飛んできた首が暴れているのかも。
バグ保存の法則ですか?あったらすごく嫌ですね^^;
もしかして、プティタイジュさんのところにもお一つ
飛んでいってるのかも知れませんね。
>「Athlonは再来年Thunderbirdが5000円になったら買おう」
マザー・メモリ込みで2万円ぐらいが限度でしょうか?
最近のCPUはサイクルが短いので再来年まで残ってない
かも知れませんね。
#今だと、k6-2-500MHzあたりが御買い得になるのかな?
#時間が取れたらマンデルブロー第二段を出すかも^^;
全充さん、お久しぶりです。
>とりあえずヤマタノオロチの首7つまでは
>刎ね飛ばしました。
どうしても、SIMD FFTコードがまともに動かないの
ですが、ひょっとすると飛んできた首が暴れている
のかも。
「Athlonは再来年Thunderbirdが5000円になったら
買おう」とか言ってましたが、Duronが安いなら手を
出すかもしれません。でもDDRがいいんだけどなぁ。
とりあえずEPoXのMBならDuronでもThunderbirdでも
使えるようですね。
全充さん
>88,889でした。
惜しいですね。少なければ強引に奪取できるのですが、
行き過ぎた時は無理ですね。
#管理者権限でカウンタを戻すとか^^;
>とりあえずヤマタノオロチの首7つまでは
>刎ね飛ばしました。
もう一息ですね。
新しい首が生えてこないことを祈ります^^;
>恒例の半年一度のマシンてこいれ
私も最近環境が変わってません。
Athlonの親戚のDuronが6月にも出てくるみたい
なので楽しみにしています。
メモリの必要量って難しいですよね。
#増設しても全く変化無かった経験有り^^;
>FFT原理主義でDFTをと思い挫折中
○○原理主義という言葉がヒット中ですね?
#怪しい思想集団?
プティタイジュさん
>今回のうるりさんのまとめで、また分かった気になってますが
>やっぱりいまいち分かってないかも(TwT)
私も完全には分かってないのでウソ言ってるかも^^;
#どうせ分岐予測なんてCPU毎に違うから概要だけ
#分かっていれば十分だと思ってる私^^;
>いつも突っ込み?ありがとうございます(TwT)
いえいえ。突っ込みをいれることに
楽しさを覚えつつあります^^;
>コンパイラに頼るのに慣れきってると大変というだけで、
>いくらなんでもx86でマシン語組んでるよりはマシなハズ。
MIPS系でしたよね。x86よりレジスタは多いけど・・・
きっちり命令を並べるのはそれはそれで大変な気がします。
あと、あの構成ってどうやって同期とるんだろう^^;
#FF8では部分的にアセンブラが使われてたらしいですが、
#PS2でもゴリゴリとコードを書いてるのかなぁ^^;
みなさま、ごぶさたしております。
プさん>
実は私も88,888を狙っていたのですが
88,889でした。
とりあえずヤマタノオロチの首7つまでは
刎ね飛ばしました。
恒例の半年一度のマシンてこいれ
今回はなににしましょうか。
奥さん専用マシン構築の名のもとに
私のメモリ256Mにしようかな。
FFT原理主義でDFTをと思い挫折中
15年前にFORTRANで書いた記憶はあるはずなのですが
。。。。。
では、また
僕も88888を狙いましたがダメでした
げっちゅ〜な方はぜひ記念の書き込みを
へるみさん
なにをおっしゃいますやら(^^;
Round3の方も、構わないのでプをぶっちぎってください。
分岐予測は過去にvさんのナイス図付き説明で分かったつもりになってましたが
やっぱりよく分かってませんでした・・・
今回のうるりさんのまとめで、また分かった気になってますが
やっぱりいまいち分かってないかも(TwT)
>>SSE2
いつも突っ込み?ありがとうございます(TwT)
いや、本当に助かります。
それにしても僕がSSEについてしゃべると間違いだらけ(>w<)
>#PS2は開発大変?(古いネタ)
コンパイラに頼るのに慣れきってると大変というだけで、
いくらなんでもx86でマシン語組んでるよりはマシなハズ。
#こっちは間違えてない・・・と思う(^^;
異論がある方は開発マシンください(^^;
本物の技術というものをご覧にいれましょう!
#僕はニセモノだけど
S級の皆様が出るまでもありません。僕で充分です。
おお、90000HITしてますね。大台まで後少し^^
>クロック数
CPU毎にコードを書くのは面倒なので、クロック数へ
依存したくないだけです^^;
内部RISC化+アウトオブオーダー+長パイプライン、
あたりに的を絞ったコードを書くようにしています。
Willametteは射程距離内ですね^^
#Round2の3DNow!コードがAthlonで素直に走ったのは
#このおかげではないかと思っています。
>SSE2
MMX命令のSSEへの拡張と、倍精度2要素SIMD、
64bitInt2要素SIMDが追加されているだけです。
倍精度2要素SIMDがFPUより速くないと意味が
無いので、WillametteではSSEユニットは
128bit幅に拡張されています。
#Mustang vs Willamette
http://www.chip-architect.com/
double-pumped-ALUの説明と突っ込みが良い感じです。
結局は位相のずれた2つのALUが、倍クロックで動作する
1つのALUに見えるということみたいですね。
#PS2は開発大変?(古いネタ)
http://www.watch.impress.co.jp/pc/docs/article/20000510/kaigai01.htm
へるみさん
4状態の状態遷移という意味では理解されている通りですが、
P6は4状態だけではありません。
>238『分岐方式一覧?』うるり[1999/12/04]
にあるように特定のjmp命令の履歴が4bitあって、
その4bit16状態の各状態について、2bit4状態の状態遷移を
行います(2段階の予測ということになります)
4bitの履歴データは各アドレス毎に独立、
4bit16状態から2bit4状態の遷移データへの表は
全てで共有されています。
例えば、
#状態遷移定義
(分岐しない)10-11-00-01(分岐する)
#4bit16状態の表
0000時の遷移状況00(分岐する)
0001時の遷移状況10(分岐しない)
0010時の遷移状況11(分岐しない)
…
#で、
jmpAの履歴が0000だとすると、0000の遷移状態を表から
引いて00で分岐すると予測。
#仮に外れて(分岐しないで)もう一度実行するときは
jmpAの履歴が0001で、0001の遷移状態を表から
引いて10で分岐しないと予測。
#ちなみに前回予測が外れているので
0000時の遷移状況11(分岐しない)
と更新されています。
#あ"、履歴表記が0ジャンプ、1スルーになっちゃいました^^;
なんとなく分かっていだだけますかね??
間違いには突っ込みよろしく>ALL
追記
Athlonは2段階の予測を遅延を嫌って採用していません。
プティタイジュさん
>#へるみさんのRound3参戦は、
>#プの順位がまたひとつ下がってしまうのでなんとも(^^;
いえいえ、いくらなんでもちょっとの時間で作ったものが勝てるわけがありません。私はFFTはあまり好きじゃないですし(笑)
Round4が始まれば何か参戦したいですけどね。
うるりさん
>分岐予測についてここでも多少論議(?)がありました。
ああ、そういえば以前いろいろやってましたね。
当時はK7やPIIIなんて私ににゃ関係ない!って良く読んでませんでした(^^;
ただ、Intelのマニュアルでもそう書いて四状態分岐予測ですが、
私にはどうも腑に落ちません。
このアルゴリズムだと000111000111000111...(0はスルー,1はジャンプ)
のパターンだと、0と1が切り替わるところでは内部の遷移状態は一番端にあるはずです。
すると、続く2回までは予測がはずれるので、結果として2/6=1/3の割合で分岐予測が外れることになると思います。
ところが実際に試してみると分岐予測が常にあたっていると思えるような実行サイクルです。
私のところで書いてる4bitの履歴をとる方法だと上のパターンは常に分岐予測が成立することになります。
何か勘違いしているのでしょうか。
「SIMD原理主義」・・・む〜ん、ナイス切り返し(>w<)
しかも話がつながってるのが凄いです。
僕も何でも極限までシンプルにするのがいいのですが
どうやらSIMD原理主義ではないようです。
>imm8=0xFFならd0+d1+...+d7になるという仕様
サイコー!ステキ!(>w<)
それに、SSEは見た目4並列なのに4個同時に演算できないでは
「SIMDの価値は、プログラムの組みやすさと引き換えても性能を出すことにある
(N個あったらN倍になるんじゃない?おお!すごいぞ!その通りだー!)」
という、SIMD原理第2法則からずれてますし。
>Intelとしては、便利とはわかっていても、将来の設計に
>ボトルネックを残すような命令は追加したくなかったのかもしれません。
きっとSSE2で追加されるでしょう(^^;
それで実装班の苦労も”さらに”追加。
へるみさんへ
>これは嬉しい。
プは単純なのですぐに本気にします。
#プも役に立つぅ(>w<)
でも、まずは日本のサイトから探してるだろうと思い込んでいたので
アドレス書かなくて、すみませんでした。
それと、3DNow!の命令を知らない僕のために
解説してくださってありがとうございます。
おかげで話題についていけます(^^;
#へるみさんのRound3参戦は、
#プの順位がまたひとつ下がってしまうのでなんとも(^^;
うるりさんへ
>あまり命令のクロックにはこだわらないので
それであの速度とは(TwT)
僕はクロック数が気になって仕方がない派です。
資料がないのであきらめてますが・・・
まあ、こだわらないといっても
それほどこだわらないということであって、
ほとんど完璧に推測されているのでしょうね。
クロックを気にするプよりも詳しいであろうところが(TwT)
僕はクロック数は気にしても分岐予測の方をあまり気にしてませんでしたが、
この機会に勉強させていただきます(^^;
へるみさんへ
分岐予測についてここでも多少論議(?)がありました。
詳しくは掲示板の方を見てみてください。
<憩いの広場スレッド表示>
171『Danteさんから参戦DLLが送られてきました。』全充@Kazu[1999/10/31]
199『Jump研究所』うるり[1999/11/07]
243『局所分岐予測と大域分岐予測』v[1999/12/12]
#分岐予測へ火が付いたのはDanteさんのDLLをT araiさんが
#Athlonで計測されたことからでしたね^^
ちなみに私の意見のまとめは12月ごろの発言
238『分岐方式一覧?』うるり[1999/12/04]
あたりです。それ以前は憶測が多分に含まれます^^;
>「SIMD原理主義」
おお、では私もSIMD原理主義者ですな^^;
PFACC的命令の説明が面倒なのはよく分かります。
でも使う人はあった方がうれしいですよね。
#何事も綺麗には収まらないということですね^^;
結局は2要素SIMDがつぶしが利いて良い様に感じます。
#理由:SIMD原理主義に従わない使い方も容易にできるから^^;
へるみさん
>まだデビューはしてませんが(^^;
宣言したら後には引けませんよ。
よってデビュー確定払いです^^;
#よろしかったら、Round3へ乱入してください^^
>d0+d1+...+d7になるという仕様です。
なんだか恐ろしくレイテンシが長い命令になる気がします。
多入力の加算って一回(一段?)では出来ないですよね?
4*4のベクトル乗算ユニットってどうなってるんだろう。
#疑問暴走中^^;
>SSE
FFT基数4だと初段がきついです。
意外と効率よく行かないという悪い予感。
#関係ないけど
#マンデルブロートにSSEが使えそうな良い予感もある^^;
「SIMD原理主義」
SIMDは原則ストリーム間演算を行わないですから、
PFACC的命令はないほうがいいですね。私は半導体業界
関係者ですが、SIMDの説明を客にするときには、まず
原理主義から入っていきます。変なトリックを考えられ
るとあとあとこっちまで巻き込まれます(笑)
冗談は置いといてSIMDといえどもPFACC的な演算を持った
プロセッサは沢山あり、むしろSSEやMMXのような原理
主義者は少数のようです。Intelとしては、便利とは
わかっていても、将来の設計にボトルネックを残すよう
な命令は追加したくなかったのかもしれません。個人
的にはSSEの話を聞いたとき、最初に思ったのは
「仕事が増えてMersed設計者がかわいそう」ということ
でした。
#忙しいといいつつWEBチェック
プティタイジュさん
>」iaopt_j.pdf以外に、
おお、日本語版があるとは盲点でした。これは嬉しい。
ありがとうございます。
うるりさん
>ついにSSEデビューですね。
まだデビューはしてませんが(^^;
>pfacc相当命令は無い方が命令構成上良いと思います。
例えば、
paddss xreg1, xreg2, imm8
#最初のpはprogramableってところ。
で、xreg1=[d3:d2:d1:d0], reg2=[d7:d6:d5:d4]
でimm8の各ビットがたっている部分だけ加算した結果がd0に出力って駄目ですか?
imm8=0xFFならd0+d1+...+d7になるという仕様です。
へるみさん
ついにSSEデビューですね。
どうやら流れは3DNow!->SSEか?
#pfacc相当命令は無い方が命令構成上良いと思います。
#πはなかなか奥が深いですね・・・PenIII-1440MHzって何^^;
酔漢さん
ハワイでサミットの打ち合わせとはISO(誤変換)がしそうですね^^;
PFPNACCの上手い使い方期待しています。
>SSEのクロック表(?)
Intel Architecture Optimizationに
多少載ってますね。24512701.pdfが手元にあります。
プティタイジュさんのも同じ系列だと思います。
私はあまり命令のクロックにはこだわらないので
詳しく表を探したことがないです^^;
便乗バンジョー番長 ・・・
(あるいは英語の活用風に発音してみるのもいいかも)<何が?(^^;
>命令クロック数が載ったpdfって
「通常命令?はuopsしか載ってなくて、SSEはレイテンシと
スループットしか載っていない(なんだか変な)」iaopt_j.pdf
以外に、もっときちんと載ってるものがあるハズ
なのですね(TwT)
どなたかプにも教えてくださいm(__)m
Pi計算は・・・あれだけ巨大なものだと
小さな改良でも効果ありそうでいい感じ(^^;
#全然分からないので無難なコメントでした(^^;
仕事のほうが忙しくなってきました。
3DNow! SIMDは、いじっているうちにコードの問題が
発覚したのですが、追及は進んでいません。Athlonの
PFPNACCを使うアイデアもあるのですが、しばらく手を
つけられそうにありません。
遅ればせながら最近私もSSEを始めました。
pfacc相当命令がないのはうっとうしい(=面倒)です。流石Intel...
ところで、命令クロック数が載ったpdfってどれなんでしょうか。
探したのですがなかなか見つけられなかったので教えて下さい。m(__)m
PS. πを100億桁計算した人のpageです。
>http://www.mdb.gr.jp/ja0hxv/
>海外渡航
答えは4です。ハワイで会議。
>軍用FFT
VHDLをつかったかどうかはわかりません。FFTなんて
所詮は掛け算と足し算しかしていませんので、バタフ
ライ結線をそのまま回路に落とせば出来てしまいます。
むしろこの回路にどう入出力をつなぐかの方が難し
いんですよねぇ。
酔漢さんは日本に「い」られないんですか(^w^)
#ニホンゴむずかしいデース。
1.技術が凄すぎたのでお呼びがかかった
2.実は日本マニアの謎の外人だった
3.地下での外交
4.地位を利用して豪遊
5.その他(もっと危険なので書けない(^^;)
皆様、どれか投票してください。
>軍用FFT
VHDLの実装例ってことですよね?
一から神業的回路設計をしなくてもゲートアレイとかで充分なんですね(TwT)
あとはPS2のユニット全開でFFTやったらどんなものかちょっと気になります。
軍用・・・技術もいいし、耐久性、信頼性もバッチリ。
これに唯一弱点があるとすれば、お値段がけた違いなことですね(TwT)
いや、ブランド志向な人にはいいのかも。
>バタフライ数
分かった!(TwT)にゅ! <親指を突き出してる音(?)
お世話になりました。
>とりあえず始めの2段の処理が甘いですね。
的確な指摘ありがとうございます。ですが、やはり
もっと深いレベルで差があると思います(TwT)
しかし!強化人間(ニセモノ)の意地にかけて
相打ちに持ちこみます!(無理か・・・)
海外は、大須とか日本橋とかアキハバラだと思っている僕には
今ごろ酔漢さんは、「10人に一人は実は宇宙人で、
お土産には雪が降る不思議なボールが名産」の国にいらっしゃるのね(>w<)
くらいしか想像できません。
でも僕は日本人至上主義なのでいいんです(>w<)
#その割にはキエル様とかガブリエル様とか言ってるんじゃ・・・
酔漢さんは日本に居られないんですね。
海外は、四国とか九州とか北海道だと思っている
私には想像がつきませんです^^;
>ハードウェアによるFFTですが、軍用なら1サイクル
軍用ですか・・・ノイズに強いFFT回路だろうなぁ^^;
>世間で言うところの「勝ち逃げ」ってやつですか?
いえいえ。元々、CPUアーキテクチャに興味があっただけで
アセンブラを極めようというわけでは無いんですよ^^;
>しかし本当にこの差はなんでしょうね・・・
とりあえず始めの2段の処理が甘いですね。SIMDが遊んでます^^;
時間間引きだとバタフライ数を増やせないのも
関係があるかもしれませんね。
>バタフライ数
W(0)、W(n/4)、W(n/8)、W(3n/8)、その他のW
と5つに分けると5バタフライというみたいです。
W(0)、W(n/4)、W(n/8)、W(3n/8)は複素乗算を簡略化できます。
基数を上げるなどして規則性を消費すると、簡略化する
部分が無くなりバタフライ数の最大数も小さくなります。
r3sdk_cを見ていただければなんとなく分かるかも^^;
日本を留守にしている間に面白い話がいくつか
でてますね。帰国後ゆっくり目を通します。
ハードウェアによるFFTですが、軍用なら1サイクル
ごとに結果を出すような実装例があります。いまなら
1024点のFFTを10nSで行う事は難しくないと思います。
もちろん、パイプラインなので100nS程度のレイテンシ
はあります。
>アセンブラからは離れつつあるのでネタの提供は難しいかも知れません^^;
なんと!世間で言うところの「勝ち逃げ」ってやつですか?(^^;
今回のFFTにしても、ちょいイカサマ(SSE1024専用)版で
55000クロックにしかならず、
#このオーダーで12000も違うのかっ!
#・・・なぜだ!世界がこんなに遠いわけがない!・・・ゼェハァ(?)・・・
#そうとも! 世界のレベルなんてたいしたコタァねぇ!
#この僕でも世界よりはイケてるキャラ(??)のはずだ!
#それなのにこの差はなんなのだ!
#・・・宇宙!そうか!ここの皆様は宇宙で勝てる人なんだ!!
と大騒ぎしてるのに(^^;
しかし本当にこの差はなんでしょうね・・・
今回のお題はともかくとして、僕のアルゴリズム&実装技術も
無駄などなく正当な技をつきつめてるはずなのに。
これが本当の才能なのでしょうね。
この皆様のレベルをどうにか日本中に知らしめたいのですが
なんか間違ってますか(^^;
ま、凄い人じゃないと他人のレベルが分からないので難しいですが(TwT)
しかし僕も凄すぎな方々に挑戦してしまったか・・・
でも世界に1000人ってレベルに勝っても仕方ないしなぁ。