CPUアーキテクチャについて語れ Part.12

このエントリーをはてなブックマークに追加
1Socket774
おいお前らいい加減、無能なAMD房・Intel房・GKに振りまわされず、
エンコ時間がどうとかPIがどうとかPS3がどうとかじゃなく、
CPUコアのアーキテクチャについて語りましょう。

x86/RISC/CISC/スーパースカラ/VLIW/MIMD/SIMD
等について語ってもよし、
各SPUの汎用レジスタ128本のCell B.E.マンセー、
x86なワンチップスパコンのLarrabeeマンセー、
時代はGPGPUだ!、Sunは漢の浪漫!、龍芯(笑)、
昔々8086の時代は(以下略・・・等もよし。

さあ、不毛な争いを止めてCPUアーキテクチャについて語ろう!

前スレ
CPUアーキテクチャについて語れ 11
http://pc11.2ch.net/test/read.cgi/jisaku/1214999146/l5

【過去スレ】
Part 1 http://pc5.2ch.net/test/read.cgi/jisaku/1082357989/
Part 2 http://pc7.2ch.net/test/read.cgi/jisaku/1101041110/
Part 3 http://pc7.2ch.net/test/read.cgi/jisaku/1139046363/
Part 4 http://pc7.2ch.net/test/read.cgi/jisaku/1151732227/
Part 5 http://pc9.2ch.net/test/read.cgi/jisaku/1159238563/
Part 6 http://pc9.2ch.net/test/read.cgi/jisaku/1169393906/
Part 7 http://pc11.2ch.net/test/read.cgi/jisaku/1172923824/
Part 8 http://pc11.2ch.net/test/read.cgi/jisaku/1178140550/
part 9 http://pc11.2ch.net/test/read.cgi/jisaku/1186887760/
part10 http://pc11.2ch.net/test/read.cgi/jisaku/1202913839/
part11 http://pc11.2ch.net/test/read.cgi/jisaku/1214999146/

自作板CPU系スレッド 現行スレ案内&過去ログ保存サイト
http://cpu.jisakuita.net/
2Socket774:2008/08/28(木) 09:50:30 ID:vX5clrui
テンプレが時代錯誤っぽかったんで勝手ながらアレンジしちゃいました。

元のやつ↓

---------------------------------------------------
おいお前らいい加減、無能なAMD房・Intel房・GKに振りまわされず、
エンコ時間がどうとかPIがどうとかPS3がどうとかじゃなく、
CPUコアのアーキテクチャについて語りましょう。

x86/RISC/CISC/スーパースカラ/VLIW/MIMD/SIMD
等について語ってもよし、

フリップフロップ回路が小さいPentium Mマンセー、
CISCなのに内部はRISCなPentium 4マンセー、
x86なのに32/64bitコンパチなOpteronマンセー、
昔々8086の時代は(以下略・・・等もよし。

さあ、不毛な争いを止めてCPUアーキテクチャについて語ろう!
---------------------------------------------------
3,,・´∀`・,,:2008/08/28(木) 09:53:25 ID:vX5clrui
つか「Cell B.E.」って書こうとしたら間違えたし
4Socket774:2008/08/28(木) 12:48:00 ID:Xw90vCMb
12スレ目にもなると流石に飽ーきてくっちゃ、ダーリン
5Socket774:2008/08/29(金) 01:45:30 ID:Yk6PbdtE
これもテンプレにしたほうがいいな
--
fenceってのは、ストア1が完了したことを別のストア(ストア2)で他のプロ
セッサお知らせしたりするようなときに二つのストアの間に置くものだよ。

このとき、、

つまり、ストア1とストア2のアドレスは別。他のプロセッサがロードによっ
てストア2への書き込みを知った後、ストア1の結果を読み取ろうとしたと
き、それがメモリシステムのごたごたによってまだ読めなかったりすると
困る。

そんなことが無いように保証するのがfenceの役割。
6,,・´∀`・,,)っ-○●◎:2008/08/29(金) 01:46:22 ID:XA+DpWi/
中途半端に完了させるのがフェンスの役割だろ。
いまさらまともなこというな
7,,・´∀`・,,)っ-○●◎:2008/08/29(金) 01:47:29 ID:XA+DpWi/
これもテンプレ追加で

595 名前:Socket774[sage] 投稿日:2008/08/25(月) 01:15:00 ID:O2J1PAxv
>>590
> メモリコンシステンシ遵守で走ってるときは1命令が完了するまで次の命令はフェッチできない。

どうしてそう性能を落したがるのかなあ
8,,・´∀`・,,)っ-○●◎:2008/08/29(金) 01:51:11 ID:XA+DpWi/
どうしてそう性能を落したがるのかなあ
どうしてそう性能を落したがるのかなあ
どうしてそう性能を落したがるのかなあ
どうしてそう性能を落したがるのかなあ




データに信頼がなくなるからです
9Socket774:2008/08/29(金) 02:01:02 ID:Yk6PbdtE
これもテンプレ
--
> フェンス命令をしないといけないのはアクセスするアドレスが重なるときだよ。やっぱり君は解ってないな。

これは「間違い」
10,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:03:52 ID:XA+DpWi/
488 名前:Socket774[sage] 投稿日:2008/08/24(日) 16:48:54 ID:dxY2QGlA
>>486
> HPC用に用意されるソケット版はXeonとプラットフォーム互換で、QPIで相互インターコネクトされる。

だからそれはLarrabeeじゃねえって何度も言ってるだろ
11,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:04:42 ID:XA+DpWi/
x64非互換な脳内Larrabeeの話はよそでどうぞ
完全準拠は確定してます。
12,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:06:33 ID:XA+DpWi/
488 名前:Socket774[sage] 投稿日:2008/08/24(日) 16:48:54 ID:dxY2QGlA
>>486
> HPC用に用意されるソケット版はXeonとプラットフォーム互換で、QPIで相互インターコネクトされる。
だからそれはLarrabeeじゃねえって何度も言ってるだろ
488 名前:Socket774[sage] 投稿日:2008/08/24(日) 16:48:54 ID:dxY2QGlA
>>486
> HPC用に用意されるソケット版はXeonとプラットフォーム互換で、QPIで相互インターコネクトされる。
だからそれはLarrabeeじゃねえって何度も言ってるだろ
488 名前:Socket774[sage] 投稿日:2008/08/24(日) 16:48:54 ID:dxY2QGlA
>>486
> HPC用に用意されるソケット版はXeonとプラットフォーム互換で、QPIで相互インターコネクトされる。
だからそれはLarrabeeじゃねえって何度も言ってるだろ



あーあ、このスレもフェンスに中途半端に完了させられるみたいだな。
13Socket774:2008/08/29(金) 02:15:22 ID:Yk6PbdtE
どうした団子、勇ましく>>5を否定したらどうだ
14,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:16:20 ID:XA+DpWi/
ところでさ、面白いもの見つけたんだがwwww
中途半端にフェンスに完了させられる(笑)ってのはこんなニーモニックの命令かね?



vscatvps/vscatvpd/vpscatvb/vpscatvw/vpscatvd


ククククク

お前は死ぬよ。確実に。
15,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:16:47 ID:XA+DpWi/
>>13
否定しないよ。ようやく解ったようだね。
16,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:17:56 ID:XA+DpWi/
ただ、フェンス命令があってはならない理由って結局何なんだね?
何かわからないけど他に互換でない要因があるに違いない
と思い込みたい状態?
17Socket774:2008/08/29(金) 02:19:06 ID:Yk6PbdtE
んじゃ、これも否定してくれ

団子> フェンス命令をしないといけないのはアクセスするアドレスが重なるときだよ。やっぱり君は解ってないな。
18,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:20:31 ID:XA+DpWi/
488 名前:Socket774[sage] 投稿日:2008/08/24(日) 16:48:54 ID:dxY2QGlA
>>486
> HPC用に用意されるソケット版はXeonとプラットフォーム互換で、QPIで相互インターコネクトされる。
だからそれはLarrabeeじゃねえって何度も言ってるだろ


これ撤回するならな。

いい加減Larrabee=EM64T準拠を認めてくれよ
19,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:23:12 ID:XA+DpWi/
>>17
で、スキャタ命令は、フェンス命令をせずにどうやってコンシステンシを守るんだい?
後続命令からのメモリ汚染をどうやって防ぐの?

君の仮想世界に存在する脳内Larrabeeの話はいいから
20Socket774:2008/08/29(金) 02:23:18 ID:Yk6PbdtE
>>18
やなこった

んで、まだ

団子> フェンス命令をしないといけないのはアクセスするアドレスが重なるときだよ。やっぱり君は解ってないな。

こんなアホみたいな主張を続けるのか
21,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:24:16 ID:XA+DpWi/
20 名前:Socket774[sage] 投稿日:2008/08/29(金) 02:23:18 ID:Yk6PbdtE
>>18
やなこった



現実から逃げるなwwww
22,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:24:42 ID:XA+DpWi/
>>20
撤回済みだけど前スレで
23Socket774:2008/08/29(金) 02:25:54 ID:Yk6PbdtE
これは認めてくれるのかなぁ?

826 名前: Socket774 [sage] 投稿日: 2008/08/27(水) 10:44:10 ID:qWNCgzHN
団子> フェンス命令をしないといけないのはアクセスするアドレスが重なるときだよ。やっぱり君は解ってないな。

メモリマップドI/Oで
a番地にデータを書きこみ、b番地へのライトでI/O開始
といった場合に
I/O開始時に、I/Oユニットがa番地のデータを正しく読めるよう
a番地へのライトとb番地へのライトの間にフェンス命令を挟むのが典型的な使い方の一つ

なので、アクセスする番地が重なるとは限らない

といったことを書いたはずだが…
24Socket774:2008/08/29(金) 02:26:46 ID:Yk6PbdtE
>>22
本当に撤回してたんならアンカー出してコピペしてくれよw
25,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:26:53 ID:XA+DpWi/
キャッシュライン管理の特性上、確実に汚されない組み合わせが存在するのも事実だよ
でも君が指定したあのアドレス指定だと普通セグメンテーションフォルトだからどのみちフェンスの必要がない。

絶対アドレス指定であれはありえない。
26,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:27:51 ID:XA+DpWi/
先生!ID:Yk6PbdtEはLarrabeeがEM64T準拠でないといってます。
27Socket774:2008/08/29(金) 02:27:53 ID:Yk6PbdtE
ついでにおれが最初から正しくフェンス命令の動作を理解していたのも認めるかね?
28,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:28:11 ID:XA+DpWi/
最初から誤解してた
29,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:29:24 ID:XA+DpWi/
理解してたらこんな馬鹿なことは書かない

> LarrabeeにはScatter/Gatherがあるだろ、
> 1命令で16要素のメモリアクセスするから、スレッド数にあわせて4段のパイプラインだと、
> 全部で64アクセスをバッファにためないといけない

> それをSSE的にフェンスするとなると、下手すれば全スレッドが止まる

そしてこれ
488 名前:Socket774[sage] 投稿日:2008/08/24(日) 16:48:54 ID:dxY2QGlA
>>486
> HPC用に用意されるソケット版はXeonとプラットフォーム互換で、QPIで相互インターコネクトされる。
だからそれはLarrabeeじゃねえって何度も言ってるだろ
30Socket774:2008/08/29(金) 02:29:46 ID:Yk6PbdtE
団子はフェンスの動作を完全に誤解していたが、いまとけつつある?

おれは最初から完全に正しい動作を説明していた

これでOK?
31Socket774:2008/08/29(金) 02:32:57 ID:Yk6PbdtE
フェンスの動作を全く理解していなかったことを認めざるを得ない団子がファビョッて

なんの関係もないレスを、しかもコメントを何もつけられずにコピペするだけで

難局を乗り切ろうと足掻く様は愉快だな
32,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:33:42 ID:XA+DpWi/
SSEは厳しいモデルだと言ってた奴がフェンス命令の仕様を理解しているわけがない。
CPUIDにフェンスの効果があることすら知らなかったんだからな
33,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:35:05 ID:XA+DpWi/
CPUID命令って、CPUのバージョンやベンダー名、対応命令を取得するだけでなく
副作用としてフェンスする効果もある。
CPUIDからeax:edx:ecx:ebxを汚さず、フェンス機能のみを使うのが、*FENCE

*FENCEが動作に干渉する命令は当然CPUIDを使っても干渉する。




ID:Yk6PbdtEの主張
「CPUIDの場合はフェンスをスルーすればいい」
34,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:39:11 ID:XA+DpWi/
561 名前:Socket774[sage] 投稿日:2008/08/24(日) 23:19:19 ID:dxY2QGlA
>>552
CPUID等の直列化作用のほうをVPUには緩めると思う
が、直列化以外の意義のないフェンス命令はナンセンス



どうみてもフェンス理解してない人の発言
俺が指摘してから調べたんだろ
35Socket774:2008/08/29(金) 02:39:39 ID:Yk6PbdtE
868 名前: 728-729 [sage] 投稿日: 2008/08/27(水) 16:11:10 ID:54ZJgqnI
団子は団子で、教科書的知識に対する理解不足を晒しているところがある
というのを理解しなよ。

と指摘されて

972 名前: ,,・´∀`・,, 投稿日: 2008/08/28(木) 23:13:49 ID:vX5clrui
(略)
ストア対象のアドレスが一部でも重なる場合にフェンスが必要なわけで
前後でロード・ストア対象のアドレスが重ならないことが最初から
解ってればフェンスを挟む必要がない。

マニュアルにも載ってる  常  識  で  す。


975 名前: ,,・´∀`・,, [sage] 投稿日: 2008/08/28(木) 23:39:13 ID:vX5clrui
アドレスが重複しないのに、
どうしてフェンスが必要だと思ったんですか?
それは仕様書が、というよりは文章が読めてないってことですよね。


868で指摘されて972や975でもこんな勇ましいことを言っていた君が、どこで無理解に気付いたのかな

978のnminoru氏のプレゼン読んでようやく分ったか?www
それでもまだトンチンカンなことを言っているが
36,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:40:21 ID:XA+DpWi/
「中途半端にフェンスに完了させられる」

これはフェンスを理解してる人の発言ではない
37Socket774:2008/08/29(金) 02:41:42 ID:Yk6PbdtE
フェンスを理解していなかった団子
フェンスを理解していなかった団子
フェンスを理解していなかった団子
認めざるを得なくなった団子

くやしいのう くやしいのうwwwwwww
38,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:42:07 ID:XA+DpWi/
> LarrabeeにはScatter/Gatherがあるだろ、
> 1命令で16要素のメモリアクセスするから、スレッド数にあわせて4段のパイプラインだと、
> 全部で64アクセスをバッファにためないといけない

ところが全部ページ内に収まるかを解決してしまえばバッファリングそのものが不要です
39Socket774:2008/08/29(金) 02:44:30 ID:Yk6PbdtE
知識も素養もないのにマニュアルだけ読んで フェンスを理解できなかった団子
しかも1スレにわたって偉そうな態度で大間違いを吹聴していた団子
くやしいっ…でも気持ちいいっ…
40Socket774:2008/08/29(金) 02:47:03 ID:Yk6PbdtE
ま、MACオタよりよっぽどマシな態度なんで、いじめるのはここまでにします

今日は団子が理解を深めたことと、素直ではないが自分の間違いを受け入れられるような人間に成長したことを素直に祝いましょう
41,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:47:22 ID:XA+DpWi/
↓彼はこの時点までライトコンバインを知らない
  ちなみにCPUIDがフェンス作用があるのも俺が指摘して気づいた


763 名前:Socket774[sage] 投稿日:2008/08/26(火) 20:56:01 ID:JnmrWmO4
>>761
> リタイアまでは見届けてもデータの正しさには保証がない。

リタイアしたストア命令が、データを正しくストアしている保証はない、という意味か?

766 名前:Socket774[sage] 投稿日:2008/08/26(火) 21:17:10 ID:JnmrWmO4
>>765
すまないが、君と話すことはもうなにもない

「リタイアしたストア命令が、データを正しくストアしている保証はない」

なんて、x86に限らず、ありえない
42,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:48:12 ID:XA+DpWi/
勝利宣言wwww

でも君は死ぬんだ。確実に。
Larrabeeは完全なEM64T準拠ですから。
43Socket774:2008/08/29(金) 02:48:35 ID:Yk6PbdtE
これに懲りたらちゃんと最新の分厚い教科書読んでね
どういうプライドから読まないのか知らないが、読んで損はしないよ
44,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:50:14 ID:XA+DpWi/
っていうかライトコンバイン命令のリタイヤ条件を把握してない奴が
フェンス命令の仕様を理解してるわけがないしさ。

766 名前:Socket774[sage] 投稿日:2008/08/26(火) 21:17:10 ID:JnmrWmO4
>>765
すまないが、君と話すことはもうなにもない

「リタイアしたストア命令が、データを正しくストアしている保証はない」

なんて、x86に限らず、ありえない
45,,・´∀`・,,)っ-○●◎:2008/08/29(金) 02:50:59 ID:XA+DpWi/
>>43
懲りるのはお前だよ。
なぜならLarrabeeにSSE*は実装されることは確定なのだから。
46Socket774:2008/08/29(金) 02:57:29 ID:Yk6PbdtE
>>44
> っていうかライトコンバイン命令のリタイヤ条件を把握してない奴が

そもそもライトコンバイン命令のリタイヤ条件というのがどういう意味かわからんが、よかったら説明してくれ

リタイヤするための条件なのか?
リタイヤ後に満している条件なのか?

団子の言い方ではそれすらわからん
47,,・´∀`・,,)っ-○●◎:2008/08/29(金) 03:01:25 ID:XA+DpWi/
> リストベクトルなんて有名な性能ボトルネックじゃん
> リソースの投入し甲斐のある箇所だよ、ベクトル機みたいにね

こんなことを言う馬鹿がなぜか回路の制約でSSEはサポートできないと言う
48,,・´∀`・,,)っ-○●◎:2008/08/29(金) 03:38:21 ID:XA+DpWi/
どこでリタイヤとみなすかなんて実装定義だが、
ライトコンバインはメモリまでストアするわけだから、もし、確実にストアできるまで
待つという仕様だと、それがすむまで待たなきゃならんよな。
すなわちストアなら100クロック以上待たないといけない。

でもそんなことやってない。
こんな風にしてフェンス命令を挟んでかかったクロック数計測してみればいい

movntps [ecx], xmm0
sfence
movntps [ecx+16], xmm1
sfence
movntps [ecx+32], xmm2
sfence
movntps [ecx+48], xmm3
sfence

フェンスは前の命令が全部リタイヤするまで次の命令をフェッチさせない仕様なんだから
逆にパイプライン段数の差をとれば、リタイヤと見なすのにかかってるクロックがわかる。
何クロックかかるかなんてのはそれこそ実装依存だが。
それでも、リタイヤと見なすのに逆算して数クロック分しかかかってないことがわかる。
つまり、確実にストアされたかなんてフェンスを使った時すら見てない。
実験してみればわかることだよ。



ちなみにスキャタ命令はMASKMOV*やMOVNT*と同じくライトスルーな。
AoSの読み書きはキャッシュのスラッシングが起きやすいから、キャッシュを
介さないことが好ましい。逆にむしろライトスルーでないと帯域が生かせない。
通常のストアはライトバック制御のせいで待たされるからね。性能を殺す要因。

また、ライトスルー命令だからこそ通常のアクセスとの境界にフェンス命令が【要る】わけよ。
これは常識な。
49,,・´∀`・,,)っ-○●◎:2008/08/29(金) 04:05:25 ID:XA+DpWi/
前スレの発言は撤回する気がないようなのでしつこく粘着してやる

> ページフォールトハンドラ内では当然共有データのページテーブルを更新するだろう
> なのでフェンス命令は必ず実行される

ハンドラに捕捉されるとパイプラインは全部流れます。
そもそもフェンス命令の「実行」状態って何を言うんだろうか?
まだ未完了の実行ユニットのポートをが数サイクルにわたって占拠され
その後ろで実行ステージを待ってる状態を実行中とは言わない。

フェンス命令によって中途半端にストアさせられるwwwwとかさ

ちなみにページスラッシングはOSじゃなくてマイクロコードでやる仕事ですので
例外ハンドラは全然関係ない。


> scatterの全てのメモリアクセスをバッファリングしておいて、すべてのアドレスがページインした状態を保証してからバッファを書きだすと
> 意味論的には正しいが、バッファリングのコストと、実際のストアまでの余計な遅延がある

ページインかどうかはアドレス指定に用いるレジスタに含まれるオフセット値の最大と最小だけとって
その範囲を見れば判別できるので全てを物理アドレスに変換しストアパケット作ってから
バッファリングするような手間をかけるまでもなく簡単に保証できる。

50Socket774:2008/08/29(金) 04:13:44 ID:d7DEsUlu
まだやってるのか…

どうでもいいけどARMのコード資産は見えないところに行き渡ってる。見えるエコシステムのx86界隈とは文化そのものが違うね。
51,,・´∀`・,,)っ-○●◎:2008/08/29(金) 04:30:05 ID:XA+DpWi/
見えるって言うか実際CPUターゲット別のプログラマ人口で一番多いのがx86だろ。
ソフト市場規模で見てもね。

ARMもいいんだけどでもIntelはXScaleやめちゃったしなぁ
WirelessMMXは本家ARMのSIMDより好きだったんだが。
俺もARMのアセンブリコードくらいは読めます。
てか、まさに、取ってきた仕事のために読んでる。
プレディケートの概念は直感的でいいね
3レジスタオペランドマンセー
52Socket774:2008/08/29(金) 06:07:00 ID:Yk6PbdtE
>>48
なーんだ
やっぱりわかってないじゃん(プ
53,,・´∀`・,,)っ-○●◎:2008/08/29(金) 06:10:29 ID:XA+DpWi/
>>49に補足
そもそもヴァカの間違いは
「フェンス命令は一度パイプラインにフェッチ前の命令で例外が起きても破棄できない」
という思い込み

実際には、例外が起きればパイプラインは全部フラッシュされ、
もちろんフェンス命令も「パイプラインに取り込まれてない」状態に巻き戻されます。
分岐予測ミス時にパイプラインを破棄するのと同じ理屈です。
正常処理できなかったフローは破棄します。

どーせパイプラインに取り込んじゃったら、例外が起きようとフェンス命令をリタイヤ
するまでは継続しないといけないと思ってるんだろ。前の命令を押し出してでも。
だってそうじゃないと「中途半端な状態でフェンスに中断させられる」とか言わないもんな。

 基本、こいつはただの 馬 鹿 だ か ら


前の命令に影響を与える命令は存在しません。
そんなんあったらノイマン型コンピュータの原則に反します。
だから、教科書にも書いてある常識です。

後続の命令は実行前ならいつでも破棄出来ます。
パイプラインが実装されてからずっと、そういう構造になってます。
でも頭弱いから、フェンス命令が残ったまんまだと思ってるんだぜ。

その思い込みを根拠に、一貫性云々のこじつけでSSEがサポートできないとか言ってるんだぜ。
いまだに。
ちなみに、例外時に破棄することを前提としたストアバッファは存在しません。
例外チェックをクリアしてからストアバッファに溜まります。


で、フェンス命令のどこが厳しいだって?wwww

そもそもの前提として、例外が起きたらフェンス命令は溜まったままになりませんwwww

スキャタのアドレス解決機構は、フェンス命令の実装の有無と関係なく
備えていないといけない話だし
54,,・´∀`・,,)っ-○●◎:2008/08/29(金) 06:11:02 ID:XA+DpWi/
>>52
なんだ、いまだにわからないのか。決定的な勘違いが。
55,,・´∀`・,,)っ-○●◎:2008/08/29(金) 06:14:21 ID:XA+DpWi/
×「フェンス命令は一度パイプラインにフェッチ前の命令で例外が起きても破棄できない」
○「フェンス命令は一度パイプラインにフェッチされたら、前の命令で例外が起きても破棄できない」
56Socket774:2008/08/29(金) 06:19:00 ID:Yk6PbdtE
>>48
ヒント

シングルCPUのユーザープロセスにはフェンス命令はいらない
57,,・´∀`・,,)っ-○●◎:2008/08/29(金) 06:23:16 ID:XA+DpWi/
馬鹿だなCore 2で計測してんのに。
計測して反証しろよ。
お前アセンブラ知らないから無理か。まあ馬鹿には無理なのはわかってるし。

x86の話してるのに、x86の命令に存在しない

  「s t o r e 」

とか書いちゃうくらいだもんな。ぷぷぷ
58,,・´∀`・,,)っ-○●◎:2008/08/29(金) 06:28:54 ID:XA+DpWi/
それより>>53で図星なんだろ?
でないとフェンス命令が干渉するなんて世界で1人だけの妄想は
起こりえない
59,,・´∀`・,,)っ-○●◎:2008/08/29(金) 06:38:06 ID:XA+DpWi/
http://aceshardware.freeforums.org/consequences-of-extending-xmm-registers-to-ymm-t539.html
ここにx86プログラマ界の重鎮Agner氏がいるから
自分が思ってるフェンス命令の動作を説明してきてごらんよ


一発で論破されるから
60前スレ641:2008/08/29(金) 07:32:57 ID:uVP3Rngo
MOVNT系はノンテンポラルとかいう Intel 用語で呼ばないといかんでしょう
ライトスルーはライトスルーで別物だし
ライトコンバインは他にも色々あるからさ

というか、ノンテンポラル命令のWrite Combineプロトコルって、
M,E → Cache Line と Write Data を Combine して burst write
S → RFO後、辻褄が合うようにwrite (実装依存?)
I → マスク付で Write Data を burst write
で、必ず I に落ちるプロトコルっしょ
(勘違いがあったらごめん)

ライトスルーってのは Valid か Invalid しかないのよ
61Socket774:2008/08/29(金) 10:55:15 ID:Yk6PbdtE
>>48
> また、ライトスルー命令だからこそ通常のアクセスとの境界にフェンス命令が【要る】わけよ。
> これは常識な。

プププププ

62Socket774:2008/08/29(金) 11:05:35 ID:L2m2fICO
LarrabeeでSSEが動くのはTera×3以前からIntel自身に言われてたこと。
むしろAVXやLNIは今年になってからの新事実。
Larrabeeには、既存命令と干渉するような新命令なら、最初から載せないだろう

たしかに、キャッシュに収まりきらない大きい多次元配列のアクセスは
ノンテンポラルを使うべきというのはPen3の頃からインテルが言ってた事項だよ。
シーケンシャルならまだいいが、ストライド次第では壮絶なキャッシュミス地獄になるからね。
63Socket774:2008/08/29(金) 11:52:43 ID:Yk6PbdtE
団子> 【現実のIntel/AMD/VIAの実装】
団子> ストアバッファはあくまでキャッシュ帯域の節約のため一括転送するために貯めておくもの。

プププププ
64Socket774:2008/08/29(金) 11:56:39 ID:Yk6PbdtE
> >>22
> 本当に撤回してたんならアンカー出してコピペしてくれよw

コピペマダー?
65Socket774:2008/08/29(金) 12:07:41 ID:Yk6PbdtE
>>20
> 団子> フェンス命令をしないといけないのはアクセスするアドレスが重なるときだよ。やっぱり君は解ってないな。
> こんなアホみたいな主張を続けるのか

>>22
団子> >>20
団子> 撤回済みだけど前スレで

フェンスをちゃんと理解したと思ったら

>>48
団子> また、ライトスルー命令だからこそ通常のアクセスとの境界にフェンス命令が【要る】わけよ。
団子> これは常識な。

やっぱりわかっちゃいねー!!

団子の浅薄な理解はラッキョのごとし
66Socket774:2008/08/29(金) 12:12:48 ID:Yk6PbdtE
正解も書いておいてやるぞ

Weak Consistencyに於いては
2つのメモリアクセスの順序を**CPU外部**に対して保証する場合には、必ずフェンスを間に挟む必要あり
それ以外の場合にはフェンスは全く不要

ライトスルーとかもう全然関係ナシ
67,,・´∀`・,,:2008/08/29(金) 12:53:52 ID:XA+DpWi/
で、その必要な命令を、マルチコアアーキテクチャのLarrabeeでは
SSEごと「サポートできない」と言ってる馬鹿がいる。

その理由も、既に完全否定されているにもかかわらず、である。
フェンス専用命令のサポートを消して全部CPUIDで済ませろって?
20倍のクロックも待たされる上にEAX:EDX:ECX:EBXレジスタを汚すCPUIDを?

まあ、嘘を言ったのは認めるさ。
まあ、「storeなんて命令なんて無い」って言われて必死に調べたんだろうと
思って、軽くあしらっただけなんだけどさ。
でもアレのコードはプログラミング作法としちゃ駄目だよ
スタックとかヒープとかデータセグメントに対する相対アドレッシング
とかじゃなしに10000000とかの即値でアドレッシングする時点で
安全にストアできる保証がない。
即値はアプリケーションの作法としてはありえない。
そういう意味ではどのみちフェンスがあろうがなかろうが、
一般保護違反になる可能性高いから、あろうがなかろうが同じってことで。


まあいいけど、問題でも出しておくか
add eax, [edx+ecx*2+12345678h]
のModR/Mバイトのエンコードを16進数で答えよ。
これはx86アーキを知る上では常識だけどさ。
68,,・´∀`・,,:2008/08/29(金) 12:58:42 ID:XA+DpWi/
というかスレッド間で共有するアドレスならなおさら、
データセグメントなりヒープのポインタを使ったアドレッシングになるわけで
「即値」になるわけがない
69Socket774:2008/08/29(金) 13:03:34 ID:YVziV6Bc
何故そこで86になるような問題にしないのか
70Socket774:2008/08/29(金) 13:35:22 ID:Yk6PbdtE
>>67
調べりゃすぐわかることを好きこのんで覚える趣味はないが、まだちょっとだけ覚えている

op modrm sib offset

add eaxはopバイトで指定
modrmがsibの存在とオフセットを指定
siバイトは、スケール2 インデックスecx ベースedx

だっけ

オペコードの割り当てはわすれたが、26hくらい
7ビット目は0、6-4ビットでALUの機能を指定、3-1ビットでアドレッシング、0ビット目でbyte/word

レジスタはeax,ebx,ecx,edx,esp,ebp,esi,ediの順で0から7にエンコード

modrmは、md rrr mmm
modはアドレッシング形式を指定する
mod!=0とmmm=5でsibバイトの存在を指定する

mod=0がレジスタ-レジスタ
mod=1,2,3がレジスタ-メモリでオフセットサイズがそれぞれ0,1,4バイト、かな

sibはss iii bbb
スケールは1,2,4,8なので、*2はss=01

オフセットはリトルエンディアン

結局

26 C5 53 78 56 34 12


20年ぶりにしてはよく覚えてるだろww
71Socket774:2008/08/29(金) 13:40:45 ID:Yk6PbdtE
>>70
×add eaxはopバイトで指定
○addはopバイトで指定

おまけ

20 add eax,eax
21 add eax,ebx
22 add eax,ecx
23 add eax,edx
24 add eax,imm
25 add eax,[offset]
26 add r, r/m
27 add r/m, r

modrmのmmmは

000 [eax]
001 [ebx]
002 [ecx]
003 [edx]
004 [esp]
005 sib
006 [esi]
007 [edi]

で、modの値に応じてそれぞれにオフセットがつく
mod=0のときは、そのままレジスタ番号

じゃなかったけか
72Socket774:2008/08/29(金) 13:49:54 ID:Yk6PbdtE
>>71
> 7ビット目は0、6-4ビットでALUの機能を指定、3-1ビットでアドレッシング、0ビット目でbyte/word

あ、これと矛盾するなあ

b/wの指定はどうすんだっけな。。
73,,・´∀`・,,:2008/08/29(金) 13:52:22 ID:XA+DpWi/
20年ぶりってwwwおっさんだね。
それならもうアルツハイマー始まっててもおかしくねーわな。

最近のOSセグメント管理知らなくて当然だな
共有変数を即値でとるとか、マルチプロセッサ環境としてにありえないことを
平気で言ってのけられるわけだ。
なっとく(笑)

OSレスならある意味フリーダムだけどね。そんかわりマルチプロセッサの管理が面倒だ。

つーか
Agner氏も当然のごとくLarrabeeではSSEは載るって見てるようだけどその点はどうよ?
74Socket774:2008/08/29(金) 13:57:49 ID:Yk6PbdtE
>>73
OSレスな環境の経験はないのか

そはともかくエンコーディングのクイズはどうよ?
75Socket774:2008/08/29(金) 14:03:15 ID:Yk6PbdtE
>>67
> まあ、嘘を言ったのは認めるさ。
> まあ、「storeなんて命令なんて無い」って言われて必死に調べたんだろうと
以下略

負 け 犬 の 遠 吠 え
76,,・´∀`・,,:2008/08/29(金) 14:03:36 ID:XA+DpWi/
OSレスでマルチコアでは結局OSの機能を自分で作る羽目になるだけだからな
組み込みでもマルチコア使う用途じゃ審美餡やらWinCEやらLinuxを使うのが一般的だぞ

ほい
http://maelific.dyndns.org/projects/myos/browser/tags/All/trunk/MyOS/src/dosutil/myasm/etc/%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E6%8C%87%E5%AE%9A%E5%BD%A2%E5%BC%8F%E6%8C%87%E5%AE%9A%E5%AD%90%E3%83%90%E3%82%A4%E3%83%88(32bit).xls?rev=87&format=raw
77,,・´∀`・,,:2008/08/29(金) 14:05:30 ID:XA+DpWi/
でも即値指定だけはないわー
78,,・´∀`・,,:2008/08/29(金) 14:08:26 ID:XA+DpWi/
>負け犬の遠吠え
っていうか即値アドレス指定の時点でマルチタスクOS上のアプリケーション
の共有変数として有り得ないしー(笑)
コードシーケンスとして論外(笑)
79Socket774:2008/08/29(金) 14:11:11 ID:Yk6PbdtE
>>78
負 け 犬 の 遠 吠 え
80,,・´∀`・,,:2008/08/29(金) 14:22:32 ID:XA+DpWi/
79 :Socket774:2008/08/29(金) 14:11:11 ID:Yk6PbdtE
>>78
負 け 犬 の 遠 吠 え

と負け犬が遠吠えしてます

出題者が間違えるなんてありえませんから。残念。
81,,・´∀`・,,:2008/08/29(金) 14:25:01 ID:XA+DpWi/
「フェンスに完了させられる」の誤解はいつ辞めるの?
その誤解の上にSSEをサポートできないのトンでも論理が構築されてるわけで
Agner氏にメールで聞いても「有り得ない」って回答だよ。
82Socket774:2008/08/29(金) 14:35:50 ID:Yk6PbdtE
>>81
> 「フェンスに完了させられる」の誤解はいつ辞めるの?

全く正しい表現だよ

比喩的ではあるから、表面的な理解もあやしい団子には難しかったかもしれないね

> Agner氏にメールで聞いても「有り得ない」って回答だよ。

引用してくれ
83,,・´∀`・,,:2008/08/29(金) 14:51:34 ID:XA+DpWi/
つーかIntel自身が「Intel 64準拠」だって言ってるんだがなぁ
Intelのx86 64bit拡張はIntel 64(旧称EM64T; Clackamas)以外に無いんだよ。
YamhillはMSその他に揉みつぶされました。
まあ、がんばってSSE非対応の根拠探してくれよ。

ネット上で同意者探すだけでもいいかもよ。
ま、徳川の埋蔵金なみに見つからないと思うけど。

まだ投げられてないサイコロの目をどうこうじゃなくて
既に決定した論理であり、しかも一部にはIntel(R) 64 Technology準拠
であると情報が漏れてる上で
ネットの片隅でSSEサポートでないと言ってる馬鹿一名
せいぜい全てが公開されるまで思い込みで踊れよ愚者め

Intelの公式フォーラムに参加してるx86システム技術者の重鎮ですら
XSAVEを用いたLarrabeeのワイドベクトルレジスタの退避モデルについて
フォーラムで意見を交わしているような既にそんな状況。
SSEがサポートされないなんていってる奴は後藤とこいつ以外みたことが無い
84Socket774:2008/08/29(金) 14:51:50 ID:Yk6PbdtE
1)先行するストア命令が完了したのを、フェンス命令によって保証されてから、後続のストア命令が完了する

が、より比喩的でない表現かな

2)先行するストア命令が、フェンス命令によって完了させられてから、後続のストア命令が完了する

ちょっと比喩的ではあるけど、わかっている人には1)はくどいし、まさか団子がフェンスを理解していなかったとは思わなかったからさ、ごめんな

1)も本質的でないが不正確なところもあるけどね
フェンスは先行するストアが後続するストアより「先に」完了することだけ保証すれば、実装はどうでもいい

SSEのフェンスみたいに後続命令をブロックするのだけが可能な実装ではない
85,,・´∀`・,,:2008/08/29(金) 14:52:47 ID:XA+DpWi/
自分でメールしろよ。とんでもないこと言ってるのお前だけなんだから
英語でおk。氏はデンマーク人だけど。
86,,・´∀`・,,:2008/08/29(金) 14:54:31 ID:XA+DpWi/
後続命令はパイプラインに載ってない状態になるんだぞ
バッファなんて要らないジャン
87Socket774:2008/08/29(金) 14:54:56 ID:Yk6PbdtE
お前聞いてないんじゃないかよww
88,,・´∀`・,,:2008/08/29(金) 15:14:21 ID:XA+DpWi/
別にそれが誤ってるなんて言ってねーよ
例外が起きてもフェンス効果が有効だと思ってるがゆえに馬鹿なんだよ
しかもExecuteより手前のステージは分岐予測ミスや例外発生時に
しょっちゅう破棄されてる。もちろんフェンス命令も含めてだ。

フェンス命令の作用自体、仕様書どおり「常にフェッチを止める」というよりは
フェンス命令が実行ステージに入ったときに前の命令がリタイヤするまで後続命令列の
フラッシュを繰り返すことで実現されてるんじゃないかと思ってたりするが。
ま、それこそ実装に依存した話になるが。
実行ステージに入っても無いのにフェンス効果が利く必要は一切ない。
いつでも破棄できることが重要。

で、PF等が起きたらパイプラインを破棄して立て直せばよく
ストアバッファを破棄できる仕様にする必要が無い。
ま、16Wayでもそんなに大きいとは思わないがな
VIAのインオーダの省電力CPUですらWCバッファが数Wayとかだろ。
89,,・´∀`・,,:2008/08/29(金) 15:17:44 ID:XA+DpWi/
>>87
だから「SSEサポートできない」なんてこの世界で後藤とお前くらいしか
思ってないないんだから、お前が直接識者に聞いてみろよ。
どうせ自分の間違い認められないんだろ?
90,,・´∀`・,,:2008/08/29(金) 15:20:16 ID:XA+DpWi/
っていうか
前の命令が完了してない時点で、フェンス命令はExecuteの手前のステージってのは
わかる?
わかってない?
だから馬鹿は氏ねよ
91Socket774:2008/08/29(金) 15:21:14 ID:Yk6PbdtE
>>88
> 例外が起きてもフェンス効果が有効だと思ってるがゆえに馬鹿なんだよ

また人が言ってもいないことを〜
例外ハンドラ内の話してただろ

>>89
相手のいることなので、団子のためだけにそんな手間かけんのはやなこった
92,,・´∀`・,,:2008/08/29(金) 15:24:25 ID:XA+DpWi/

SSEサポートできないなんていってる奴が
お前と後藤以外に誰がいるんだよ
つまりお前が人の意見に合わせられないゴミなの

93,,・´∀`・,,:2008/08/29(金) 15:29:08 ID:XA+DpWi/
>例外ハンドラ内の話してただろ

例外ハンドラってのはOSがトラップしてアプリのcatchブロックなんかに
投げるアレだけど、それでいいのか?

例外処理ブロックに飛ぶってことは、その時点でオペレーション失敗時に
読み書きしたメモリがクリーンである保証はそもそも無いんだよ。
保証をすることは規格にも無い。
だからバッファリングなんてする必要はないんだ。
94,,・´∀`・,,:2008/08/29(金) 15:50:05 ID:XA+DpWi/
それよりさっさと、どこのきょうかしょなのかおしえてよ。

そのきょうかしょ(笑)に基づけば「SSEがサポートできない理論」を説明できるのか?
なら1000円までなら尼損で買ってやんよ。


っていうか50過ぎのおっさんなんだろ?無理するな
95,,・´∀`・,,:2008/08/29(金) 16:07:03 ID:XA+DpWi/
>>93に補足すれば

そもそも例外を検出してないときですら、コンピュータは正しく
データを読み書きしてる保証なんてどこにもない。
ECCメモリのビット誤り検出にしてもそう。100パーセントの
信頼保証は有り得ない。

逆にもし完全に保証できたら、TMRによる多数決冗長系が組める
x86に対するItanium2の優位性は何なのよって話になるだろ。
96MACオタ>団子 さん:2008/08/29(金) 17:28:00 ID:r1khUYoD
>>89
  ------------------
  だから「SSEサポートできない」なんてこの世界で後藤とお前くらいしか思ってない
  ------------------
できるできないわ別にして、私もx87やSSEをサポートしない可能性わ有ると思っているす。
97,,・´∀`・,,:2008/08/29(金) 18:03:29 ID:XA+DpWi/
仕様書見たけど不正な操作に対するコンシステンシ保証なんて
元々規定されてないじゃん。

命令レベルでall or nothingなんて保証したところでそもそも

保 証 す る 意 味 が ね ー し。

アプリケーションとしてall or nothingであったほうがいいのは、
あくまで関数レベル・機能レベルの話になるわな。
命令レベルで保証されても、命令レベルでdでリカバリーとか
無駄だからね。
例外トラップ機構なんて高級言語向けのものだから命令レベルで
順序保証されてても意味ねー。
するだけトランジスタの無駄。

フェンス命令は正常なフロー(all)にだけ順序保証をすればいい。
というかそういうもともと仕様のはずだが。

それがなんでscatterと干渉するんだよwww
マジ頭悪くね?
98MACオタ@補足:2008/08/29(金) 18:13:04 ID:r1khUYoD
SSEサポートの程度わ不明という点でわ、Anandも同意見の様す。
http://www.anandtech.com/cpuchipsets/intel/showdoc.aspx?i=3367&p=3
  ------------------
  64-bit x86
  SSEn support?
  Parallel/Graphics?
  ------------------
99,,・´∀`・,,:2008/08/29(金) 18:15:37 ID:XA+DpWi/
>>96
AVXのマニュアルではちょっとだけ
SSEのソフトエミュレーションについて言及してたね
利用頻度の少なくなった命令は#UDをOSに投げて、
トラップしてエミュレーション実行するとか
AMD64だったか忘れたがx87についても
エミュレーションについて言及されてたな。

でもそれは「サポートしない」って言わないんじゃね?
SPARC/Solarisがそんな感じのマイナー命令サポートだし

しかしだな

SSEでも現状利用頻度が多い以上は、ハードワイヤードロジックで
実装する理由がある。
ついでに言うとOSによるSSE*エミュレーションの実装は、
現状影も形も無いわけで、じゃあ誰が提供するのって話になる。
Linuxならpinでも使って実装する手もあるけどさ。
エミュレーション自体、SSEがほとんど誰にも使われなくなった場合の
オプションとして、ゆくゆくは、の話であって、
移行もしてないうちから切り捨てるのはセオリーに反してるべ。

おまいさんの信奉するAppleじゃ日常茶飯事かもしれんが
Intelに取っちゃ死活問題だべ。
100,,・´∀`・,,:2008/08/29(金) 18:20:11 ID:XA+DpWi/
>>98
Intelの言うところの「64bitサポート」は、
AMD64のLongモードとのISA互換+SSE3+CMPXCHG16B
までを要件としてるからそこまでは確定だべ。

逆にSSSE3/SSE4.1/SSE4.2/AES/CLMULのサポートはどこまでかは
俺にもわからんべ。
それこそソフトエミュレーションかもしれんべ。
101MACオタ@補足:2008/08/29(金) 18:21:08 ID:r1khUYoD
同様な疑問を提示しているサイトす。
http://techgage.com/article/clearing_up_misconceptions_about_cuda_and_larrabee/
  -------------------
  - Will apps written for today's Intel CPUs run unmodified on Larrabee?
  - Will apps written for Larrabee run unmodified on today's Intel multi-core CPUs?
  - The SIMD part of Larrabee is different from Intel's CPUs - so won't that create compatibility
   problems?

  The first two questions are quite similar, and the straight answer is "No.". But, there's a caveat.
  If we were to change 'apps' to 'code', then the story would change, because as it stands, Intel
  claims that the same Larrabee code can be compiled to run on either the CPU or GPU (Larrabee).
  It's all a matter of what you choose in the compiler to do.

  Intel noted that the code wouldn't be compiled for both the CPU and GPU at the same time,
  since the compiler will optimize the binary for the respective architecture. They went on to say
  that it could technically be compiled for both, but that would not be the ideal scenario, due to
  various optimizations.
  -------------------
Larrabee論文の「要リコンパイル」の行を重視している模様す。
102MACオタ>団子 さん:2008/08/29(金) 18:23:43 ID:r1khUYoD
>>99-100
広い世界にわ、LarrabeeのISAサポートに関して疑念を持っているヒト達がいる例ということで。
103Socket774:2008/08/29(金) 18:36:56 ID:Yk6PbdtE
>>93
> 例外ハンドラってのはOSがトラップしてアプリのcatchブロックなんかに
> 投げるアレだけど、それでいいのか?



>>97
> 命令レベルでall or nothingなんて保証したところでそもそも
>
> 保 証 す る 意 味 が ね ー し。

ププ
104,,・´∀`・,,:2008/08/29(金) 18:37:39 ID:XA+DpWi/
>>101
OSは動く必要はあるでしょ。
x64のOSはAMD64の基本命令まで最低限動くことを前提に作られてるから
動かないと話にならない。
IntelはMSに却下されたYamhillをしぶしぶ廃案にし、Longモードで使える
命令をAMD由来の特権命令も含めてサポートすることで、
それがx86の64ビット版の統一仕様になった。
それを1命令でも欠いてると、対応OSがない可能性がある。

SSE2までは有無を言わさず確定。
でもそれ以降の拡張命令は完全にサポート任意だから
サポート決めうちで最適化コード組んでればリコンパイルが必要ってのは
確かにそうなんじゃね?アセンブラやIntrinsics決めうちだと
リコンパイルどころじゃすみそうにないけどな。

俺はむしろリコンパイルが必要ってのは性能問題だと思ったが。
命令サポートが同じでも、インオーダだと専用のスケジューリングが
必要だし、あと論理CPU数分のスレッドを起こさないといけない。
性能が出せなきゃLarrabeeを使う意味が無いからな。
同じコードで同じスレッド数ならXeonよりはるかに遅い。
105,,・´∀`・,,:2008/08/29(金) 18:39:08 ID:XA+DpWi/
>>103←馬鹿だねこいつ。もうプしか言えないだろ。
得意の教科書で攻撃してこいや屑め
106,,・´∀`・,,:2008/08/29(金) 18:40:53 ID:XA+DpWi/
>>101
っていうかそれ
サポート命令が同じなら性能が同じだと思ってる素人アナリスト臭い

はっきり言って考察として読むに値しない。
107,,・´∀`・,,:2008/08/29(金) 18:48:04 ID:XA+DpWi/
誰かと思えばRob Williamsか。組み込みRTOSの本書いてる人だね。
こらMACヲタ、記者名くらい引用汁
108MACオタ>団子 さん:2008/08/29(金) 18:54:01 ID:r1khUYoD
>>107
  -------------------
  記者名くらい引用汁
  -------------------
だから何時も安易に他人のことをバカバカ書くなと。。。(笑)
109,,・´∀`・,,:2008/08/29(金) 18:54:54 ID:XA+DpWi/
それでも記事レベルで数を競うなら、「x64」として書いてる記事のほうがよっぽど多いんだよな
http://www.google.co.jp/search?q=Larrabee+x64

Larrabee "x64 incompatible"
だと2件しかヒットしない。しかもまったく関係ないページ
http://www.google.co.jp/search?q=Larrabee+%22x64+incompatible%22
110,,・´∀`・,,:2008/08/29(金) 19:00:30 ID:XA+DpWi/
LinuxのXSAVE/XRESTRサポートのためのパッチ送った企業ってどこだったっけ?
まあそういうこっちゃ
ヘッダの拡張フィールドによって1024ビットSIMDとかの時代まで対応できる命令とされる。
111,,・´∀`・,,:2008/08/29(金) 19:06:12 ID:XA+DpWi/
Intel's Larrabee GPU Will Support Linux
http://www.phoronix.com/scan.php?page=news_item&px=NjYzOA

面白いことになったね
112Socket774:2008/08/29(金) 19:24:32 ID:0dK6Hl59

Xの話じゃないの
113MACオタ:2008/08/29(金) 19:33:50 ID:r1khUYoD
Siggarph2008のLarrabeeプレゼン見つけたす。
http://s08.idav.ucdavis.edu/forsyth-larrabee-graphics-architecture.pdf
興味深いところわ、この辺すか。
 - in-orderでも遅くない (p.7)
 - U/Vパイプのペアリング(制限?)わPentiumと同じ (p.7)
 - スカラ命令わシングルサイクルレイテンシ (p.7)
 - SMTわクロックごとの粒度のFGMT (p.7)
   ただし、スリープしているスレッドわ除く (p.11)
 - SIMD ISAで引数の内、ペナルティ無しにメモリを指定できるのわ、一つだけ (p.8)
 - SIMDユニットで大半の命令わ実行レイテンシ8サイクル以下 (p.8)
 - SIMDの数値精度わビット表現レベルで"fast mode" SSEに同じ (p.8)
 - SIMDユニットで4-byeより小さいデータ型わサポートしない (p.9)
   16-bit Float, byte, shortわ、自動符号拡張
   グラフィック用の構造体も低レイテンシで変換
 - Scatter/Gatherわ16-wideベクトルの各要素に32-bitオフセットで指定 (p.9)
   スカラコードの自動SIMD化に適用
 - SMTの主目的わキャッシュミスの隠蔽 (p.11)
   でも命令レイテンシの隠蔽にも有効
 - スレッド間でTLBも共有 (p.11)
114Socket774:2008/08/29(金) 19:36:23 ID:6g0fQyCg
今月のパワレポでの後藤

「LarrabeeはMMX/SSE以降の拡張命令のほとんどを採用しないと見られる」

みたいなこと言ってた。
"ほとんど"という言葉が入ったのがネット記事との違いか。
115MACオタ>団子 さん:2008/08/29(金) 19:44:06 ID:r1khUYoD
>>100
  -------------------
  Intelの言うところの「64bitサポート」は、
  AMD64のLongモードとのISA互換+SSE3+CMPXCHG16B
  までを要件としてるからそこまでは確定だべ。
  -------------------
そのIntel謹製の資料で、x64ともx86-64ともEM64TともIntel64とも書かずに、
  ===================
  Plus standard 64-bit instruction extensions
  ===================
と書いているのにわ、意味があるのかもしれないす。"standard"すから、X64を指すと受け取るのも
アリと思うすけど。。。
116,,・´∀`・,,:2008/08/29(金) 19:46:05 ID:XA+DpWi/
> - SMTの主目的わキャッシュミスの隠蔽 (p.11)
>   でも命令レイテンシの隠蔽にも有効 。

なー、MACヲタよ。命令レイテンシの隠蔽できるってよ。
加減算は1サイクルだから意味無いす(笑)か?

117Socket774:2008/08/29(金) 19:49:24 ID:0dK6Hl59
Xでlarrabeeが使えることの何が面白いの?
118,,・´∀`・,,:2008/08/29(金) 20:00:00 ID:XA+DpWi/
>standard 64-bit instruction extensions
そりゃ「standard」って言ったらAMD64/Intel 64の共通規格のアレ以外ないでしょ。
それ以外にstandardはないでしょ
basicだったら微妙だしsubsetって言ってるなら非互換だろうけどさ。

まあSSE2までは少なくとも確定、SSE3もおそらくいける。
3バイトOpcodeを使うSSSE3以降が微妙。デコードアルゴリズムの拡張が必要だからね。
OSが最低限動くためにはSSSE3/SSE4は必ずしも対応させる必要はない。
この世代のx86は相対的にデコーダのコストが大きいから。

1ダイに16コアとか32コアとか強力なx86デコーダが載るのかと考えればぞっとする。
119MACオタ>団子 さん:2008/08/29(金) 20:03:12 ID:r1khUYoD
>>116
  -----------------
  なー、MACヲタよ。命令レイテンシの隠蔽できるってよ。
  加減算は1サイクルだから意味無いす(笑)か?
  -----------------
日本語が読めないことを思い出させて、わざわざ恥をかくことも無いと思うすけど。。。 
私の書いた内容わ、コレす。
  =================
  191 名前:MACオタ>団子 さん 投稿日:2008/08/17(日) 13:15:36 ID:Zsenu7UF
    >>190
      ---------------
      命令間のレイテンシ隠蔽のための方策も全然違う。
      4Wayのマルチスレッドによりプログラム側から見たレイテンシを小さくしたのがLarrabee
      ---------------
    4-wayマルチスレッドわロード・ストアの隠蔽だと思われるす。
    ショートパイプラインが売り(多分クロックわ低め)すから、命令レイテンシわ隠蔽するまでもなく
    小さいんじゃないすかね。
    レジスタわ少なそうすから、後続命令への演算結果のフォワーディングがCell/B.E.より重要になるし。。。
  =================
で、積和わ綺麗にパイプライン化されているとのことすから、一生懸命レイテンシ短縮しなくても
動作に問題わ無いす。
  ==================
  - Ternary, multiply-add, one clock throughput (p.8)
  ==================
120,,・´∀`・,,:2008/08/29(金) 20:03:42 ID:XA+DpWi/
それとも、MACオタ用語的には「standard」に規格外って意味でもあるのか?
121Socket774:2008/08/29(金) 20:05:38 ID:0dK6Hl59
で、Xでlarrabeeが使えることの何が面白いの?
122,,・´∀`・,,:2008/08/29(金) 20:06:13 ID:XA+DpWi/
面白いから面白いだけ
123MACオタ>団子 さん:2008/08/29(金) 20:07:17 ID:r1khUYoD
>>120
  -------------------
  MACオタ用語的には「standard」に規格外って意味でもあるのか?
  -------------------
日本語が読めるなら>>115を読み直せば判ると思うす(笑)
124,,・´∀`・,,:2008/08/29(金) 20:07:41 ID:XA+DpWi/
>standard 64-bit instruction extensions
 ~~~~~~~~
さて、ここはどう弁解しよう?

オッサンのトンデモ論的にはLNIと干渉するんだろ?wwww
125Socket774:2008/08/29(金) 20:07:49 ID:0dK6Hl59
ふぅん
126,,・´∀`・,,:2008/08/29(金) 20:13:25 ID:XA+DpWi/
>>123
なにか?AMD64準拠ならOSが動く条件はクリアだよね
暗黙にCMOV/SSE/SSE2も含まれる。

つまり「彼」の死亡条件がクリアされましたwww

SSE3もCMPXCHG16Bも今はAMD64の規格に含まれてる。
だがAMDは3DNow!と同じく実装は任意としている。
127,,・´∀`・,,:2008/08/29(金) 20:16:50 ID:XA+DpWi/
SSE3/CMPXCHG16Bも実装しとかないとAMD64互換であってもIntel 64非互換になっちゃうんだよね。
それIntel的にはまずいでしょ(メンツ的な意味で
128Socket774:2008/08/29(金) 20:17:59 ID:c37I8Bch
> 111 名前:,,・´∀`・,, 投稿日:2008/08/29(金) 19:06:12 ID:XA+DpWi/
> Intel's Larrabee GPU Will Support Linux
> http://www.phoronix.com/scan.php?page=news_item&px=NjYzOA
>
> 面白いことになったね
>
>
> 112 名前:Socket774 投稿日:2008/08/29(金) 19:24:32 ID:0dK6Hl59
> ?
> Xの話じゃないの

面白いテンプレが出来たね
129Socket774:2008/08/29(金) 20:27:41 ID:L2m2fICO
>>128
いいから死ね
130Socket774:2008/08/29(金) 20:33:46 ID:L2m2fICO
OpenGL(MESA)はXを介さずにフレームバッファにダイレクトに書くんだが。

DirectXがGDIでないのと同じレベルで別物。
無知って恥ずかしいね。
131Socket774:2008/08/29(金) 20:36:58 ID:0dK6Hl59
ふぅん
で、なにが面白いことになるの

X.Org 7.5 should be out before Larrabee ships and hopefully X.Org 7.6, but based upon the recent X history, who knows?
132MACオタ:2008/08/29(金) 20:37:39 ID:r1khUYoD
>>113すけど、上の階層を漁るともう2つSiggraphのプレゼンが見つかるす。
http://s08.idav.ucdavis.edu/lefohn-programming-larrabee.pdf
http://s08.idav.ucdavis.edu/pharr-advanced-rendering-on-larrabee.pdf
前者わ、ちょうどLarrabeeにおける『ソフトウェアコンテキストの細粒度切替による命令レイテンシの
隠蔽』を語っているす。ちなみに後者わグラフィックよりの話題す。

この中に出てくるLarrabeeにおけるコンテキストの最小単位"Fiber"って、リソースがダブらないよう
に複数の処理をするコードを自前で書けという意味にも取れるす。
特にハードウェア的な支援が無いように見えるすけど、「リソースがダブらないように」を満たすために
予想以上にレジスタファイルが大きいとか?
133Socket774:2008/08/29(金) 20:41:28 ID:8RINfp7M
>>131
イジメよくない
134Socket774:2008/08/29(金) 20:44:25 ID:L2m2fICO
私の肛門もフェンス命令に強制リタイアさせられそうです(笑)
135Socket774:2008/08/29(金) 21:01:26 ID:L2m2fICO
LNIとSSEは共存できるが、Larrabeeの実装では、VPUにSSE命令を100%コンパチで実装するのは難しい
(笑)
136Socket774:2008/08/29(金) 21:04:17 ID:L2m2fICO
【テンプレ】

> つか、万が一でもSSE*を100%サポートだったら死ぬの?

いいともさ
そのかわり、ごくささいな互換性でも失なわれていたらお前が死ねよ
137Socket774:2008/08/29(金) 21:07:58 ID:0dK6Hl59
なんか独り言いい始めたぞ
138Socket774:2008/08/29(金) 21:08:56 ID:L2m2fICO
SSEがサポートできない(プ
139Socket774:2008/08/29(金) 21:11:18 ID:L2m2fICO
私のバッファにもスキャット命令が溜め込まれそうです
フェンスに貫かれそうです
アーッ!
140Socket774:2008/08/29(金) 21:29:56 ID:8RINfp7M
>>137
お前があんまりいじめるからだろ
141Socket774:2008/08/29(金) 21:38:58 ID:L2m2fICO
先生、フェンスに完了させられてしまいました。
142フェンスに完了:2008/08/29(金) 21:41:03 ID:L2m2fICO
先生、ららびいがSSEをサポートしない理由教えてください
143Socket774:2008/08/29(金) 21:42:14 ID:0dK6Hl59
なんだ団子か
144フェンスに完了:2008/08/29(金) 21:43:15 ID:L2m2fICO
なんだ自殺宣言した人か
145Socket774:2008/08/29(金) 21:44:19 ID:koiu0PxM
ララビーのアレ(ストリームプロセッサ?)はインオーダー型のデュアルイシューじゃなかったっけ?

CPUコアのほうがインオーダー型のデュアルイシューなのは既出だけど
デュアルのうち片方だけは簡易にしてSIMDを載せない可能性があるとかいう話があった気がする。そのへんどうなってるんだろ。
146フェンスに完了:2008/08/29(金) 21:44:30 ID:L2m2fICO
で、いつ死ぬの?
147Socket774:2008/08/29(金) 21:45:27 ID:0dK6Hl59
は?
148Socket774:2008/08/29(金) 21:46:44 ID:8RINfp7M
>>143
バラスナヨ
149フェンスに完了:2008/08/29(金) 21:47:57 ID:L2m2fICO
フェンスに強制完了させられた短い人生だったな
150Socket774:2008/08/29(金) 21:49:40 ID:0dK6Hl59
何を言ってるんだろうねこの人は
151Socket774:2008/08/29(金) 21:51:31 ID:DRsgErBY
どんなCPUだろうと、GPUだろうと、GPGPUだろうと、DSPだろうと
呼び方違えど同じマイクロチップ(材質はシリコン(半導体))の仲間だ
152フェンスに完了:2008/08/29(金) 22:00:22 ID:L2m2fICO
ナウなヤングにバカウケ
153MACオタ:2008/08/29(金) 22:19:39 ID:r1khUYoD
>>132の続きすけど、よく読むと最初のプレゼンのp.25にFiberの説明があるす。
  -------------------
  ・ Fibers switch on texture request submission
   - Saves live registers
   - Saves the IP to resume at
   - Jumps to the next fiber’s IP
   - Next fiber restores live registers
   - Gets texture result, continues shading
  --------------------
レジスタの退避が必要ということわ、レジスタが増えている訳でも無さそうす。
そもそも同じページに"No hardware or OS support"って書いてあるす。。。

Larrabeeのスケジュール管理の話題で、どの辺が画期的なのか誰か教えて欲しいす。
154Socket774:2008/08/29(金) 23:13:04 ID:xdqYRUcn
ローエンドGPUのことなんてどうでもいいっす
155フェンスに完了:2008/08/29(金) 23:13:06 ID:L2m2fICO
scatter命令のためにSSEをサポートしないのが画期的
156Socket774:2008/08/30(土) 00:37:35 ID:efBh6GPC
>>145
Larrabeeの命令イシューは、VPU命令の大半は片方からのみ、ベクトルストア命令のみもう片方からも発行可能

とインテル資料にあった、はず

>>153
2000年より前に、マイクロソフトのコンパイラのfiberサポートのセールストークを見たことはあるが
一般的な用語かどうかはともかく、どちらもスレッドよりさらに細かいものを指していることには違いがないだろう

   - Saves live registers
   - Saves the IP to resume at
   - Jumps to the next fiber’s IP
   - Next fiber restores live registers
   - Gets texture result, continues shading

これだけ見るとMSの説明と同じだね

Saves live registerというのは、liveでないレジスタは退避しないということ
MSのfiberは、特にスタックフレームを共用していた
157Socket774:2008/08/30(土) 00:59:32 ID:efBh6GPC
>>156
一言でいえば、fiber≒コルーチン
158MACオタ>156 さん:2008/08/30(土) 01:04:04 ID:rRKT6K+V
>>156
fiberの解説感謝するす。しかし、
  -------------------
  liveでないレジスタは退避しないということ
  -------------------
これAltiVecならvrsaveレジスタでハードウェアサポートがあるような話すけど。。。
http://www.ibm.com/developerworks/power/library/pa-unrollav1/
  ====================
  You might think that the overhead of saving thirty-two 128-bit registers would be a little
  steep, and the designers of AltiVec would agree. To this end, a 32-bit register called VRSAVE
  has been provided. When the operating system switches context, it saves only the registers
  whose corresponding bit in the VRSAVE register has been set to one.
  ====================
159Socket774:2008/08/30(土) 01:18:03 ID:efBh6GPC
>>158
fiberは完全にソフトウェアで切り替えるので、切り替え時にliveなレジスタセットはコンパイラが完全に把握しているから
そういう機能は不要

AltiVecのはプリエンプティブなコンテクストスイッチをする場合に有用
160Socket774:2008/08/30(土) 01:25:45 ID:efBh6GPC
>>145
All instructions can issue on the primary pipeline, which minimizes the combinatorial problems for a compiler.
The secondary pipeline can execute a large subset of the scalar x86 instruction set,
including loads, stores, simple ALU operations, branches, cache manipulation instructions, and vector stores.

だってさ
161Socket774:2008/08/30(土) 01:27:26 ID:efBh6GPC
>>159
全然知らんのだが、AltiVecのレジスタに書き込むと、VRSAVEレジスタの対応するビットが自動的に1になるんだろ?
162Socket774:2008/08/30(土) 01:51:29 ID:efBh6GPC
>>105
> >>103←馬鹿だねこいつ。もうプしか言えないだろ。

団子の変な理解が端的に現れているところを挙げてみたんだが、確かにもうプププとしか言えないねww
163Socket774:2008/08/30(土) 03:44:19 ID:fZBNI9Ql
団子さんここにいたのか
プログラム板の連中が寂しがってたぞ
164,,・´∀`・,,:2008/08/30(土) 08:34:02 ID:DThLhIVJ
FiberはマイクロOS上の実行単位じゃね?GPGPUとして使った場合の。


Xeonソケットに刺さるGPUじゃない方の、あるいは純粋なCPUとして使った場合の
プログラミングモデルはまだ示されてない気がする。

どっかの海外記事に普通(regular)のOSは容易に移植もしくはそのままで動くらしく、
マイクロOSとは別個のメモリ空間が割り当てられるとか書いてあった。
これはハイパーバイザで仮想マシンを複数サポートする方法があることを意味するかもしれない。
それってつまりVTもしくはそれ以上の仮想化機構をサポートするってことになるんだが。
165,,・´∀`・,,:2008/08/30(土) 08:44:05 ID:DThLhIVJ
変な理解とは

・フェンス命令は一度パイプラインに入ったらリタイアするまでパイプラインをブロックし
たとえ前の命令が例外を起こした時でもパイプラインからフラッシュされないという思いこみ。
・前の制約により破棄可能なストアバッファリング機構が必要であるという思いこみ。
・SSEはLarrabeeではサポートせずx64非準拠になるという思いこみ。



アハハハハ
166,,・´∀`・,,:2008/08/30(土) 09:53:24 ID:DThLhIVJ
城島「Intelに『standardな64ビット拡張』って言われてみて、どう思った?」
167,,・´∀`・,,:2008/08/30(土) 10:09:31 ID:DThLhIVJ
ま、解ったなら、落とし前はつけような。
168,,・´∀`・,,:2008/08/30(土) 11:58:30 ID:DThLhIVJ
つか、かの人はもう一つとんでもない思い違いをしてたかもわからんね。

ここで問題です。
パラメータに依存して複数サイクルかかるような複合タイプの命令を、
マイクロコードに置き換える機能があるのは次のうちどれでしょう?

1.デコーダ
2.実行ユニット




それ考えたら、シンプルデコーダ側でVPUのストア(思うにそれすら一部のみ)
だけしかデコードできない技術的理由は俺はなんとなく解ったよ。
169,,・´∀`・,,:2008/08/30(土) 12:02:11 ID:DThLhIVJ
訂正

ここで問題です。
パイプラインにおいて、パラメータに依存して複数サイクルかかるような複合タイプの命令を、
マイクロコードに置き換える機能があるのは次のうちどれでしょう?

1.デコーダ
2.実行ユニット
170Socket774:2008/08/30(土) 12:08:29 ID:efBh6GPC
>>165
> ・フェンス命令は一度パイプラインに入ったらリタイアするまでパイプラインをブロックし
たとえ前の命令が例外を起こした時でもパイプラインからフラッシュされないという思いこみ。

フェンスを理解していないお前がおれの指摘を正しく理解できてないだけだろ…

以下同様
171Socket774:2008/08/30(土) 12:11:59 ID:efBh6GPC
>>168
> ここで問題です。
> パラメータに依存して複数サイクルかかるような複合タイプの命令を、
> マイクロコードに置き換える機能があるのは次のうちどれでしょう?
>
> 1.デコーダ
> 2.実行ユニット
>

何を言いたいんだろう

マイクロコードでもステートマシンでもいいわけだが、
団子頭では

複数サイクル命令==マイクロコードで実装

なんだろうか
172Socket774:2008/08/30(土) 12:15:28 ID:efBh6GPC
>>165
そうそう

> ・フェンス命令は一度パイプラインに入ったらリタイアするまでパイプラインをブロックし
> たとえ前の命令が例外を起こした時でもパイプラインからフラッシュされないという思いこみ。

おれがこういう主張をしているというのなら、該当箇所にアンカーふってくれ
今すぐ首吊ってやんよ
173Socket774:2008/08/30(土) 12:17:41 ID:efBh6GPC
>>172
おれが挙げた例は

「scatter命令が例外を起して、例外ハンドラに処理が移ってからフェンス命令を実行した場合」

だからね
この違いが理解できなかったんだね
174Socket774:2008/08/30(土) 12:22:17 ID:efBh6GPC
>>171
うん、やっぱり団子頭では

「複数サイクル命令は、マイクロコードで実装されなければならない」

ということになってるようだね
175,,・´∀`・,,:2008/08/30(土) 12:51:20 ID:DThLhIVJ
やっぱりばかだね

ていうか
たとえばCPUIDの主作用である実行の本質知ってる?
EAXで指定した値を元に、デコーダにぶら下がってるマイクロコードROMを参照し、各汎用レジスタに即値ロードする内部命令に置き換えるんだが。

例のリコール騒ぎになったDIVのバグもマイクロコードのテーブルの誤りだったのは有名な話

LarrabeeがP5が土台ということはマイクロコードベースなんだよ。
というかP6以降はもっと極端で、Complex Decoder Pathを強制される命令は例外なくマイクロコードを参照する。

scatter/gatherに限ってマイクロコード実装にしないという理由がない。
むしろscatter/gatherにエラッタがあった場合
マイクロコードでなければROM更新ではなくリコールするしかない。
176Socket774:2008/08/30(土) 12:57:12 ID:efBh6GPC
>>175
はいはい

gather/scatterがマイクロコード命令でなかったら首吊ってれるかい?
177,,・´∀`・,,:2008/08/30(土) 13:03:11 ID:DThLhIVJ
「SSEサポートだったら死ぬ」と明言し
x64準拠と判明しても見苦しく詭弁を
まき散らす行為を、君の定義で「死ぬ」というのなら

俺はそんなみっともない真似はお断りだ
178Socket774:2008/08/30(土) 13:06:50 ID:fCHg5zW2
>俺はそんなみっともない真似はお断りだ

団子さんからこんな言葉が聞けるなんて
ちょっと感動
179Socket774:2008/08/30(土) 13:11:07 ID:efBh6GPC
>>177
> x64準拠と判明しても

インテルのどの資料?
180Socket774:2008/08/30(土) 13:12:49 ID:efBh6GPC
>>177
> 俺はそんなみっともない真似はお断りだ

人気のないところで潔く首吊るか腹を切るかしてくれれば結構

電車などは迷惑がかかるからやめてね
181,,・´∀`・,,:2008/08/30(土) 13:16:17 ID:DThLhIVJ
さーな、俺の情報筋はWebじゃねーし。

ソースの在処はMACオタにでも聞けよ
>>115って言ってることだし。
182,,・´∀`・,,:2008/08/30(土) 13:18:43 ID:DThLhIVJ
これから死ぬ人間にやるような約束などないよ

最後までバカだったね
183,,・´∀`・,,:2008/08/30(土) 13:25:10 ID:DThLhIVJ
とりあえずSSEをサポートしない64ビット拡張が未だかつて「standard」であったためしは無いからね。
AMD64/Intel64(EM64T)以外にないんだよ。
184Socket774:2008/08/30(土) 13:29:39 ID:efBh6GPC
>>181
> さーな、俺の情報筋はWebじゃねーし。

さすがに団子の妄想を根拠に首を吊るわけにはいかんからなあ
185Socket774:2008/08/30(土) 13:31:15 ID:efBh6GPC
>>182
> これから死ぬ人間にやるような約束などないよ

お、団子の敗北宣言か?

> scatter/gatherに限ってマイクロコード実装にしないという理由がない。

これが怪しいことに気づいたかな?
ほかの軒かな?
186,,・´∀`・,,:2008/08/30(土) 13:31:50 ID:DThLhIVJ
じゃ、MACヲタの出したソースを根拠に死ね
187Socket774:2008/08/30(土) 13:35:44 ID:efBh6GPC
>>175
> scatter/gatherに限ってマイクロコード実装にしないという理由がない。

ごく一般的な物の考え方として、マイクロコードとステートマシンの二通り(と、その組み合わせ)がある場合には

それぞれの長所短所を考えるものだが、団子にはそんなことが念頭によぎった気配すらない
188MACオタ>団子 さん:2008/08/30(土) 13:36:07 ID:rRKT6K+V
>>183
いまのところ>>96の意見なので、私を引き合いに出すのわ勘弁して欲しいす。
  ---------------------
  とりあえずSSEをサポートしない64ビット拡張が未だかつて「standard」であったためしは無い
  ---------------------
この業界、自分に都合の良い部分だけ切り取って『業界標準』(industry standard)を名乗るのわ、
ありふれた話なんすけど。。。
189MACオタ>団子 さん:2008/08/30(土) 13:44:32 ID:rRKT6K+V
>>175
補足すけど、これスカラ整数ユニット限定す。
  -----------------
  LarrabeeがP5が土台ということはマイクロコードベースなんだよ。
  -----------------
躁状態になると騙りやらコピぺやら、何でもアリの相手すから、死ね死ね言わない方が良いと
思うすけどね。。。
190,,・´∀`・,,:2008/08/30(土) 13:46:33 ID:DThLhIVJ
既存のIAでSSEのミスアラインドロード・ストア命令は例外なくマイクロコードだったな。
agner.orgにオペレーション数の解析結果まで載ってる。

複数回かかる仕様のロード・ストア命令がマイクロコード実装なのは
P5以降Intelアーキテクチャでは100%そうだし

逆に、実行ユニットで初めて分解するようなのはP5ベースではなく
新規のマイクロアーキテクチャということになってしまう。
実行ステージに突っ込むまでサイクル数が解らないオペレーションなんて、
スケジューラで管理しきれないしさ(笑
191MACオタ>団子 さん:2008/08/30(土) 13:49:23 ID:rRKT6K+V
>>190
  ------------------
  既存のIAでSSEのミスアラインドロード・ストア命令は例外なくマイクロコードだったな。
  agner.orgにオペレーション数の解析結果まで載ってる。
  ------------------
複数のuopsに分解するという話と、マイクロコード実行わ『別物』でわ?
192,,・´∀`・,,:2008/08/30(土) 13:54:28 ID:DThLhIVJ
>MACオタ
君の解釈は聞いてないからただソースだけを貼ってくれ。
193MACオタ>団子 さん:2008/08/30(土) 13:58:46 ID:rRKT6K+V
>>192
x86わ良く知らないんで質問しているすけど、何か痛い所を突かれて逆切れしたすか?
194Socket774:2008/08/30(土) 13:59:14 ID:efBh6GPC
>>192
> 君の解釈は聞いてないからただソースだけを貼ってくれ。

団子さんからこんな言葉が聞けるなんて
ちょっと感動
195,,・´∀`・,,:2008/08/30(土) 14:05:24 ID:DThLhIVJ
>191
本質的同じものだよ。粒度が違うだけ。
IntelのいうマイクロオペレーションはP6で初めて使いだした言葉で、
マイクロコードに対してもっと粒度の小さいRISCライクオペレーションという意味。
複数マイクロオペレーション使う命令は必ずマイクロコードROMを参照する。

あ、PenM以降のμOPs Fusion可能なものだけは、一般デコーダでダイレクトにデコードできるけどね。
いずれにしても各実行ステージの手前で切り離す。
196MACオタ:2008/08/30(土) 14:05:45 ID:rRKT6K+V
妙に報道が少なかったHot Chips 20すけど、富士通の発表もあってか安藤氏わ参加していた
様す。とりあえず今日の更新わ、Larrabeeとr龍芯、3Leaf Systems社のネットワーク経由でのccNuma
の話題す。
http://www.geocities.jp/andosprocinfo/wadai08/20080830.htm

ちなみに最後のわ、EDNのブログでも取り上げていたす。
http://www.edn.com/blog/980000298/post/450032245.html
197MACオタ>団子 さん:2008/08/30(土) 14:08:13 ID:rRKT6K+V
>>195
  ----------------
  本質的同じものだよ。粒度が違うだけ。
  ----------------
それでわ、何故マイクロコード実行わCRISCの概念より古いすか?
agner氏の資料を見れば明らかなように、単一のuopsで複数サイクル実行のモノもあるし。。。
198,,・´∀`・,,:2008/08/30(土) 14:16:45 ID:DThLhIVJ
浮動小数のこと?

P5にはP6にあるようなfxchによる依存関係の解消の機構がないから
レイテンシがそのままサイクル数になってしまうだけだよ。
199,,・´∀`・,,:2008/08/30(土) 14:19:02 ID:DThLhIVJ
ロードやストア回数が複数にわたる場合は必ずその回数分以上の
マイクロコードあるいはマイクロオペレーション数に分解されているはずだ。
200,,・´∀`・,,:2008/08/30(土) 14:21:29 ID:DThLhIVJ
おっとrepは小さいループに変換されるだけだがな
201MACオタ>団子 さん:2008/08/30(土) 14:25:33 ID:rRKT6K+V
>>198
  ----------------
  P5にはP6にあるようなfxchによる依存関係の解消の機構がないから
  ----------------
P5にuops分解機能わ無いす。P6で複数サイクル実行のuopsを含む命令わ、
IMUL, AAM, DIV, IDIV, 複雑なFP命令(SSE含)す。
202Socket774:2008/08/30(土) 14:29:48 ID:efBh6GPC
>>199
ARMでもか?
203MACオタ@補足:2008/08/30(土) 14:33:09 ID:rRKT6K+V
別にもったいをつけるつもりわ無いすけど、ハードウェアロジックでも複数のユニットを占有したり、
回帰計算を行うために複数サイクル必要な命令わ在るす。

おそらく現代的な設計のプロセッサで、実行ステージでマイクロコードROMを一々読んでプログラムを
実行するモノわ無いと思われるす。
命令に関するエラッタが存在したとしても、パッチわデコードユニットでトラップして代替命令に置き換
える程度じゃ無いすかね。
204,,・´∀`・,,:2008/08/30(土) 14:36:54 ID:DThLhIVJ
たとえば
add eax,[edx]

分解せずに実行してたのがP5まででありいわゆる従来のCISC
ロードと加算に分解して実行するのがP6でありいわゆる内部RISCと言われるやつ。

その意味ではK7やPenM以降はCRISCって言っていいのかは疑問だな。まあ最終的には分解してるんだが。
205,,・´∀`・,,:2008/08/30(土) 14:51:06 ID:DThLhIVJ
分解しないと実行できないような複雑命令はそもそも載せないのが
P&Hの理論にもあるような純RISCだったじゃね?

複雑な命令の実行をマイクロコードに頼ってたのはCISC

でも昔ながらのRISCをうたうCellですら倍精度はマイクロコードだったような。POWERには8バイト命令もあって、固定長ですらないしな。


CISC/RISC論は既に現代では通用しない。
206Socket774:2008/08/30(土) 14:56:26 ID:efBh6GPC
>>205
やっぱりマイクロコードとステートマシンの違いがわかってないようだ
207Socket774:2008/08/30(土) 15:01:28 ID:efBh6GPC
>>206
おっと、実行ユニットがマイクロコードを持っていることもあるから、正しく団子用語の

>>168
> パイプラインにおいて、パラメータに依存して複数サイクルかかるような複合タイプの命令を、
> マイクロコードに置き換える機能があるのは次のうちどれでしょう?
>
> 1.デコーダ
> 2.実行ユニット
208,,・´∀`・,,:2008/08/30(土) 15:27:17 ID:DThLhIVJ
>実行ユニットがマイクロコード

はい?
それいつの時代のどこのアーキテクチャですか?
もちろんIntelのP5以降のCPUの話ですよね?
パイプライン化すらされてない時代の話なら笑うしかないよ?



ま、どっちにしろ、まだExecuteにも達してないフェンス命令が前の命令の例外が起きてもパイプラインから棄てられないなんて
脳内動作の根拠にはならないんだが。
209,,・´∀`・,,:2008/08/30(土) 15:32:52 ID:DThLhIVJ
まあ、こいつはおそらくP5以降のIntelアーキテクチャのブロックダイアグラムで
マイクロコードROMがどこにぶら下がってるか見たこともないんだろうな。

デコーダで解決した方がデコード後のスケジューリングコストがかからないんだけどな。
210Socket774:2008/08/30(土) 15:46:12 ID:efBh6GPC
>>208
> ま、どっちにしろ、まだExecuteにも達してないフェンス命令が前の命令の例外が起きてもパイプラインから棄てられないなんて
> 脳内動作の根拠にはならないんだが。

そりゃこんなこと言ってるの団子だけだし

おれが言ってるのは「例外ハンドラ内で」フェンス命令を実行した場合
211,,・´∀`・,,:2008/08/30(土) 15:51:03 ID:DThLhIVJ
>例外ハンドラ内で
バカすぎる
なんの目的で使うんだよ
お前プログラム組んだことないだろ
212,,・´∀`・,,:2008/08/30(土) 15:58:26 ID:DThLhIVJ
あ、例外発生前にパイプラインに投入されたフェンス命令が例外後も残ってるなんてのは論外な
213272:2008/08/30(土) 16:06:43 ID:efBh6GPC
>>211
> >例外ハンドラ内で
> バカすぎる
> なんの目的で使うんだよ

あっ、団子は例外ハンドラがどういうものか理解してなかったんだよな、ゴメンゴメン

例外が発生した後は、どうしても
・共有データであるところのページテーブルを更新したり
・ページインのためにI/Oを開始
したりするんだぜ?

バカでもわかりやすいかと思って「例外ハンドラ内で」というシチュエーションを考えたけど、逆効果だったかな
例外ハンドラから抜けてからフェンス命令を発行しても同じこと

中断したscatterの扱いはどうなるの?
214,,・´∀`・,,:2008/08/30(土) 16:13:35 ID:DThLhIVJ
余談だけど、ノンテンポラルストアはLarrabeeにおいてはキャッシュプライオリティモデル
おける優先度最低のそのまた下と位置付ければ、
プライオリティモデルに基づく既存プロトコルの延長でL1をスルーする動作を実現できるかもしれないね。
実装次第ではフェンス命令はNOP扱いしてよくなる。
215Socket774:2008/08/30(土) 16:20:58 ID:efBh6GPC
>>214
上半分もトンチキだが

> 実装次第ではフェンス命令はNOP扱いしてよくなる。

まーだこんなこと言ってやがんの
プププのプ
216,,・´∀`・,,:2008/08/30(土) 16:24:30 ID:DThLhIVJ
>例外ハンドラ

昔は知らんが最近はC++/javaでいうcatchブロックなんかののことを言う。
現行32ビットアーキでは復帰可能なページフォルトはCPU内で解決される。
OS→アプリに通知されるのは無効命令やアクセス違反など続行不可能なもの。

何年もののバカだよ
217,,・´∀`・,,:2008/08/30(土) 16:27:39 ID:DThLhIVJ
まあ#PFが飛んでくる条件なんて32ビットOSのソースもさわったことないおっさんには解らんだろうがな
レベル低すぎる
218,,・´∀`・,,:2008/08/30(土) 16:33:15 ID:DThLhIVJ
まさかリアルモードでSSE使おうとか思ってねーよな?
219Socket774:2008/08/30(土) 16:38:31 ID:efBh6GPC
>>216
団子はちゃんと答えてくれるんで好感度は高いが

> >例外ハンドラ
> 昔は知らんが最近はC++/javaでいうcatchブロックなんかののことを言う。

一般的に例外ハンドラというのは、CPUが例外を起したときに、例外ベクトルテーブルを参照して飛んでいく先のこと
団子も説明も嘘ではないけど、文脈的におかしいんだわ

x86だと、IDTで例外ベクトルテーブルを指定してたっけ
インテルのマニュアルにも例外ハンドラの説明あると思うよ


> 現行32ビットアーキでは復帰可能なページフォルトはCPU内で解決される。

それはページミスの説明

> OS→アプリに通知されるのは無効命令やアクセス違反など続行不可能なもの。

ページフォールトは、こちらの続行不可能なものに入る


これでは話が通じないわけだ
220,,・´∀`・,,:2008/08/30(土) 16:43:26 ID:DThLhIVJ
だからOSのソースも読まずに妄想ほざいてろ。
どこに例外拾って*fenceを呼ぶ実装があるんだよ。
Linuxカーネルのソースでもgrepして引っかからないのを確認して
そして即刻氏ね
221Socket774:2008/08/30(土) 16:50:11 ID:efBh6GPC
一番シンプルな説明だと

TLBにヒットしない→ページミス

 ページミスすると、CPUが自動的にページテーブルを参照して、必要なページテーブルエントリを探す

  必要なページテーブルエントリがない場合→ページフォールト

   ページフォールトが発生すると、CPUは例外テーブルを参照して、(通常はOS内の)例外ハンドラに制御がうつる
222,,・´∀`・,,:2008/08/30(土) 16:51:32 ID:DThLhIVJ
はい、その時点で復帰不可能だよ。
223Socket774:2008/08/30(土) 16:53:11 ID:efBh6GPC
>>222
復帰不可能というのをどういう意味で使っているのかがわからんのだが
少なくとも半分は正しい

とりあえず>>221を理解して、
> 現行32ビットアーキでは復帰可能なページフォルトはCPU内で解決される。
これを撤回してくれるかな?
224,,・´∀`・,,:2008/08/30(土) 16:54:22 ID:DThLhIVJ
めんどいからLinuxカーネルソースでいうどこのコードの何行目でやってるか引用してみろ。
225Socket774:2008/08/30(土) 16:58:04 ID:efBh6GPC
>>224
お前さんが一般論が苦手なのは知っているが、説明のためのただの一例に、そのまでするのはやなこった
226,,・´∀`・,,:2008/08/30(土) 16:58:05 ID:DThLhIVJ
OSに飛ぶ段階で既にOSがフェンスを呼ぶ必要はない。
それとも、キャッシュをバイパスして例外ハンドラのコードをフェッチできるんか?
227Socket774:2008/08/30(土) 17:00:37 ID:efBh6GPC
>>226
> OSに飛ぶ段階で既にOSがフェンスを呼ぶ必要はない。

なんか妙なこだわりがあるな

ページフォールトを起こした命令と、OS内(でもどこでも)のフェンス命令は、無関係だよ

ページフォールトが「起きたから」、フェンスを呼ぶ必要があると捉えているなら、間違いだ
228Socket774:2008/08/30(土) 17:03:06 ID:efBh6GPC
アプリプログラマの団子とは縁のない命令だが、iretにはそもそも逐次化作用があるんだけど、忘れてたのかな?
229Socket774:2008/08/30(土) 17:05:19 ID:DThLhIVJ
OSがトラップする前にCPUは自分自身である程度の後始末はすんでる。
とりあえず例外ハンドラの実装読んでみろと。
読まないことには始まらない。
230,,・´∀`・,,:2008/08/30(土) 17:07:25 ID:DThLhIVJ
俺が指摘するまでCPUIDのフェンス効果も知らなかったバカがなんか言ってるよ
231Socket774:2008/08/30(土) 17:08:43 ID:efBh6GPC
>>229
> OSがトラップする前にCPUは自分自身である程度の後始末はすんでる。

どういう例外の場合にはどういう処理をするのかな?
ニヤニヤ
232,,・´∀`・,,:2008/08/30(土) 17:13:59 ID:DThLhIVJ
Intelが64ビット拡張が「standard」であることを示すソースを未だに探せない頭の悪い子にはうまく説明する自信がないな。
ヒント:今年で20回目
233Socket774:2008/08/30(土) 17:15:50 ID:efBh6GPC
>>232
話を逸らさなくても優しくしてやるから、ページミスとページフォールトの違いについては理解できたかな?
234,,・´∀`・,,:2008/08/30(土) 17:16:23 ID:DThLhIVJ
ていうか>>113
235,,・´∀`・,,:2008/08/30(土) 17:20:47 ID:DThLhIVJ
まあトラップの仕組みはまあいいよ。ミスした命令を再実行すればいいじゃん。
どう考えても破棄可能なバッファは必要ないね。
236Socket774:2008/08/30(土) 17:21:53 ID:efBh6GPC
>>234
Plus standard 64-bit instruction extensions

Plus Intel64(R) instruction extensions
じゃないよね?
237Socket774:2008/08/30(土) 17:24:19 ID:efBh6GPC
>>235
> まあトラップの仕組みはまあいいよ。ミスした命令を再実行すればいいじゃん。

誤ちを認めてくれるのは結構なこった
が、気軽に
> ミスした命令を再実行すればいいじゃん。 どう考えても破棄可能なバッファは必要ないね。
こんなことを言ってくれるようでは困る
238,,・´∀`・,,:2008/08/30(土) 17:26:27 ID:DThLhIVJ
で、なんで二度書きしたら困るんだ?ニヤニヤ
239Socket774:2008/08/30(土) 17:27:39 ID:efBh6GPC
>>238
アプリプログラマの知らなくていいことだけど、I/Oなんかの都合上とてもまずい
240,,・´∀`・,,:2008/08/30(土) 17:28:09 ID:DThLhIVJ
>>236
どこにx64以外のstandardがあるんですか?バカですか?
だからとっとと死ね
241,,・´∀`・,,:2008/08/30(土) 17:30:30 ID:DThLhIVJ
I/Oの都合がある処理でSSEなんて使わないから。ハイハイ
242,,・´∀`・,,:2008/08/30(土) 17:33:43 ID:DThLhIVJ
むしろ規格準拠くらいの意味だな
243Socket774:2008/08/30(土) 17:39:08 ID:efBh6GPC
>>241
> I/Oの都合がある処理でSSEなんて使わないから。ハイハイ

団子の大好きなインテルのマニュアルに、I/O領域に対するメモリアクセス禁止って書いてあるの?
244,,・´∀`・,,:2008/08/30(土) 17:42:58 ID:DThLhIVJ
>I/O領域
ハードウェア予約領域のことか?
そもそもアプリじゃさわりませんwww
245Socket774:2008/08/30(土) 17:47:00 ID:efBh6GPC
>>244
アプリプログラマに聞く質問じゃなかったサーセン
246,,・´∀`・,,:2008/08/30(土) 18:01:52 ID:DThLhIVJ
ライトコンバインなんてカーネルモードですらやんねーよ普通
マルチスレッドなんぞ論外だし
247,,・´∀`・,,:2008/08/30(土) 18:09:27 ID:DThLhIVJ
カーネルモードドライバではSSEもAVXも利用は想定されてない。Agner氏がIntelからもらった回答。
248MACオタ@補足:2008/08/30(土) 19:32:01 ID:rRKT6K+V
>>247で団子さんの書いているのわ、この話題す。(ということで良いすか?)
http://www.nabble.com/ABI-change-for-device-drivers-using-future-AVX-instruction-set-tc18116359.html
249Socket774:2008/08/30(土) 19:54:26 ID:efBh6GPC
>>248
どっちにしろ、おれの出した話題とは何の関係もないのだが

> >>247で団子さんの書いているのわ、この話題す。(ということで良いすか?)

これが本当なら、

団子> カーネルモードドライバではSSEもAVXも利用は想定されてない。Agner氏がIntelからもらった回答。

One problem that has not been resolved yet, AFAIK, is how to handle the
possible use of YMM registers in device drivers. Should these registers
be saved before calling a device driver from an interrupt or should it
be the responsibility of the device driver?
250,,・´∀`・,,:2008/08/30(土) 20:02:01 ID:DThLhIVJ
聞いてない。
x86の64ビット拡張の「standard」とは何ですか?
さっさとけじめつけろや、ゴルァ
251Socket774:2008/08/30(土) 20:06:02 ID:efBh6GPC
>>250
インテルがIntel64(R)でなくstandardとしか言ってない以上、わかるかボケ
252Socket774:2008/08/30(土) 20:06:59 ID:efBh6GPC
>>250
んで、
団子> カーネルモードドライバではSSEもAVXも利用は想定されてない。Agner氏がIntelからもらった回答。
のソースは>>248でいいのか

いいわきゃないよな?こんな恥かしい間違いわ
253,,・´∀`・,,:2008/08/30(土) 20:14:00 ID:DThLhIVJ
standardがx64以外にあるかボケ
詭弁も甚だしい


結論から言ってカーネルモードで使えるけど保証はないのはガチ。
254Socket774:2008/08/30(土) 20:15:59 ID:efBh6GPC
>>253
団子> カーネルモードドライバではSSEもAVXも利用は想定されてない。Agner氏がIntelからもらった回答。

誰がどこから何という回答を貰ったのかな〜?
Agnerという人は"One problem that has not been resolved yet"って言ってるよ
255Socket774:2008/08/30(土) 20:18:24 ID:efBh6GPC
>>253
おっと

> 結論から言ってカーネルモードで使えるけど保証はないのはガチ。

「保証はないのはガチ」ってねえ、>>248のリンク先ちゃんと読んだの?
memcpyのあたりだよ
256Socket774:2008/08/30(土) 20:19:42 ID:efBh6GPC
>>255
3. When compiling a device driver, the compiler may insert implicit
calls to library functions such as memcpy and memset. These functions
typically have a CPU dispatcher that chooses the largest register size
available. The device driver may therefore use YMM registers without the
knowledge of the programmer and without compiling with the AVX switch on.
257,,・´∀`・,,:2008/08/30(土) 20:19:53 ID:DThLhIVJ
「死人」には黙ってて貰いたい。ゾンビくん。
俺は一切回答もしないよ。
それとも未だにx64非準拠の確信(笑)あるのかな
単に生きたいだけかな?www
258Socket774:2008/08/30(土) 20:23:08 ID:efBh6GPC
>>257
> 俺は一切回答もしないよ。

まあ、これ以上何か言ったところで恥の上塗りだから、それがいいと思うよ

> カーネルモードドライバではSSEもAVXも利用は想定されてない。Agner氏がIntelからもらった回答。

団子の英語力からすれば>>248を理解できなかったは不思議ではないが、これは許してやんよ
まさかお前の妄想に箔をつけるためにAgner氏の名前をデッチ上げたんじゃないだろうな
259Socket774:2008/08/30(土) 20:24:02 ID:0ZjjQu1D
で、ローエンドGPUのlarrabeeでXが使えるようになると
何が面白いのかね
260,,・´∀`・,,:2008/08/30(土) 20:25:40 ID:DThLhIVJ
生き恥がなんか言ってるよwww
ま、ライトコンバインなんかまともに動く保証はないんじゃね?
261Socket774:2008/08/30(土) 20:28:09 ID:efBh6GPC
>>260
今なら白状しても許すよ
「わたくしこと団子は、Agner氏の名前で大嘘をデッチあげました」

> ま、ライトコンバインなんかまともに動く保証はないんじゃね?

SSE完全互換じゃなかったの??
262Socket774:2008/08/30(土) 20:29:51 ID:efBh6GPC
団子> カーネルモードドライバではSSEもAVXも利用は想定されてない。Agner氏がIntelからもらった回答。

Agner> One problem that has not been resolved yet, AFAIK,
Agner> is how to handle the possible use of YMM registers in device drivers.
263,,・´∀`・,,:2008/08/30(土) 20:39:01 ID:DThLhIVJ
>Xが使える
生き恥のさらに上塗りだな。
「X」なんてVESA準拠のカードなら専用ドライバなんてなくても使えるよ。
GPUの機能使わずフレームバッファに直に書くだけならな。
PS3のLinuxもRSXのドライバは用意されてない(アクセスすら禁止されてる)がGNOMEが普通に立ち上がる。

ま、OpenGLのドライバが使えるのは有意義だよ。かなり。
ぶっちゃけMS環境自体にはあまり期待できないんだよ。
メニーコア周りのサポートとか。
未だに上限32or64スレッドまでしか使えないし。

その点、IntelコンパイラもLinux版は無償で使えるからな。
264Socket774:2008/08/30(土) 20:42:21 ID:0ZjjQu1D
だからそれの何が面白いことになったの?
発言者さん
265Socket774:2008/08/30(土) 20:44:14 ID:efBh6GPC
Larrabeeでlinuxを動かして、本体CPUをXアクセラレータにして遊ぶ
266Socket774:2008/08/30(土) 20:48:09 ID:4mz2eK7O
x用のドライバが出来ても
OpenGLが使えるかどうかってのは
また別なはなしだが
267,,・´∀`・,,:2008/08/30(土) 20:49:17 ID:DThLhIVJ
専用ドライバなしでもWindowsすら動くしな
死ぬほど遅いけどww

よりにもよって「Xが動く」wwwwww
ドライバすらいらねーっつーのwwwwww
268,,・´∀`・,,:2008/08/30(土) 20:50:22 ID:DThLhIVJ
>>266←wwwwww
269Socket774:2008/08/30(土) 20:51:21 ID:efBh6GPC
おい団子、他の人に迷惑かけるな

団子> カーネルモードドライバではSSEもAVXも利用は想定されてない。Agner氏がIntelからもらった回答。
これのソースはどこなんだよ
270,,・´∀`・,,:2008/08/30(土) 20:53:44 ID:DThLhIVJ
MACヲタに代理回答なんて頼んだ覚えはないが。

ま、推奨か非推奨かはIntelのマニュアルにもあることだな
271,,・´∀`・,,:2008/08/30(土) 20:56:20 ID:DThLhIVJ
死人は棺桶のなかでおとなしくしてて下さい。
書き込むだけで迷惑wwwwww


Intelがwwwwww
Larrabeeでwwwwww
SSEをwwwwww
サポートしたくないwwwwww
272,,・´∀`・,,:2008/08/30(土) 20:58:45 ID:DThLhIVJ
「IntelはSSEをサポートしたくない」のソースをお願いします。

他人にソースを求める立場ではないの自覚しような
273Socket774:2008/08/30(土) 21:01:25 ID:NI1xX8WB
x.orgのドライバーだけでGLXが動くと思ってる馬鹿がいるな
仕様を公開してるATIやVIAならともかく・・
274,,・´∀`・,,:2008/08/30(土) 21:02:28 ID:DThLhIVJ
フェンス命令に中途半端に完了
のソースまだー?


死人に無知鬱
275MACオタ>269 さん:2008/08/30(土) 21:04:51 ID:rRKT6K+V
>>269
  ---------------------
  団子> カーネルモードドライバではSSEもAVXも利用は想定されてない。Agner氏がIntelからもらった回答。
  これのソースはどこなんだよ
  ---------------------
英語が読めないのか、groups.google.com型のサイトの読み方が判らないのかどちらかだと思うすけど、
>>248のリンク先にわ、intelのArjan van de Ven氏から次のような回答が寄せられているす。
  ======================
  Let me repeat this loud and clear:
  It is not allowed to use floating point, SSE of AVX in device drivers.
  ======================
ちなみに団子さんと同じ資料を読んでも、私が>>96のような意見なのわレガシーなx86コードの大半が
Linuxカーネルと同じ状況だからす。


276Socket774:2008/08/30(土) 21:06:40 ID:CvxpbjGE
団子は何か勘違いしている

おれのは予想で、出しているのは傍証
証拠もないのに事実だと決めつけているのはお前だけだ

予想と事実、傍証と証拠の違いくらいわかるよな?
277MACオタ@補足:2008/08/30(土) 21:06:45 ID:rRKT6K+V
Arjan van de Ven氏の身分の参考に。
http://www.linuxjournal.com/content/interview-arjan-van-de-ven-intel-and-lesswattsorg
  -------------------
  Linux Journal recently caught up with Intel's Arjan van de Ven. Van de Ven leads Intel's green
  Lesswatts.org initiative and is the developer of PowerTOP, one of the most acclaimed power
  management tools on the Linux platform.
  -------------------
278,,・´∀`・,,:2008/08/30(土) 21:09:05 ID:DThLhIVJ
GLXwwwwww

つかOpenGL自体プログラミングスタックにあるし。
IntelがLinux環境に好意的なのは有名な話だしな。
AtomベースMIDのSDKはLinux版以外あったっけな
279,,・´∀`・,,:2008/08/30(土) 21:12:03 ID:DThLhIVJ
「Standard」の意味が解らないと見苦しい事を言ってる馬鹿ならいるな
280,,・´∀`・,,:2008/08/30(土) 21:17:29 ID:DThLhIVJ
standard 64-bit extensionの意味も解らないって素敵だね。
英語がわからないから約束守る必要ないなんて理屈がまかり通るなら
英語知らない方がいいようだな
281,,・´∀`・,,:2008/08/30(土) 21:19:18 ID:DThLhIVJ
standard 64-bit extensionにフェンス命令は含まないんですか?
Intelは含めたくないんですか?
282,,・´∀`・,,:2008/08/30(土) 21:21:40 ID:DThLhIVJ
P5アーキがデコーダでマイクロコードに展開するという常識もない人間に傍証も糞もない
詭弁とこじつけだけ
283Socket774:2008/08/30(土) 21:22:24 ID:0ZjjQu1D
はいはーい、またまた精神破綻者の独り言の始まり始まり
284,,・´∀`・,,:2008/08/30(土) 21:26:53 ID:DThLhIVJ
あ?精神病がなんか言ってるよ
死ぬって言って死なないのはメンヘル女の特権だぞボケ

男ならけじめつけろや
285Socket774:2008/08/30(土) 21:32:29 ID:CvxpbjGE
>>275
続きがあったのは気づかなかったが
Arjanとケンカしてんじゃん
Andiの指摘までAgnerは納得してない

だいたいこれ、Linux固有の話しじゃん
一般論のできない君らとはいえ、こいつぁひどい
286,,・´∀`・,,:2008/08/30(土) 21:36:02 ID:DThLhIVJ
P5のマイクロコードがデコーダから供給されることも知らない人の一般論には
説得力があるな
287Socket774:2008/08/30(土) 21:42:24 ID:CvxpbjGE
>>286
捏造するのはヤメテ
罵倒するときはアンカーつけて
288,,・´∀`・,,:2008/08/30(土) 21:47:28 ID:DThLhIVJ
AMD64/Intel64はx86の64ビット拡張のstandardでない
ですね、わかります
289,,・´∀`・,,:2008/08/30(土) 21:51:28 ID:DThLhIVJ
SSEやCPUIDを排除してLNIをサポートしたのを64ビット新標準にすればいいですね、わかります
290Socket774:2008/08/30(土) 21:52:44 ID:CvxpbjGE
>>288
十分条件と必要条件の区別のつかない団子らしい発言です
291Socket774:2008/08/30(土) 21:56:36 ID:CvxpbjGE
>>289
CPUIDを実装しないなんて一言も言ってないが
他人を罵倒するために捏造するのはやめて
292Socket774:2008/08/30(土) 21:57:06 ID:lAKSJLJJ
確かに288は頭の悪すぎる発言だなw
293Socket774:2008/08/30(土) 21:59:23 ID:CvxpbjGE
捏造しているのか、理解できていないのかはともかく、
罵倒するときはアンカーかコピペたのんます
294,,・´∀`・,,:2008/08/30(土) 22:01:24 ID:DThLhIVJ
x86アーキにおいてスタンダードな64ビット拡張であるにはx64準拠は必要条件。
x64準拠であることはSSEサポートの十分条件。

ですね、わかります。


わかったら氏ね
295,,・´∀`・,,:2008/08/30(土) 22:03:59 ID:DThLhIVJ
standardであることとSSEをサポートしないことは「矛盾」
296,,・´∀`・,,:2008/08/31(日) 01:25:06 ID:AQd+hwdB
完璧であったはずの論理が覆されたのはどう思った?
297,,・´∀`・,,:2008/08/31(日) 02:01:44 ID:AQd+hwdB
前提に誤りがあると微塵も思わないんだもんなー
固定観念に縛られすぎて常識とずれてしまってることは自覚しような。
298,,・´∀`・,,:2008/08/31(日) 09:11:17 ID:AQd+hwdB
「ページフォールト時のスワップ処理」
→ビデオカードにはそもそもスワップできるデバイスなんて載らないよ。フローなんて復帰できるわけがないよ。
あとHPC版はメモリ馬鹿みたいに積むからなあ。スワップ?なにそれおいしいの?
ま、スワップアウトありでいいや。でも
「ページ解決後に2度書きするのイクナイ!」
→なんならプログレスカウントに汎用レジスタでも使う仕様にすれば?
たとえば1ビット×16でストア対象要素を指定し、正常完了したものから対応するビットにマスクをかける。
最終的に0またはFFFFになる。そうすれば途中中断しても復帰できるよ。
スカラとベクタは並列実行できるし。

「メモリコンシステンシモデルを緩める必要がある」
→だからそうすればいいじゃん。フェンス命令の実装関係ない。

「SSEは非対応。x64とは非互換になる」→Intelは標準の64ビット拡張と言ってはりますよ。どこにそんな標準があるんですか?
299,,・´∀`・,,:2008/08/31(日) 10:13:18 ID:AQd+hwdB
ま、せっかくだから「ぼくのかんがえたさいきょうのめいれい」書いておくか。ま、我ながらいかにも「Intelアーキらしい」仕様だな

vscatvps [mem32],zmm1,zmm2

[mem]:起点アドレス
zmm1:ストアデータ
zmm2:アドレスのオフセット×16

ecx:下位16ビットで処理するビットのマスクを指定。ストア毎に順次要素に対応するビットをマスクしていく。

これもあくまで一案だが、デコーダのマイクロコードで実装するから可能な仕様だな。
VPU実行ステージでマイクロコード分解するなんてIntelが経験したことない珍妙な仕様じゃ不可能だよね。

ストリング命令同様、スワップを挟んでも復帰できる仕様は満たせる。



ま、俺も彼の言い分を理解してなかったのは認める。
カーネルソース読んでみて言いたいことの意味分かったよ。
俺もスワップなんて想定してるとは想定外だったからね。
ビデオカードにHDDでも接続するなんて発想はなかったからさwww
HPC版じゃスワップなんて普通させないくらいメモリ積むだろうし。
300Socket774:2008/08/31(日) 14:35:28 ID:K6NM5XfT
WDDM2.0からVRAMをスワップアウトするようになったはずだけど
301MACオタ:2008/08/31(日) 16:12:55 ID:Ng1mcTQb
今回のネタでbinutilsのソースが引用されたついでにPOWER7のVSX ISAの公開部分について
調べてみたす。
 - 命令フォーマット
  XX1(引数1)とXX3(引数3)のフォーマットの存在が確認。4引数の命令が無いため、積和や
  vector permute命令わ、ソースを上書きする?

 - データ形式
  今のところ8-byte x 2データ以外の言及わ無し

 - 命令 (XT/XS/XA6/XB6: VSXレジスタ, RA/RB, 汎用レジスタ)
  lxvd2x XT, RA, RB (Load Floating-Point Double X-Vecor Indexed X-form?)
   RAとRBの和で求められる実効アドレスから2つの倍精度浮動小数点データをXTにロード
               
  lxvd2ux XT, RA, RB (Load Floating-Point Double X-Vecor with Update Indexed X-form?)
   RAとRBの和で求められる実効アドレスから2つの倍精度浮動小数点データをXTにロード後、
   RAに実効アドレスを格納

  stxvd2x XS, RA, RB (Store Floating-Point Double X-Vector Indexed X-form?)
   RAとRBの和で求められる実効アドレスへXSの内容(double x 2)をストア

  stxvd2ux XS, RA, RB (Store Floating-Point Double X-Vector with Update Indexed X-form?)
   RAとRBの和で求められる実効アドレスへXSの内容(double x 2)をストア後、RAに実効アドレス
   を格納

  xxmrghd XT6, XA6, XB6 (X-Vector Marge High Floating-Point Double?)
   XA6の上位倍精度浮動小数点データとXB6の上位倍精度浮動小数点データを並べてXT6に格納

  xxmrgld XT6, XA6, XB6 (X-Vector Marge Low Floating-Point Double?)
   XA6の下位倍精度浮動小数点データとXB6の下位倍精度浮動小数点データを並べてXT6に格納

  xxpermdi XT6, XA6, XB6, DM (Permute Floating-Point Double Immediate?)
   XA6とXB6の倍精度浮動小数点ベクトルを2bitのDMフィールド表現に従って並び替えてXT6へ
   格納

  xvcpsgndp XT6, XA6, XB6 (X-Vector Copy Sign of Floating-Point Double?)
   XB6の倍精度浮動小数点ベクトルを符号ビットのみXA6からコピーして、XT6へ格納
302MACオタ@補足:2008/08/31(日) 16:36:43 ID:Ng1mcTQb
"xxpermdi"命令すけど、DMフィールドが4-bitなら曲がりなりにもvector permuteっぽい動作に
なるすけど、何故か2-bitの模様す。単なるコピーとやsplat命令、"xxmrghd", "xxmrgld"命令と組み
合わせて全16通りをカバーするのかもしれないす。

でも、これ並べ替えをレジスタの内容でダイナミックに変更できるAltivecのvperm命令と比較すると
命令や直値で指定するのって、何か意味があるすかね?
303,,・´∀`・,,:2008/08/31(日) 16:49:46 ID:AQd+hwdB
決めうちできる場合は1命令減らせる。
304MACオタ@訂正:2008/08/31(日) 17:08:26 ID:Ng1mcTQb
自分でカーネルプログラミングに浮動小数点わ無い(>>275参照)とか書いておきながら、データを
倍精度浮動小数点とか書いていたのわ大間違いす。ニーモニックに含まれる"d"わ"Doubleword"の
略すね。。。
で、命令の行わ修正す。

 - 命令 (XT/XS/XA6/XB6: VSXレジスタ, RA/RB, 汎用レジスタ)
  lxvd2x XT, RA, RB (Load Doubleword X-Vecor Indexed X-form ?)
   RAとRBの和で求められる実効アドレスから2つの64-bit整数データをXTにロード
               
  lxvd2ux XT, RA, RB (Load Doubleword X-Vecor with Update Indexed X-form ?)
   RAとRBの和で求められる実効アドレスから2つの64-bit整数データをXTにロード後、
   RAに実効アドレスを格納

  stxvd2x XS, RA, RB (Store Doubleword X-Vector Indexed X-form ?)
   RAとRBの和で求められる実効アドレスへXSの内容(64-bit整数 x 2)をストア

  stxvd2ux XS, RA, RB (Store Doubleword X-Vector with Update Indexed X-form ?)
   RAとRBの和で求められる実効アドレスへXSの内容(64-bit整数 x 2)をストア後、RAに実効アドレス
   を格納

  xxmrghd XT6, XA6, XB6 (X-Vector Marge High Doubleword ?)
   XA6の上位64-bit整数データとXB6の上位64-bit整数データを並べてXT6に格納

  xxmrgld XT6, XA6, XB6 (X-Vector Marge Low Doubleword ?)
   XA6の下位64-bit整数データとXB6の下位64-bit整数データを並べてXT6に格納

  xxpermdi XT6, XA6, XB6, DM (Permute Doubleword Immediate ?)
   XA6とXB6の64-bit整数ベクトルを2bitのDMフィールド表現に従って並び替えてXT6へ
   格納

  xvcpsgndp XT6, XA6, XB6 (X-Vector Copy Sign of Doubleword?)
   XB6の64-bit整数ベクトルを符号ビットのみXA6からコピーして、XT6へ格納
305MACオタ>団子 さん:2008/08/31(日) 17:10:22 ID:Ng1mcTQb
>>303
なるほど、コメント感謝するす。
306,,・´∀`・,,:2008/08/31(日) 17:36:45 ID:AQd+hwdB
AVXのvpermil2psって便利だな。
xmm1,xmm2,xmm3,xmm4から任意の要素をピックアップしてxmm0にマージする場合
メモリにパターンデータを用意しておいて

vmovdqa xmm7,[mem]
vpermil2ps xmm0,xmm1,xmm2,xmm7,2
vpermil2ps xmm5,xmm3,xmm4,xmm7,3
vorps xmm0,xmm0,xmm5

逆に256ビット版がいまいち使いにくい。128ビット版AVXの2並列実行でしかないからね。
307GPU:2008/08/31(日) 21:28:38 ID:AQd+hwdB
>300
GPUが自発的に?
308Socket774:2008/08/31(日) 22:27:52 ID:VTeVamka
>>307
「自発的に」の意味を明確にしてくれないとなんとも。
CPUのスワップアウトだってCPUが「自発的に」HDDにアクセスするなんて曖昧な表現しないだろ?
もっとも、4亀によればOSに対してGPU自身が「自発的に」スワップアウトを要求するそうだけど。
多分GPUがやる仕事は、コマンドプロセッサでタスク毎にメモリ不足を検出してドライバ側に通知するのと
ドライバが用意したスペースにDMA転送するくらいだろうね。
ttp://www.4gamer.net/news/history/2006.05/20060530200736detail.html
309Socket774:2008/08/31(日) 22:47:27 ID:PukrVIoW
団子の実装では、Larrabeeは自意識に目覚めて自発的にページングします
310Socket774:2008/08/31(日) 22:57:40 ID:PukrVIoW
書き込み制限が解除されたよ!

>>298
言い訳がまじっていて見苦しいが、そう的を外してなさそうだからいいか

ダ> 「メモリコンシステンシモデルを緩める必要がある」
ダ> →だからそうすればいいじゃん。フェンス命令の実装関係ない。

これは半分正しいし、半分は団子の主張と一貫性が書けてるんだ
311,,・´∀`・,,)っ:2008/08/31(日) 23:00:35 ID:AQd+hwdB
マイクロOS側で透過的にやれるのか、ホスト側のドライバで確保してやるのかって話だよ。


SSEをサポートしてないことにしたい珍説の新作が見たいものだ。
312,,・´∀`・,,)っ:2008/08/31(日) 23:11:09 ID:AQd+hwdB
現時点の公開情報をみてもSSE非サポートってのはまずあり得ないわけだし、
スワップを考慮した実装要件から新命令の仕様考える方が有意義だと思うけどね。

新命令の仕様の思いこみありきで整合の取れない既存の概念を否定しようとするから
事実上の自殺宣言になっちゃうんだよ。
ちなみに俺はx64命令セット準拠って最初から知ってたぞ。何度も言うことだけど。
313Socket774:2008/09/01(月) 00:07:48 ID:ay7aamyT
>>311
一応言っとくと300=308≠ID:PukrVIoWね。
透過的にとかそこら辺の具体的な意味がわからないとなんとも言えないてばさ。
314,,・´∀`・,,)っ:2008/09/01(月) 00:22:12 ID:x5FAhWGX
資料読んで気づいたこと
P5ではUとV、どっちでデコードするかで実行ユニットもU側かV側か決まってしまっていたが
Larrabeeはデコードは2機のうちComplex/Simpleどっちを経由してもデコード後にマイクロ命令が合流し
Scaler/Vectorどちらに流し込むか改めて振り分けを行うように見える。

この構造はぶっちゃけP5というよりはAtomに近い。
315,,・´∀`・,,)っ:2008/09/01(月) 01:55:52 ID:x5FAhWGX
【standard 64-bit extensionなんて表現をした理由】

他の用語を使いたくなかっただけじゃね?
・Intel 64
Core2 Duoで初めて使った言葉だから、SSSE3までを含むと誤認されるかもしれない。

・EM64T
旧称だから使いたくない

・AMD64/x86-64/x64
すごく、屈辱です

結局のところSSSE3以降をサポートしないんじゃね?デコード容易とは言い難いし。
逆に3バイトOpcodeデコードに対応するならSSE4まで全部対応できそう。

邪推してもしかたないな。
ただ単にあくまで学会発表だから、Marketecture的な名称を出すのを
避けただけという考えるのが妥当かもしれんよ。
たとえば「Hyper-Threading」ではなくSMT(FGMT)というようなレポートになってるし。

「Intel 64」とかの具体的名称が出るのは次のIDFくらいじゃね?
316MACオタ>団子 さん:2008/09/01(月) 02:26:59 ID:oXl/Aq1S
>>315
裏を取っているなら、そんなにキョドる必要わ無いと思うすけど。。。
  --------------------
  ・Intel 64
  Core2 Duoで初めて使った言葉だから、SSSE3までを含むと誤認されるかもしれない。
  [中略]
  ただ単にあくまで学会発表だから、Marketecture的な名称を出すのを
  避けただけという考えるのが妥当かもしれんよ。
  --------------------
Siggraphより遥かに格の高いISSCCの論文で、サポート命令をどのように記述しているか自分で
確認してみれば良いかと思うす。
http://download.intel.com/pressroom/kits/isscc/ISSC_Intel_Paper_Silverthorne.pdf
317,,・´∀`・,,)っ:2008/09/01(月) 03:12:23 ID:x5FAhWGX
個々の命令サポートまでは知らないよ。
俺が知り得た情報はx64既存の64ビットOS(カーネルだけじゃなしに周辺プログラム含む)
がそのまま、あるいはほとんど変更なしで使えるという情報。
この時点でSSE2までは無条件でサポートしてることが前提だからね。
あとはいつIntelが明言するかの話。

むしろ仮想化技術について言及しないことが謎。
318MACオタ:2008/09/01(月) 18:05:04 ID:b0a2BKMn
Hot Chips 20のSUN Rockのプレゼンす。
http://www.c0t0d0s0.org/archives/4774-Presentation-about-Rock.html
319,,・´∀`・,,:2008/09/01(月) 18:15:15 ID:e435L1Fl
去年の段階で、命令セットレベルでのホモジニアス性を保つ云々は、後藤は
自分の記事で扱ってるんだよな。さんざん互換性を重視するIntelの姿勢を
伝えてきた。
「SSEはおそらくサポートしない」なんて迷言がなんでいまさら
彼の記事から飛び出したのか謎なんだがな。

結局のところ、事実をありのままに伝える後藤は良い後藤で
自分の頭で考えて推論を述べる後藤は悪い誤答なんだろうね。

http://pc.watch.impress.co.jp/docs/2007/0611/kaigai364.htm
> システムまたはチップの中に、ヘテロジニアスなコアが混在しても、
> 命令セットはできる限りホモジニアスに保ち、アプリケーションからは
> 可能な限り隠蔽する。それがIntelのポリシーのようだ。異なるコアタイプの
> 制御を行なうとしても、それはOSやHypervisor層がハンドルするという
> 構想だ。

ところでこっちのソースに基づけばμOS自体もHypervisor配下のゲストOSという扱いなんだろうか。
まあ、そうなんだろうね。
↓Larrabee上でのOSの実行形態についていろいろ
http://arstechnica.com/news.ars/post/20080804-larrabee-intels-biggest-leap-ahead-since-the-pentium-pro.html

つーか、「Pentium Pro以来の最大の革新」ってうたい文句、Pentium 4のときにも
Core 2 Duoの時にも、更にNehalemにも言ってる気がするんだが。
「一生のお願い」とか「俺の18番」とか「芦屋に家が建つ」並みの意味ってことでOK?
320ooo:2008/09/01(月) 21:45:24 ID:MeCw00yx
いや、
もうPentium Pro以上の大革新は二度とおこせ無い
今回もPentium Pro未満の革新でした。
って意味だよ。
321Socket774:2008/09/02(火) 00:09:27 ID:wwjge9Jc
こういうのもネット弁慶の一種なんだろうな
否、2ch弁慶か
322Socket774:2008/09/02(火) 20:45:12 ID:7RBUygW4
323Socket774:2008/09/02(火) 22:07:06 ID:iLBkJyCO
>>321
オマエモナー
324Socket774:2008/09/02(火) 23:45:19 ID:n0omZ0P9
Intel: AVX
POWER: VMX
SPARC64: HPC-ACE
325Socket774:2008/09/03(水) 06:10:30 ID:Y9k+6S7P
団子どこいったの?
326Socket774:2008/09/03(水) 06:50:53 ID:Engcm/1H
いつも思うんだが、
intelとかAMDの一般人程度が買えるチップセッットのIOPSってどの程度のものなの?
最近の事情をみているとCPUの処理能力上げるより、チップセットのIO能力あげたほうが、
システムの性能あげやすくないか?
327Socket774:2008/09/04(木) 00:59:10 ID:495o2NVA
個人だとチップセットよりも先にHDDに足を引っ張られるんじゃないか?
鯖みたいにアクセス一杯くるからRAIDとかいうわけでもないだろうし。
SSDレベルだとどうなんだろうな。
328Socket774:2008/09/04(木) 01:47:58 ID:wNGaiQVU
>>325
オレの隣で寝てるよ
329Socket774:2008/09/04(木) 11:28:22 ID:9ZCTxXqZ
>>328
あぁ、お前団子と一緒に食った水羊羹か
まだ消化されてなかったのな
330Socket774:2008/09/05(金) 01:29:32 ID:OXIaOoE0
妻乱
331MACオタ:2008/09/05(金) 03:35:33 ID:LC72yXSp
POWER7のスーパーコンピュータ"Blue Waters"が予算を獲得したらしいす。
http://www.networkworld.com/community/node/32152
  ----------------------
  The 200,000 processor core system known as Blue Waters got the green light recently as
  the University of Illinois at Urbana-Champaign and its National Center for Supercomputing
  Applications (NCSA) said it has finalized the contract with IBM to build the world's first
  sustained petascale computational system.
  [中略]
  Blue Waters will be based on what researchers called PERCS (Productive, Easy-to-use,
  Reliable Computing System).
  ----------------------
Blue Watersに関するThe Registerのスクープわコレす。
http://www.theregister.co.uk/2008/07/11/ibm_power7_ncsa/
332MACオタ@補足:2008/09/05(金) 03:39:51 ID:LC72yXSp
上のニュースに関するNCSAのプレスリリースす。
http://www.ncsa.uiuc.edu/News/08/0827Universityof.html
333Socket774:2008/09/05(金) 08:24:31 ID:VVr6FisE
>"Blue Waters"
…ナディア?
334Socket774:2008/09/05(金) 09:10:02 ID:VgavjWus
今 君の目に いっぱいの未来♪
335Socket774:2008/09/05(金) 17:26:40 ID:wwM8l+l4
すべってーをー かーあがーーやかすー
336MACオタ:2008/09/06(土) 17:02:41 ID:izCBmakR
TGDailyによるとIntelわ2月に買収したゲーム企業Offset TechnologyにLarrabee対応のゲームエンジン
を開発させるんだとか。
http://www.tgdaily.com/content/view/39211/135/
  ---------------------
  To demonstrate its horsepower, Intel will have to have at least one compelling launch title --
  and to make sure that it will exploit everything Larrabee has to offer, the company purchased
  Offset Software in early 2008.
  ---------------------
337MACオタ:2008/09/06(土) 19:08:18 ID:izCBmakR
Ando's Microprocessor Informationの今日の更新ってMYCOMのレポートより詳しいのわ
何故なんすかね。。。ちなみに主なお題わRockとSPARC64 VIIす。
MYCOMのHot Chipsレポートもスライド画像が少なくてがっかりしたす。
338Socket774:2008/09/06(土) 23:23:37 ID:KMfxu8Zq
HOT CHIPS 20 - Intelのグラフィックプロセサ「Larrabee」
http://journal.mycom.co.jp/articles/2008/09/06/hotchips5/001.html
Q.
何故、32ビット×16並列の512ビット幅のベクタ演算器なのか、256ビット幅にし
てNehalemの次世代のSandyBridgeで実装予定のAVX(Advanced Vector Extension)
との機能の共通化をしないのは何故か
A.
AVXは汎用的な計算処理を目指しているが、Larrabeeのベクタユニットはグラフィ
ックス処理をメインに考えており、最適化のポイントが違う
339MACオタ:2008/09/06(土) 23:55:03 ID:izCBmakR
今晩わ安藤氏のHot ChipレポートでMYCOMが怒涛の更新の様す。>>338以外にも
Rock http://journal.mycom.co.jp/articles/2008/09/06/hotchips6/index.html
龍芯 http://journal.mycom.co.jp/articles/2008/09/06/hotchips7/index.html
FPGA http://journal.mycom.co.jp/articles/2008/09/06/hotchips8/index.html

>>337で失礼なことを書いてしまってお詫びいたします。
340MACオタ:2008/09/07(日) 00:34:36 ID:HXZEd2kV
そう言えば、何故「龍芯 (Loongson)」=Godsonなのかと思っていたすけど、"son"の方わ、そのままとして
「龍」=「神」なんすか?中華的に。
341Socket774:2008/09/07(日) 04:12:38 ID:NX8YfVp1
>>339
342Socket774:2008/09/07(日) 08:42:23 ID:sDYj8ELb
ついにでたか
次に投機的スレッド実行を実装するのはどこになるんだろう?
ページングと同じようにCPUに実装される標準技術になるのか、それともROCK専用機能になるのか
昨今のCPUは必ず性能が上がることがわかっていても
トランジスタを食う技術はなかなか実装しそうにないしな

もしかしたらキャッシュを小量ですませる技術として流行るかもしれん
343,,・´∀`・,,)っ:2008/09/07(日) 13:37:31 ID:KqFECX7I
Core2で既にクロックゲーティングを含むロジック部よりSRAM部のほうがでかいくらいだし、
多少はいいんじゃね?


CellのSPEはソフトレベルでスカウトスレッディングみたいなことは出来そうだけど
そういうテクニックは未だに活用されてる話を聞かないな。
344MACオタ>642, 団子 さん:2008/09/07(日) 13:43:57 ID:HXZEd2kV
>>342-343
こう言っちゃ悪いすけど、Rockのスカウトスレッドと同様の機能わPOWER6でload lookahead機能
として実装済みだと思うす。
http://www.research.ibm.com/journal/rd/516/le.html
345Socket774:2008/09/07(日) 14:01:00 ID:BvFo/3j2
MACオタの書き込みってどんどん姑息になってるな。
やっぱ基地外度ではMACオタがトップだと思う。
MACオタは読み手にわかりにくくやっているところが酷い。
346MACオタ(翻訳):2008/09/07(日) 14:19:26 ID:BvFo/3j2
同じin-orderアーキテクチャであるPOWER6にもload lookaheadと呼ばれるprefetch機能が
あったすけど、これとRockのスカウトスレッド機能と結果がどう違うかよくわからないす。

>In order to enhance performance, load lookahead (LLA) execution is employed to facilitate load prefetching
>to the L1 D-cache after a load miss or ERAT miss. When a miss occurs, the IDU will enter LLA mode, whereby
>instructions after the missed load continue to be dispatched from the I-buffer and executed. In LLA mode,
>the instructions can produce the result and pass it to the dependent instructions before the data reaches the
>writeback stage. (以下略)
347MACオタ>騙り さん:2008/09/07(日) 14:23:27 ID:HXZEd2kV
>>346
  ----------------
  同じin-orderアーキテクチャであるPOWER6にも
  ----------------
RockわOoOEなんすけど。。。
http://journal.mycom.co.jp/articles/2008/09/06/hotchips6/005.html
  ================
  Rockのマイクロコアは、65nmプロセスを使用し、14平方mmと非常に小さいが、Out-of-Order実行
  の4命令Issue構造を持つ。
  ================
348MACオタ(翻訳):2008/09/07(日) 14:27:31 ID:BvFo/3j2
Rockからスカウトスレッドを取ったらin-order実行すけど、
MACオタより少々理解しすぎていたみたいで申し訳ないす。
349Socket774:2008/09/07(日) 15:19:38 ID:YJ+W7tb6
スカウトスレッドって、単に実装が多少ふうがわりなOoOでしかなくね?
350Socket774:2008/09/07(日) 19:32:50 ID:NX8YfVp1
>>345
いや、普通に大学の情報工でアーキテクチャの講義受けただけの俺でも大体わかるぞ?
351Socket774:2008/09/07(日) 20:57:15 ID:BvFo/3j2
なんか勘違いしてるな。
当の本人がload lookahead実行やらスカウトスレッドやらを理解してないのに
他人を見下しながら、貼り逃げはないだろ。

実はMACオタってのは海外の掲示板で出たネタはってるだけなのよ。
それならそれらしく>>346程度の書き方に押さえてときゃいいってこと。
2ch読んでるだけだとなかなかわからないと思うが。
352MACオタ>351 さん:2008/09/07(日) 21:18:29 ID:HXZEd2kV
>>351
  ----------------
  海外の掲示板で出たネタはってるだけなのよ。
  ----------------
RealWorldTech, AcesHardware, Arstechnica, XtremeSytems等からネタを引っ張ってることわ否定しない
すけど、ソースわ書いているつもりす。
それ以前に、私が書いている話わ情報が新しいだけで技術的にわ『当たり前』のレベルす。ところが
この当たり前の内容に自称専門家の知ったかさんが噛み付いてくる不思議(笑)
353,,・´∀`・,,)っ:2008/09/07(日) 23:26:44 ID:KqFECX7I
まぁあれだ、独自の解釈がアレなだけで
引用元の信用性まで疑われてるわけじゃない。

事実だけを解釈の歪みなく引用してくれる分には有意義だ。








まあそうならないんだけどな
354MACオタ>団子 さん:2008/09/08(月) 01:18:42 ID:bepvv0rB
>>353
  -------------------
  独自の解釈がアレ
  -------------------
Nehalemの命令帯域やらLarrabeeのベクトル幅やらの『独自解釈』で大恥をかいたヒトのことすか?
355,,・´∀`・,,)っ:2008/09/08(月) 10:27:43 ID:AzDlcBa5
いいや、P5の浮動小数加減が1クロックとかROBがIntel用語なんて言った
大恥を通り越した超恥の人
356Socket774:2008/09/08(月) 14:37:17 ID:eV175S6H
で、どっちでもいいから
ふたりの投機的スレッド実行の実装についての考えをきかせてくれよ
アレは性能/トランジスタのコスパがいい技術なのか
ISAの実装によってはとんでもなくお荷物になる技術なのか

あと、OoOの亜種っぽいという見方も上のほうででてたけど
OoOと統合したほうが合理的なのか
それとも分離して考えたほうが合理的なのか等。
357,,・´∀`・,,)っ:2008/09/08(月) 15:18:22 ID:AzDlcBa5
結局再コンパイルが必要なんじゃ大して意味はないんじゃないかな。
個々の実装に関しては、向かないものは向かないんじゃね?
レジスタなりローカルストレージなりがある程度大きくないとね。
キャッシュコヒーレントモデルの縛りがある。

Intelが「Ct」なんて新言語を作ってマルチコアに対応しようとしてるあたり、x86-ISAとしての空気はだいたい読めるよね。
また、シングルスレッド性能はSIMDの強化が主体かと。
358Socket774:2008/09/08(月) 16:11:08 ID:zu1BGJGB
>>354 >>355
おまえらで2ch羞恥心ユニットでも組めよw
359,,・´∀`・,,)っ:2008/09/08(月) 19:12:35 ID:AzDlcBa5
ま、不確定情報に対する予想って当たれど外れど2chの醍醐味じゃね?
恥ずかしいなんていったらそれこそ有意義な議論は生まれんよ。

ま、確定情報を堂々と間違えるどっかの誰かは己の恥という概念がないらしいが
360Socket774:2008/09/08(月) 22:34:42 ID:1eHvik0L
なるほど、恥をさらすのが楽しくて書くんですね。その気持ち私には分かりかねます…
361,,・´∀`・,,)っ-◎●○:2008/09/08(月) 22:44:17 ID:0V3+5JgQ
そうは言ってない。恥を知らないやつが他人の恥をどうこう言うのがただただ滑稽だけ。
100歩が50歩を笑うようなもの。
362,,・´∀`・,,)っ-◎●○:2008/09/08(月) 22:48:52 ID:0V3+5JgQ
他人の恥を指摘することができるのは
自分自身の恥を指摘される覚悟のある奴だけです。

その覚悟は俺にはあるしどっかのFUCKヲタには無い。
363Socket774:2008/09/08(月) 22:55:42 ID:cYIhs0Ed
>FUCKヲタ
おいおい、逆にかっこいいからやめてくれw
364Socket774:2008/09/08(月) 23:14:27 ID:el9YG13Z
当たれど外れど2chの醍醐味とか書きながら言い訳がましすw
365Socket774:2008/09/08(月) 23:16:16 ID:el9YG13Z
火傷して単発IDで自演とかするから台詞が似合わないよ
366,,・´∀`・,,)っ-◎●○:2008/09/08(月) 23:37:02 ID:0V3+5JgQ
>>365
それMACヲタの説明ですか?
俺の流儀じゃねーな
367Socket774:2008/09/08(月) 23:45:54 ID:E/tC5n4b
>>366
MACヲタはその点に関して言えばそこまで意地汚くないよ。
おまえさんだよ。と惚けなさんな。
まいい、お前さんの人格などはどーでも。
面白い技術ネタがあれば話しを戻せ。さもなくばねてちゃんと仕事行け。この弁慶が。
368,,・´∀`・,,)っ-◎●○:2008/09/08(月) 23:52:15 ID:0V3+5JgQ
>>364
そうだよ。
でも、不確定事柄に対する「予想」だからね。2chの醍醐味ジャン。
不確定なものについて論じる以上は誰しもいくらかは間違える。
しかし間違うことを恐れたら何も論じることはできなくなるだろ。

間違いは、いくらでも指摘してもらってかまわない。
その代わりお互い様。自分のは指摘しないでくれなんて理屈は通らない。
フェアプレイ万歳。


MACヲタの迷言の記録なんてログ探せばどれをピックアップすればいいか
逆に迷うほど溢れているわけで、俺に噛み付く行為そのものが自滅行為なんだよね。
こちとら●持ちだから他の板も含め全部探れますよ。
ケツの穴まで覗かれてる立場であることを自覚したうえでやってくれる分には何の問題もないが
そんな度胸無いのになんで噛み付くのかねぇ
369,,・´∀`・,,)っ-◎●○:2008/09/09(火) 00:32:37 ID:IX4Cl6Q5
予想ならともかく不確定でもないことを堂々と間違えられると爆笑するしかないわけで


ところであの彼はSandy Bridgeに「256ビットのSIMDユニット」が載ると思い込んでて
たまに俺を煽ってくるんだけどさ

何度も言うけど俺が確信するにSandy BridgeのSIMDユニットは128ビットのまんまです。←これ保存しとけよ

Sandy BridgeにはLoadユニットが2本(資料にもハッキリ「2nd load port」の存在が示されてる)で、
これで256-bit aligned loadと128-bit misaligned loadに対応してるらしいけど
もし仮に256ビット×2なら256ビットデータもmisalignedでロードできる筈なんだよ。
どう考えても内部128ビットです。本当にありがとうございました。

命令の仕様からして新命令も含め256ビットのは128ビットSIMD命令を2回実行してるだけだし。
浮動小数に関連する部分だけって時点で気づかなければいけない。
浮動小数はレイテンシが大きいからアンロール用としてでもレジスタを引き伸ばす意味がある。
そんな単純な理由だよ。
ネイティブ256ビットになるのはHaswellあたりかそれ以降になるんじゃないかな?
370Socket774:2008/09/09(火) 00:34:29 ID:3b60yo4E
FUCKヲタ、カコイイ!
371Socket774:2008/09/09(火) 01:37:47 ID:WQzNNmkj
いい加減聞かれてもいないのに同じ事を何度も書き込むのを止めればいいのにね
372Socket774:2008/09/09(火) 02:59:41 ID:JThD7MYG
>>356
実はインオーダーとOoOは連続していて、
命令を実行ユニットに供給できるところは何箇所あるか?という違いが本質
つまり、インオーダーだと命令発行は一箇所から、Rockだと2箇所、OoOだと命令ウィンドウのエントリ数だけある

> アレは性能/トランジスタのコスパがいい技術なのか

したがって、魔法の技術じゃないし、コストも性能も中間だが、トレードオフの選択肢が増えるのは有意義
373Socket774:2008/09/09(火) 03:13:49 ID:JThD7MYG
>>372
OoO性を導入しようとするとどうしても必要になるのが、逆依存の解消とインオーダー状態の維持だけど、
Rockの場合はそれにマルチスレッドととトランザクショナルメモリを使っている
うまい使いまわしだと思う、というか、トリックにとどまらない本質みたいなのがあるんだろうね
374Socket774:2008/09/09(火) 09:17:54 ID:JThD7MYG
と思ったが、逆依存の解消そのものはdeferred queueでやるんだが、これは普通のSMTにはない機構だな
375MACオタ:2008/09/09(火) 09:55:14 ID:JThD7MYG
>>346
POWER6のlookaheadわ、スカウトスレッド相当品の実行結果わ全部捨ててしまうように見えるす
376MACオタ:2008/09/09(火) 10:06:52 ID:JThD7MYG
>>375
というのも真面目に実装するのも大変で、Rockみたいなdeferred queueもなく、所詮わオマケ機能だと思うす

いちおう2つのモードがあって、
1. キャッシュミス等を起したスレッドがそのまま実行継続、ただしレジスタ等のステートの更新しない
2. SMTの相手方のユニットで実行継続、相手方のステートわ更新する
で、1わプリフェッチアドレスが不正確に、2わSMTが使えないと問題も多いす
377Socket774:2008/09/09(火) 23:54:44 ID:eqR/78Rf
ARM、IntelによるAtom優位の主張に強く反論
http://pc.watch.impress.co.jp/docs/2008/0910/arm.htm
378Socket774:2008/09/10(水) 00:00:32 ID:6VkAjcMG
いよいよ全面戦争か
379MACオタ>騙り さん:2008/09/10(水) 00:02:22 ID:whUJSKU4
>>375-376
またキチガイのヒトが。。。と思ったら、正しいことを書いてるんでOKす(笑)

でも、>>372が変なんすけど。。。
  ----------------------
  インオーダーだと命令発行は一箇所から、Rockだと2箇所、OoOだと命令ウィンドウの
  エントリ数だけある
  ----------------------
ここの下の図 http://journal.mycom.co.jp/articles/2008/09/06/hotchips6/001.html
でも、>>318のリンク先のP.6を見ても良いすけど、あなたの大好きな"Reservation Station"やら
"RA"やらが各実行ユニットの前に鎮座しているのが見えないすか?このReservation Stationの
深さが、スカウト機構無しの状態での『命令ウィンドウのエントリ数』す。
380MACオタ>団子 さん:2008/09/10(水) 00:04:41 ID:whUJSKU4
>>369
  -------------------
  不確定でもないことを堂々と間違えられると爆笑するしかないわけで
  -------------------
虚言癖ってヤツなんすかね。。。バレバレなんで実害ないすけど(笑)
前スレから抽出するだけでも団子さんの『間違った知識自慢』わ色々と。。。
http://pc11.2ch.net/test/read.cgi/jisaku/1214999146/
  ------------------------------
  256 名前:,,・´∀`・,,)っ 投稿日:2008/08/17(日) 20:37:06 ID:C0ppS6h9
    >フォワーディングネットワーク
    これ予約機構のことかね?
    Intel用語ではActive Register FileといってP6アーキのレジスタリネーミング機構
    の特徴の一つです。
  ------------------------------
  503 名前:,,・´∀`・,,)っ-○●◎ 投稿日:2008/08/24(日) 19:50:02 ID:fXUc5UmU
    でさ、scatter/gather命令の仕様なんだけどさ
  [MACオタ注: 以下、妄想を開陳。実際にわ論文に実装についてのアリ]
  ------------------------------
  517 名前:,,・´∀`・,,)っ-○●◎ 投稿日:2008/08/24(日) 21:36:34 ID:fXUc5UmU
    ページフォルトで命令キャンセルなんて聞いたことがない
  ------------------------------
381MACオタ@続き:2008/09/10(水) 00:06:18 ID:whUJSKU4
引き続き前スレからのお笑い言行録を
http://pc11.2ch.net/test/read.cgi/jisaku/1214999146/
  ------------------------------
  631 名前:,,・´∀`・,,)っ 投稿日:2008/08/25(月) 02:38:52 ID:a77HGQP1
    IAにストアバッファなんて最初からないし、あった試しがない。

  | MACオタ注:当然嘘。以下、Pentium Processor Family Developer Manual Vol.3 P.18-7
  |      より引用 ftp://download.intel.com/design/pentium/manuals/24143004.pdf
  | ============================
  | 18.7. WRITE BUFFERS
  | The Pentium processor utilizes write buffers for memory operands and for each
  | pipeline.
  | ===========================    
  ------------------------------
  840 名前:,,・´∀`・,, 投稿日:2008/08/27(水) 13:26:01 ID:5PB5oEGN
    >ライトコンバインでは、まずフィルバッファに書くんだよ
    はい、その仕様は何ページに書かれていますか?
  | MACオタ注:しっかりディベロッパーズマニュアルに書いてあるす。以下、引用
  |      http://download.intel.com/design/processor/manuals/253668.pdf (p.10-9)
  | ============================
  | 10.3.1 Buffering of Write Combining Memory Locations
  | Writes to the WC memory type are not cached in the typical sense of the word
  | cached. They are retained in an internal write combining buffer (WC buffer) that is
  | separate from the internal L1, L2, and L3 caches and the store buffer.
  ------------------------------
この品質の書き込みが延々と繰り返されているのが、なんともはや(笑)
382Socket774:2008/09/10(水) 00:18:47 ID:eonnEEKW
処理性能とか消費電力はひとまずおいとくとしても
x86のブラウザにおける優位性ってすでに崩れ始めてるように感じるんだけど、その辺Intelはどう考えてんだろ
383,,・´∀`・,,)っ:2008/09/10(水) 00:31:50 ID:To4rXq1Z
いいよいいよ。
お前が言うな100連発なんだけどね
384ふぁCKオタ:2008/09/10(水) 00:38:09 ID:ERxs1sDE
MACオタじゃなくて別のコテにして>もう一人の方
紛らわしくて遺憾。
385ピンサロオタ:2008/09/10(水) 01:08:13 ID:afFTEuiP
>>384
了解

>>379
本気でそう思ってる?
386Socket774:2008/09/10(水) 01:10:33 ID:afFTEuiP
>>379
以下はRockの話
> このReservation Stationの 深さが、スカウト機構無しの状態での『命令ウィンドウのエントリ数』す。

まず、スカウト機構「あり」でも「命令ウィンドウのエントリ数」ということは理解しているよね?
387MACオタ:2008/09/10(水) 01:21:00 ID:whUJSKU4
ITJungleのMorgan記者によると、コア数を2倍にしたPOWERサーバーが噂されているとのことす。
POWER6+すかね。。。
http://www.itjungle.com/tfh/tfh090808-story01.html
  ---------------------
  Specifically, I hear that IBM is going to double up the processor core count on the Power 550
  to eight Power6 cores and double up the Power 570 to 32 cores.
  ---------------------
クアドコア化するのか、実装密度を上げるのかわ不明す。
388MACオタ>386 さん:2008/09/10(水) 01:23:16 ID:whUJSKU4
>>386
  -----------------
  まず、スカウト機構「あり」でも「命令ウィンドウのエントリ数」ということは理解しているよね?
  -----------------
この妄言(>>348参照)を書いたのがあなたで無いのなら失礼したす。
  =================
  Rockからスカウトスレッドを取ったらin-order実行すけど、
  =================
389MACオタ:2008/09/10(水) 01:31:14 ID:whUJSKU4
龍芯3のx86互換に関する情報が来てるす。
エミュレーション支援?用にMIS ISAに200命令追加してるんだとか。。。
http://news.cnet.com/8301-1001_3-10034825-92.html
  -------------------
  "The most interesting part of the chip is that they're adding about 200 new instructions to
  assist with x86 compatibility," Halfhill [MACオタ注: Tom Halfhill, analyst of In-Stat] said.

  At its core, it is a MIPS RISC processor--but one that proposes to run Intel-compatible
  software efficiently enough that most Chinese may not notice the difference. "It won't be
  an x86 processor. But the 200 instructions will optimize the (Intel) performance," Halfhill said.
  -------------------

390ピンサロオタ:2008/09/10(水) 01:37:28 ID:afFTEuiP
>>388
書いたのわおれじゃないけど、スカウト抜きのRockわ典型的なin-order実行すよ
もっとも今日日のインオーダープロセッサわ、POWER6のようにMostly in-orderだけど、
もしかしてMACオタわそこに拘ってグダグダ言ってるすか?
391Socket774:2008/09/10(水) 01:38:51 ID:752L7YCR
>>339で自分が貼った安藤さんの記事にも書いてあるじゃん
392MACオタ>ピンサロ さん:2008/09/10(水) 01:45:55 ID:whUJSKU4
>>390
  -------------------
  POWER6のようにMostly in-orderだけど、
  -------------------
POWER6わイシュー時に先行命令を追い越すことわ無いす。
http://www.research.ibm.com/journal/rd/516/le.html
  ----------------------
  - A group cannot use more resources than are available in the POWER6 processor.
   Available resources are two FXUs, two LSUs, two FP or VMX units, and one branch unit.
  ----------------------
393Socket774:2008/09/10(水) 01:46:25 ID:752L7YCR
ひょっとして2ページ目読んでなかったのかな?
394MACオタ@補足:2008/09/10(水) 01:48:32 ID:whUJSKU4
一応、整数演算パイプラインの話に限定しておいて欲しいす。
POWER6でもFPUやVUわ別途イシューキューがあって、OoOEすから。。。
395MACオタ>393 さん:2008/09/10(水) 01:50:27 ID:whUJSKU4
>>393
396ピンサロオタ:2008/09/10(水) 01:50:47 ID:afFTEuiP
>>392
POWER6でわなくてRockの話でわなかったすか?
相変らず間違いを指摘されると話をそらすのわ止めてほしいものす。
397,,・´∀`・,,)っ:2008/09/10(水) 01:51:33 ID:To4rXq1Z
>>382
ブラウザっていうかネット端末として?
x86云々以前にPCの優位性にならないかそれ?
現実にはIEでないと見れないサイトが山ほどあるしな。
逆に携帯なんかのちっこい画面で見られる限られた情報に価値があるかね。
恋空(笑)とかやっぱナウなヤングにバカウケなのか?www

もとい、情報市場という広いパラダイムで見れば、Wave(放送波)からWeb(双方向メディア)への
パラダイムシフトというのがまずあって、PC市場は例に漏れず拡大を続けてる。

むしろWeb端末としてのPCの需要なんてここ数年の話だぜ。
森さんが「イット革命」なんて言ってた時代のちょっと前には
LANにすら繋がれてないPCがオフィスにゴロゴロしてた時代があり・・・。

そもそもIntelがどう思ってるかもなにも、x86が駄目な命令セットアーキなのはIntel自身わかってて
莫大な金をかけて何度もx86アーキを捨てようとしたけど、ことごとく失敗し続けてんだよね。

XScaleを捨ててAtomを立ち上げたのも、x86の需要拡大を見込んだ戦略の一環ではないかな。
既に「ネットトップ」「ネットブック」といった新市場が形成されつつある。

もちろん無線LANの普及がCentrinoのキャンペーンの功績であることも忘れてはならない。
Intelの優位性はそういった新市場創出の功績そのものだよ。

携帯なんかに載ってるARMとPCのx86の台数比較なんてしたところで、たいした意味はない
398MACオタ>ピンサロ さん:2008/09/10(水) 01:53:20 ID:whUJSKU4
>>396
話をそらすつもりわ無いすけど、「先行命令を追い越さないOoOE」とか、「先行命令を追い越すイン
オーダー」とかが理解できないだけす。
399Socket774:2008/09/10(水) 01:56:33 ID:752L7YCR
http://journal.mycom.co.jp/articles/2008/09/06/hotchips7/001.html
> GodsonプロセサはMIPSアーキテクチャのプロセサであるが、x86命令を
> エミュレーションするサポート機能を備えていることが一つの特徴である。
> Godson-3の汎用コアでは、x86互換のために200以上の命令を実装して、
> 現在のGodson-2に比べてx86互換機能を強化する。これらの命令の実装
> に必要な追加のシリコン面積は5%であるという。これによりx86命令の実効
> 性能をMIPSネーティブ命令の80%程度に引き上げるのが目標であるが、
> 現状では、40%〜50%しか性能が出ていないという正直な発表であった。
400MACオタ>799 さん:2008/09/10(水) 01:58:19 ID:whUJSKU4
>>399
お恥ずかしい。何を勘違いしたか、確かに読んでいなかったす。
401ピンサロオタ:2008/09/10(水) 01:58:55 ID:afFTEuiP
>>398
これを誰が言ったのか、引用して明確にした書き込みをして欲しいす
MACオタの一人相撲に付き合う気わないす

> 「先行命令を追い越さないOoOE」
> 「先行命令を追い越すイン オーダー」
402MACオタ:2008/09/10(水) 02:00:33 ID:whUJSKU4
ついに一般向けSpursEngineカード登場す。
http://pc.watch.impress.co.jp/docs/2008/0910/leadtek.htm
  ----------------------
  リードテックのWinFast PxVC1100は、デスクトップPCに増設できるPCI Express x1接続の
  LowProfile対応カードの形状。10月以降に、一般向けのリテール販売を予定している。価格は未定。
  ----------------------
403MACオタ>ピンサロ さん:2008/09/10(水) 02:04:21 ID:whUJSKU4
>>401
判りにくかったなら失礼したす。
>>390
  ----------------------
  スカウト抜きのRockわ典型的なin-order実行すよ
  ----------------------
Reservation Stationが存在して、この中から先行命令を追い越して実行ユニットにイシューすることが
できるRockが何故『in-order実行』なんすか?
スカウトわ"OoOリタイア"を可能にする技術なので、命令実行についてわ有無にかかわらずアウトオブ
オーダーだと思われるす。
404Socket774:2008/09/10(水) 02:04:30 ID:752L7YCR
なんつーか、すげえマルチスレッドw
405Socket774:2008/09/10(水) 02:12:38 ID:afFTEuiP
>>403
> Reservation Stationが存在して、この中から先行命令を追い越して実行ユニットにイシューすることが
> できるRockが何故『in-order実行』なんすか?

それこそMostly in-orderというやつすよ
MACオタわやっぱり用語に振り回されているようすね

> スカウトわ"OoOリタイア"を可能にする技術なので

ほんとに用語スキーなんすね
でも、間違いではないにしろ、違うす

>>390
> もっとも今日日のインオーダープロセッサわ、POWER6のようにMostly in-orderだけど、
> もしかしてMACオタわそこに拘ってグダグダ言ってるすか?
406Socket774:2008/09/10(水) 02:15:47 ID:eonnEEKW
>>397
>現実にはIEでないと見れないサイトが山ほどあるしな。
ああうん、Intelがなりふり構わずIEでなきゃ見れないサイトが多いんだよって主張するなら納得なんだけどね
ただ今更x86だから〜って言うのは遅すぎない?っと思った
407,,・´∀`・,,)っ:2008/09/10(水) 02:16:38 ID:To4rXq1Z
いじめるなよ。
自分が恥ずかしい人間だと思いたくないナイーブな子何だから。
408MACオタ>405 さん:2008/09/10(水) 02:19:10 ID:whUJSKU4
>>405
まともな回答をくれるつもりも無さそうすね。
OoO実行、インオーダーリタイアならCore2を含むほぼ全てのOoOEプロセッサに当てはまるす。

いまAppleイベントの中継を見てるので、今日はもうお終いにするす。知ったかぶりたいなら、
次回わ、もう少し内容のあるコメントを是非に。
409,,・´∀`・,,)っ:2008/09/10(水) 02:29:35 ID:To4rXq1Z
>>406
あ、そこは別にFireFoxでもなんでも構わない。

ただ、今のx86の需要は市場が選んだもので、つまり結果論なんだ。
Intelの思惑どおりに市場が動いてたら今頃俺のマシンもItanium2にでもなってたよ。

Intelとしちゃ、ARMみたいな単価100円単位の組み込みCPU市場の覇権なんて
欲しくも何ともないだろ。
410Socket774:2008/09/10(水) 02:36:22 ID:afFTEuiP
>>408
だからMACオタわ用語に振り回されているから、OoOと(Mostly)in-orderの違いがわかんなくなってんのよ

OoOは「積極的に逆依存を解消して」、out-of-orderで実行する

そうでないのが(Mostly)in-order、あまりコストをかけずに若干のOoO性は持たせてあることはごく普通です

Core2みたいな大抵のOoOプロセッサは、レジスタリネーミングで逆依存の解消をしているし、
Rockはスカウトスレッドとdeferred queueで逆依存の解消をしている

スカウトなしのRockにOoOを実現する機構はないよ

ところで、MACオタは
> Reservation Stationが存在して、この中から先行命令を追い越して実行ユニットにイシューすることが
> できるRock
これをどこで読んだのかな?

ソースは出せないんだろ?
用語に拘った挙句の思い込みだろ?
411Socket774:2008/09/10(水) 02:43:22 ID:afFTEuiP
>>410
実際のところ、Rockはキャッシュミスすると命令フェッチもスカウトに切り替わるわけだし、

Core2みたいに「キャッシュミスしたロードに直接間接に依存した命令」をRSに長く待たせることはないので、

実装もCore2のように連想メモリではなく、ただのキューで十分だろう
412ピンサロオタ:2008/09/10(水) 02:51:09 ID:afFTEuiP
>>410
訂正するす

×OoOと(Mostly)in-orderの違いがわかんなくなってんのよ

最初からわかってるはずがないすね(笑)

おまけ:
Rockは実行できない命令をdeferred queueにつっこむわけだけど、オペランドのうち使えるものがあれば値を読んで、
命令といっしょにdeferred queueに書く
これでこの命令のソースオペランドが後続の命令で上書きされても(WAR)大丈夫==逆依存の解消

つまり、レジスタリネームじゃなくて、値そのものをコピーするわけ
413Socket774:2008/09/10(水) 04:10:51 ID:HNUck/fx
LarrabeeってまんまCellGPUがやりたかったこと実現しちゃってるな。
バス幅に余裕のあるリングバス、
インテリジェンスなキャッシュコントローラーが管理するコア間で横断可能なキャッシュ、
アホみたいな量のALU
Nativeコンパイラも期待できるし、これで2GHz/20コアとか動いちゃったらちょっと凄いわ
414ピンサロオタ:2008/09/10(水) 04:20:09 ID:afFTEuiP
>>403
とりあえずMACオタには、これのソースを出してもらいましょう

> Reservation Stationが存在して、この中から先行命令を追い越して実行ユニットにイシューすることが
> できるRockが何故『in-order実行』なんすか?
> スカウトわ"OoOリタイア"を可能にする技術なので、命令実行についてわ有無にかかわらずアウトオブ
> オーダーだと思われるす。

RSとROBの区別もついてないお前が、Reservation Stationだから当然す、なんて言うなよ

あと、期待に違わずMACオタは「OoOリタイア」についても理解してないようで安心したww
415Socket774:2008/09/10(水) 13:21:06 ID:QUIJJZic
Opera、「NVIDIA Tegra」に最適化されたブラウザ提供へ
ttp://internet.watch.impress.co.jp/cda/news/2008/09/10/20810.html
Opera Softwareは9日、「NVIDIA Tegra」ファミリーに最適化されたフルブラウザを提供することで、
NVIDIAと提携したと発表した。ハードウェアの力を生かし、JavaScriptや高速ベクター、動画をサポートし、
デスクトップと同じレベルのブラウザをスマートフォンや携帯機器に提供できることになる。


今後MID用プロセッサとしてのAtomのセールスポイントがどうなっていくのか気になる
こんな話も

Nvidia Tegra is based on GeForce 6
ttp://www.tgdaily.com/content/view/39215/135/

Industry sources told us that the next-generation Tegra will add certain features from the GeForce GTX 280
such as full support for CUDA and dual-precision FP64 processing.
The hardware is likely to be based on a single 8-shader processor node, which would result in about 30 GFlops of processing power.

携帯/MIDに倍精度って必要あるんかしら
416どうていだいまおう:2008/09/10(水) 18:46:28 ID:AyTGFKdU
ろっくはOoO実行、in orderリタイヤだろ
sunがなんと言おうが、スカウトスレッド実行開始時点と
整合性を取ってコミットしなきゃ、実行結果の完全な反映はできないよ
417どうていだいまおう:2008/09/10(水) 18:50:44 ID:AyTGFKdU
>>416って検討外れかも
そんなわけでロールバック
AV女優はTバック
必殺技はア○ルフ○ック
418どうていだいまおう:2008/09/10(水) 18:58:14 ID:AyTGFKdU
スカウトスレッドしないときのRockはin orderだろ
現時点での情報だとそんな感じ
スカウトって、高速化に寄与する割合のでかいロードのOoOが
低コストで実現されてるっぽくて素敵
C2Dとかの実装わかんないから低コストってのは直感だけど
419どうていだいまおう:2008/09/10(水) 19:17:27 ID:AyTGFKdU
キャッシュはグラフィックスに馴染まない
っつーのは、ライン置換にLRUみたいな
単純なアルゴリズムのみを使うんじゃなくて
ラインとかブロック毎に置換優先順位を設定してやれば
あっさり解決できる弱点なのね、たぶん
この単純なことが分かるまで、人類はLararbeeを
待たなくてはいけなかった、
これがマイクロプロセッサの、ある機構の実現可能時期と
実装される時期との乖離というわけです

いやー、世の中って難しいですね
っーわけで、デリヘル呼びます
いじょ
420Socket774:2008/09/10(水) 20:04:06 ID:2hP/S4FA
質問していい?

その置換優先順位ってだれがつけるの?
421どうていだいまおう:2008/09/10(水) 20:19:28 ID:AyTGFKdU
んとね、コード書く人
コンパイラやハードが自動的にやるとかないゆ
422ピンサロオタ:2008/09/10(水) 20:51:56 ID:0nqcVeWP
キャッシュ置換ポリシーをコンパイラにやらせる研究もあるけどね
インテルは実装してくるかもしれないけど、今の商用コンパイラにはないんじゃないか

ハードにやらせる研究もないではないようだ
こちらはメモリアクセスパターンを認識して、という話だから、
自動プリフェッチと似たような話

おれもデリ呼べる家に住みたいのう
423Socket774:2008/09/10(水) 21:18:00 ID:Sj22QLkI
ストリーミングデータによるキャッシュポリューションについては、
置換ポリシでなんとかなるが、SRAMや主記憶バンド幅とかの利用効率の
悪さはもうちょっと根が深いと思うぞよ
424MACオタ(翻訳):2008/09/10(水) 21:25:33 ID:yoXoppwj
書いた本人ですが何か?

MACオタ(本人)が用語スキーというのに激しく同意。
定番OOO実装の説明が全くないから皆(安藤氏もそうだった)悩んでいるのですよ。
Sunは今までがin-orderだったからOOOを新しいものとして売りにしてきた。
IBMは今までがOOOだったからin-order回帰を新しいものとして売りにしてきた。
この両者のアピールポイントはくだらない用語の定義論におちいりかねないし、たいした意味はない。

どちらもスケジューラを簡素なままに、新しい工夫でコアのスループットをあげようとしている
って言うのが重要なの。
425MACオタ(翻訳):2008/09/10(水) 21:28:09 ID:yoXoppwj
Atomも多少in-orderなりの工夫があり。
これらがin-order回帰なのと、Larrabeeがin-orderのP5コアを使い回したのではかなり事情が違うね。
426Socket774:2008/09/10(水) 22:22:20 ID:0nqcVeWP
POWER6のload lookaheadがオマケ程度なのが気になる
Ahead状態は整数レジスタだけでいいし(もしかしてRockもか?)
ポート不要なそのバックアップすらケチったということか
427MACオタ(翻訳):2008/09/10(水) 22:51:49 ID:yoXoppwj
>>372
>実はインオーダーとOoOは連続していて、
>命令を実行ユニットに供給できるところは何箇所あるか?という違いが本質
ピンサロが団子やMACオタよりOOOを理解しているのは間違いないが、これはさすがにない。
OOO実行は逆依存の解消の方が本質。
もちろんMACオタ(本人)がいっている先行命令を追い越して発行とかもちがうけど。
428,,・´∀`・,,)っ:2008/09/10(水) 23:00:04 ID:To4rXq1Z
すまんがOoOの話題にはノータッチ。
俺はそのへんの機構はたとえばx86ならどの命令が並列化できるとかしか興味なし。
中の人に程遠いルーマーが他人に説明するなど愚かしいことよ。
429Socket774:2008/09/10(水) 23:31:16 ID:0nqcVeWP
>>427
OoOの本質が逆依存の解消は了解

Rockはメインとスカウトの二つのin-orderスレッド間のOoOness

Core2のはガバガバフェッチした命令間のOoOnessを連想メモリで抽出
430MACオタ:2008/09/10(水) 23:31:29 ID:whUJSKU4
まだ騙りさんが出没しているすか。つまらないプライドを捨てきれないのか、バレバレなんで
実害わ無さそうす。

それわそれとして。。。

OoOEを名乗る商用プロセッサの多くがイシュー・キューの深さがほんの数命令程度で、直前の
先行命令を追い越せる程度す。リネームレジスタが無いとOoOEの条件を満たさない。。。なんて
のわ、実物のチップのデータシートを読んだことが無い机上の空論というヤツかと。
431Socket774:2008/09/11(木) 00:01:38 ID:+4IJnbGj
>つまらないプライドを捨てきれないのか
えっ?
にちゃんねる屈指のつまらないプライドの持ち主とは誰のことだっ!!

>イシュー・キューの深さがほんの数命令程度で、直前の
>先行命令を追い越せる程度す
妄想どうも。

>リネームレジスタが無いとOoOEの条件を満たさない
そんなん誰かいったか?

いつにも増して書き込みのクオリティが低いですよ、ご本人さん。。。
432ピンサロスキー:2008/09/11(木) 00:25:06 ID:h6Q9KwDk
MACオタが用語以上のことを言い出すと一挙に無理解をさらすわけで
433Socket774:2008/09/11(木) 00:29:14 ID:+4IJnbGj
話がそれてきたが、
MACオタはレスの付け方が下品すぎるというのがもともと言いたかったのよ。
書き込みしている人の意図や書き込みの内容の大筋をつかまないで、
つまらない揚げ足取りや、相手をいかにして追い込むか
に終始してるんだよな。
初心に帰って、発展的なレスができるようににちゃんねる人生をやりなおして欲しいものだ。
434Socket774:2008/09/11(木) 00:58:33 ID:+4IJnbGj
ああ、変な書き込みしてるが、これが最後。
ROMっている人も含めて、これからはみんなどんどんMACオタと議論して欲しいw
極端なMACオタが嫌いがいる理由が身をもってわかるだろう。
スレ的にもその方が盛り上がるだろうし。
435Socket774:2008/09/11(木) 01:07:40 ID:RjF5t4OY
オタと議論しようとする時点で
もまいは2ちゃん素人
436,,・´∀`・,,)っ:2008/09/11(木) 03:51:26 ID:mB6U7ole
たしかにレジスタリネームそのものはOoOとは可分の機能だ。
Itaniumのレジスタローテーションもそうだし
437,,・´∀`・,,)っ:2008/09/11(木) 07:10:48 ID:mB6U7ole
ところでおまいらルネサスや芝セミの中の人か何かか?
438,,・´∀`・,,)っ:2008/09/11(木) 11:49:42 ID:mB6U7ole
十分なレジスタ数がありソースとデスティネーションが独立してれば
レジスタリネーミングなしのOoOでも十分な性能は出る。
逆に消費トランジスタ数が許すならレジスタリネーミングはインオーダでも有用な技術だ。
x86/x87のISAは逆にレジスタリネーミングなしじゃOoOで性能でない。

CellのSPは命令レベルで使えるレジスタが多い反面、レイテンシを埋めるため
明示的なループアンロールが必要だ。
これは結果としてコードサイズの増大を招く。
場合にもよるが、コードサイズが小さくできることはSRAMを有効利用できることになり
結果的に電力当たり性能向上につながりうる。
439Socket774:2008/09/11(木) 11:57:28 ID:o5y+aZ+j
>>438
定量的な例示があると分かりやすいんですが
440Socket774:2008/09/11(木) 19:04:26 ID:O8RCHwM/
intelはlarrabeeについては自社のCtよりも
DX11期待してるってさ
441,,・´∀`・,,)っ:2008/09/11(木) 19:23:17 ID:mB6U7ole
Compute ShaderてLarrabeeのためにあるような機能だしな
442Socket774:2008/09/11(木) 19:39:41 ID:BiUt1tuj
それってx86関係なくなるじゃん
443Socket774:2008/09/11(木) 20:28:26 ID:SbN/u4iR
Compute shaderってただのDX11の拡張じゃん。

Larrabeeはどうやらx86のバイナリをそのまま食わせることは出来ないらしいけどc/c++のコードが普通に走るし、
SPEと違ってDMAとかじゃないんだぜ。
周りのコアのL2にデータあればそれ読めちゃう。
レイテンシは伸びるだろうけど、コア数が増えるとシームレスにアクセス出来る共有L2が増えてくとかすごい。
444Socket774:2008/09/11(木) 20:35:23 ID:BiUt1tuj
そもそも普及する見込みが無いから
CtよりDX11って考えなんだろ
445MACオタ>431 さん:2008/09/11(木) 22:58:26 ID:f9LWhyHQ
>>431
  ------------------
  妄想どうも。
  ------------------
確認してみることをお勧めするす。
 ・ARM Cortex-A9: 6命令 (ただしレジスタリネーム有)
 ・PowerPC 440: 2命令
 ・PowerPC 744x:/745x 3命令 (ただしレジスタリネーム有)
ついでに命令ウィンドウわ大きい目なのにリネームレジスタが無い例わ、POWER6のFPU/VUキューが
あるす。
 ・POWER6 (FPQ): 8命令

  -------------------
  >リネームレジスタが無いとOoOEの条件を満たさない
  そんなん誰かいったか?
  -------------------
>>427
  ===================
  OOO実行は逆依存の解消の方が本質。
  ===================
446MACオタ:2008/09/11(木) 23:11:51 ID:f9LWhyHQ
NECがIBMの(バルクシリコンの)プロセス連合に加入したす。
http://pc.watch.impress.co.jp/docs/2008/0911/necel.htm
  ----------------------
  今回の合意に基づき、NECエレクトロニクスは32ナノメートル(ナノは10億分の1、以下nm)
  世代の次世代CMOSプロセス技術の共同開発プロジェクトおよび将来の最先端半導体技術
  に関する先進的な基礎研究に参加します。NECエレクトロニクスは、次世代シリコン技術の大
  幅な性能向上及び消費電力低減を加速させるための共同開発を行っているIBMの共同開発
  アライアンスの8社目の半導体製造会社となります。
  [中略]
  なお、IBMの他の半導体共同開発パートナーは、チャータード・セミコンダクター、フリースケー
  ル・セミコンダクタ、インフィニオンテクノロジーズ、サムスン電子、STマイクロエレクトロニクス
  および東芝です。
  ----------------------
447,,・´∀`・,,)っ:2008/09/11(木) 23:14:02 ID:mB6U7ole
>>443
そりゃマイクロOS上で走る専用の実行形式じゃないとだめだろ(ソケット版はともかく)

もといCOFF形式ならモジュールレベルではそのまま使えそうだが。
448MACオタ:2008/09/11(木) 23:14:32 ID:f9LWhyHQ
おりしもEETimesによると、富士通の半導体子会社もどこかのプロセス連合への加入を検討
しているとか。。。
http://www.eetimes.com/news/semi/showArticle.jhtml?articleID=210600995
  -------------------------
  In an interview with the news agency, Haruki Okada, the president of Fujitsu Microelectronics,
  said: "From co-development to business integration, there are some potential ways for us to
  go. We are keeping the door open on all options, and our talks have not got into specifics yet."
  -------------------------
449Socket774:2008/09/12(金) 00:27:13 ID:QFv5fbnf
それ、元ネタはロイターだろ?
http://ascii.jp/elem/000/000/170/170791/
450ピンサロオタ:2008/09/12(金) 06:06:01 ID:54gBT9wS
過去ログを一切合財なくして傷心のピンサロオタです。
でもMACオタの無学と用語スキーぶりは期待にたがわないね。

>>410 >>427
で、翻訳氏とピンサロは「OoOの本質は逆依存の解消」と主張している。
逆依存を解消するメカニズムには、レジスタリネームと、スカウトスレッド+deferred queue方式がある。
前者はWARハザードを起こすペアの依存「先」の命令の出力レジスタをリネームする。
後者はWARハザードを起こすペアの依存「元」の命令のオペランドを読み出し、命令と一緒にdeferred queueにつっこむ。

つまり、
「OoO実行は逆依存の解消が本質で、実装としてはレジスタリネーム以外にも、スカウト+queueもある」

ところがMACオタは

>>445
>   -------------------
>   >リネームレジスタが無いとOoOEの条件を満たさない
>   そんなん誰かいったか?
>   -------------------
> >>427
>   ===================
>   OOO実行は逆依存の解消の方が本質。
>   ===================

これが反論になっていると思っている(笑)
用語にこだわるあまりに、もとから怪しい論理まで破綻してしまったようだ。
451Socket774:2008/09/12(金) 09:24:00 ID:WS/YdCnd
AMDはx86版のARMにでもなりたいのか、ファブを分離するっていってるし、
結果的にPC市場の勝利者はintelになっちゃう。

これって今後の双方のアーキテクチャにモロ影響を与えると思うんだけど
だれか予想できる?
452ピンサロオタ:2008/09/12(金) 09:32:02 ID:54gBT9wS
>>427
大変わかりにくい記述だったが、つまりこういうこと

Rockでは、メインスレッドがキャッシュミスした命令(に依存した命令)Aで止まってスカウトスレッドが起動する
スカウトスレッドはAに依存した命令Bは実行できないので、「Bのオペランドを読み出してコピーし、Bと一緒に」deferred queueに放り込む
スカウトスレッドはBの逆依存のsinkになっていた命令Cは、Bより先に実行できる
なぜなら、Cが書き込むレジスタが持つ古い値は、Bと一緒にdeferred queueに入っているので、Bの実行にはそちらの値を参照すればよい
→つまり、逆依存を解消して実行するOoOそのもの

ただし逆依存が解消されるのは、deferred queue内の命令と、スカウトスレッドが実行する命令の間だけであって、
queue内やスカウトスレッド内どうしの命令間では、逆依存の解消はしていないことに注意

これが、「Rockが逆依存を解消し並列に命令を供給できるのが二箇所」の意味

通常のOoOマシンでは、命令ウィンドウ内には逆依存が解消された状態で格納されているので、ここから任意の命令を取ってこれる


たしかに>>372の記述じゃわからんな
453,,・´∀`・,,)っ:2008/09/12(金) 13:31:11 ID:atzIjin7
>>451
もっと消極的な理由だよ。K8好調期にFab作りまくったけどCore2以降自社CPUの出荷が落ち込み
製造ライン止まってるか、あるいは赤値で売り叩かざるを得ない状況だから。

言ってみればバブル期の過剰投資のつけが回ってきた感じかな?

手放す理由は単にTSMCとかに委託した方が自社以上の最先端プロセスが使えて、
かつ生産量の調整がしやすくリスクが少ないだけ。

仮にも組み込みでトップクラスのシェアを誇るARMと一緒にすべきではない。
454Socket774:2008/09/12(金) 14:53:49 ID:2DPLH2ng
創業者追放ですか。
455Socket774:2008/09/12(金) 17:10:25 ID:xfxFGOXW
単独でプロセスの微細化に投資するよりも、他所と一緒にやった方がマシって事?
456,,・´∀`・,,)っ:2008/09/12(金) 21:14:41 ID:atzIjin7
ましというか何というか、リーク電流問題が顕在化する前と今とでは微細化にかかるコストの事情が全く違うのは一つの事実かと。

AMDの場合IBMと連合組んでもああいうことになったのは、
Intelが衰退してAMD64がx86市場を掌握するという希望的観測のもとに本来の立ち位置に見合わない投資を重ねたから。
まあ根本的にはIntelと張り合い続けるには体力が違いすぎたし早かれ遅かれこうなっただろうけどね。

Intel戦略以外もいろいろ打算的だったのも事実。
もともとはGPUの製造もAMD自社Fabでまかなうつもりだったのが、
GPUのプロセスルールのほうがCPUを追い越して支援どころか足枷になっちゃった
457Socket774:2008/09/12(金) 21:24:51 ID:j1sPfHVc
IBMが「AMDはプロセスルールの進化についていけなくなる」と予想した、という記事が数年前にあったっけ

32nmプロセスより先を担うのは、どのみち厳しかったと思う
458Socket774:2008/09/12(金) 21:50:47 ID:3hFWmupK
25億jで建てた自社fabがある以上、
そこで作る石は競争力を持たなくてはならない。
より小さなダイで他社より性能優位なチップを用意した上で、
フル回転で造って造って売って売って設備を償却する。
その造るチップとはSOIとがっぷり四つであるK8やK10。
ATIのバルクCMOSチップではなかったのだ。

MeyeがATI買収=54億jのギャンプルに後悔の念を抱くのは無理もない。
その金の5分の1でもK10開発に上乗せしていれば・・・・
・・・・いや、上乗せしたところでどうにもならんか。
だんごの言う通り自社fab自体、体力に見合わない投資だった。
459MACオタ:2008/09/12(金) 22:49:09 ID:pcGcDMcc
>>458
  -------------------
  自社fab自体、体力に見合わない投資だった。
  -------------------
昨今の経営の誤りわ別にして"Only real men have fabs."ってのわ創業者Jerry Sanders以来の
社是す。
http://pc.watch.impress.co.jp/docs/2006/0427/kaigai265.htm
460Socket774:2008/09/12(金) 23:07:26 ID:BCdAshiI
男はでっかいfabをもてってね
461Socket774:2008/09/12(金) 23:42:08 ID:vecUiVpU
がっぷり四つの使い方に違和感を覚える
462Socket774:2008/09/13(土) 00:31:22 ID:2CuXM7V9
難しい判断だ…

自社でfabを持たないリスクと、持つリスクと、両方ある訳だから。
PC向けCPUなら、ある程度の自社fab持ってないとどうにもならんだろ…。
463,,・´∀`・,,)っ:2008/09/13(土) 02:04:15 ID:vjaTGNlz
文字通りのIP屋やるんじゃね?
PC?どうだかね。

Intelの強制分割を狙った自爆テロの線も見えてきた。
464ふぁCKオタ:2008/09/13(土) 04:45:01 ID:l1PLlKys
最近の評価ではfabレス側の惨敗だったと記憶しているが
465,,・´∀`・,,)っ:2008/09/13(土) 11:03:29 ID:vjaTGNlz
それは周回遅れの(=枯れた)プロセスルールが現役の組込CPUだからこそ言えることでは?

AMDは同じ命令セットアーキテクチャの市場でIntelと対抗し続ける唯一のメーカー。
2年周期で新プロセスルールに移行していくのは体力的にどうよって話。

金を作んなくちゃならなくなって売るもんないから身を切り売りしました
が正解かな。
466,,・´∀`・,,)っ:2008/09/13(土) 11:33:57 ID:vjaTGNlz
ところで*fence命令の効果はAtomでは単にNOPだぞオイ
レイテンシ1とかwww
インオーダのアーキテクチャでは順序保証専用命令などそもそも不要らしいな。
つか、スループット見るにWCプロトコルを使う命令もL1をスルーしてないんじゃないかという疑惑。
Larrabee的にも「最低プライオリティでストア」でいけるな。
467MACオタ>団子 さん:2008/09/13(土) 12:03:12 ID:Vz/5TNkE
>>466
  ------------------
  ところで*fence命令の効果はAtomでは単にNOPだぞオイ
  レイテンシ1とかwww
  ------------------
自分が読んだモノを皆が読んでいると思い込んで書き込むから、唐突でキチガイじみて見えるす。
別に珍しいソースでも無いすから、ソースくらい示すべきかと。
http://www.freeweb.hu/instlatx64/InstLat_GenuineIntel00106c2_Atom_Silverthorne_1600MHz.txt
468MACオタ@補足:2008/09/13(土) 12:04:12 ID:Vz/5TNkE
ところで単純にNOPだと、この計測法でわ0.5サイクルということになるのでわ?
469,,・´∀`・,,)っ:2008/09/13(土) 12:13:52 ID:vjaTGNlz
mfence=NOP×2だよ

ところでそれだけで解るのか?
メモリロード・ストアの間にフェンスを挟んだ結果ではないぞ。
机上論で説明できるのならやってみてくれ。
ちなみに俺には計測環境があるんだな。

つまるところそんな資料は役に立たない。
だからお前は脳内なんだよ。
470MACオタ>団子 さん:2008/09/13(土) 12:23:06 ID:Vz/5TNkE
>>469
  -----------------
  ちなみに俺には計測環境があるんだな。
  -----------------
実測なら実測と書くことが重要す。『測定条件も併せて書き込めば』、非常に有用なデータす。
471MACオタ@補足:2008/09/13(土) 12:25:44 ID:Vz/5TNkE
「測定結果」、「リファレンスのある情報」、「考察(またわ妄想)」を区別して書かないから、
まともな科学教育を受けてないという疑惑を持たれるのだと思うす。
472,,・´∀`・,,)っ:2008/09/13(土) 12:27:52 ID:vjaTGNlz
同じ命令を連続投入してる以上はメモリアクセスは伴わないので
フェンス命令の本来の作用にたいする計測としては意味をなさない。
文字通りNOPを1,2個投入してるのと同じことになるな。

答えの合否はともかく導出過程が間違い。
473,,・´∀`・,,)っ:2008/09/13(土) 12:29:53 ID:vjaTGNlz
>>471
自己紹介乙


同じ命令を投入するだけのベンチで何が計測できるかそもそもお前は理解してないんだよ。低脳
474MACオタ:2008/09/13(土) 12:35:12 ID:Vz/5TNkE
>>472
FENCE命令の話とわ別すけど、instlatx64の資料わ、命令のペアリングを含めて、
広範囲に調べている方だと思うす。

ところで「インオーダーなので無条件にNOP扱い」ということなら、命令の組み合わせわ関係無い
のでわ?
475,,・´∀`・,,)っ:2008/09/13(土) 12:37:15 ID:vjaTGNlz
ちなみに、メモリアクセスの間にフェンス命令を挟むのと挟まないのとで、それぞれ掛かったクロックの差分をとるだけだよ。
エベレストはそういう計測はやってない。

メモリフェンス命令はメモリアクセスでないものに対する保証は原則的に不要なのだから
メモリフェンスを並べてもメモリアクセス保証にかかるクロックの計測としては何の意味もないんだよ。
476,,・´∀`・,,)っ:2008/09/13(土) 12:45:29 ID:vjaTGNlz
>>474
残念だがやってない。ベンチプログラムの逆アセンブルでもやってみたか?

やってないだろ?何も知らないからこそそんな迷言が吐ける。

「NOP扱い」云々は俺の計測に基づく推論だろ?

そのベンチが何をやってるかも理解せずに他人の出した数字だけで結論づけるのは危険だな。
それこそ科学教育を受けた人間のやることではない。だからお前は脳内なんだよ。
477MACオタ>団子 さん:2008/09/13(土) 12:47:19 ID:Vz/5TNkE
>>475
間違ったことを書いている訳じゃないので、単なるコメントす。
  ---------------------
  メモリアクセス保証にかかるクロックの計測
  ---------------------
これわシステム依存の話で、ある命令の「効果」を測定していることになるす。
単純にプロセッサコアのみに依存する、命令の「オーバーヘッド」を測定する資料があっても良いか
と思うす。
478MACオタ>団子 さん:2008/09/13(土) 12:52:34 ID:Vz/5TNkE
>>476
  ----------------
  「NOP扱い」云々は俺の計測に基づく推論だろ?
  ----------------
その推論について質問しているだけなんすけど。。。

私わあなたのお母さんじゃ無いすから、あなたに全幅の信頼をおいている訳じゃ無いす。
匿名掲示板に限らず、そういった一般の聴衆を納得させるにわ推論に至るまでに確かめた事項
と、論理的な筋道を示す必要があるす。
479MACオタ:2008/09/13(土) 12:54:41 ID:Vz/5TNkE
余談すけど、intelのサイトにこんなページとサンプルコードがあるす。
http://softwarecommunity.intel.com/articles/eng/2322.htm
480,,・´∀`・,,)っ:2008/09/13(土) 12:56:29 ID:vjaTGNlz
詭弁だな
まあエベレストがやってるのが「オーバーヘッドの計測」でしかないのは正しいが。
で、Atomにおけるメモリフェンスに伴うクロック遅延はオーバーヘッドだけ、
というのは実際にメモリアクセス間に挟んでみないと判断できない。
481,,・´∀`・,,)っ:2008/09/13(土) 13:00:58 ID:vjaTGNlz
>>479
ずいぶん懐かしいな。ちなみに俺はそれ数年前に知ってたぞ。
でもその計測法じゃやっぱりメモリフェンス命令はオーバーヘッドしか計測できないね。

必死なのは理解したよ。やっぱり根本的にわかってない。
482,,・´∀`・,,)っ:2008/09/13(土) 13:15:33 ID:vjaTGNlz
たとえば、これで計測してみてくれよ。

movntdq [edx],xmm0
mfence
movntdq [edx],xmm0
mfence
movntdq [edx],xmm0
mfence
movntdq [edx],xmm0
mfence
movntdq [edx+16],xmm0




movntdq単体とのスループットクロックの差分をとればそれが実際に順序保証にかかる遅延サイクル数だ。

お前みたいに他人の記事を何をやってるかも理解せずに鵜呑みにするのは科学ではない。
483Socket774:2008/09/13(土) 13:52:46 ID:uky/oORT
edxをI/O領域に設定して、デバイスが永遠にアクノリッジ返さないようにして計測kしてみてよwwwwww
484,,・´∀`・,,)っ:2008/09/13(土) 13:58:54 ID:vjaTGNlz
どのみち直接のストア先はキャッシュだから同じじゃね?
ACKなんてそもそも見てないよ。
485,,・´∀`・,,)っ:2008/09/13(土) 14:09:48 ID:vjaTGNlz
命令の順序保証は書き込みそのものの保証ではないんだな。

ところでSMBでネットワーク共有ドライブLANが停滞してたりすると
「遅延書き込みデータの消失」なんてダイアログをたまに目にするよね。
アレ、キャッシュしてから遅延書き込みしてるからだぜ。
NFSだってUDPベースなんだぜ?
結局I/Oに対する保証レベルはそんなもんだ。
486MACオタ>団子 さん:2008/09/13(土) 14:48:27 ID:Vz/5TNkE
>>485
古臭い知識の訂正だけ。
  -------------------
  NFSだってUDPベースなんだぜ?
  -------------------
http://www.microsoft.com/japan/technet/windowsserver/2008/library/15ae8ffe-0f15-4d78-abac-bb0c13540979.mspx?mfr=true
487,,・´∀`・,,)っ:2008/09/13(土) 15:41:39 ID:vjaTGNlz
確かにNFSv2以降はTCPも「選べる」よ。
しかし相変わらず本質が見えてないね。
488Socket774:2008/09/13(土) 15:57:37 ID:uky/oORT
フェンスを知らずに空ループで待つ奴はトラ技で見たことがあるが
I/O領域をキャッシャブルにする奴は初めて見た
489,,・´∀`・,,)っ:2008/09/13(土) 16:58:12 ID:vjaTGNlz
どのレベルでのIOなのかは知らないがカーネルモードでSSEは非常識だし
ユーザーモードで文字通りのI/O領域アクセスとかバカですか?
490,,・´∀`・,,)っ:2008/09/13(土) 17:02:45 ID:vjaTGNlz
何でもいいから計測結果貼ってみてよ。ACKが来るまで待機とか聞いたことがない。
491Socket774:2008/09/13(土) 21:07:26 ID:yFHLj7qb
それはそれとして、in-order/out-of-orderとオーダリングルールの
強い/弱いには直接の関連は無いぞよ。せっかく、DEC WRLのチュートリアル
紹介したんだから勉強してして。

ちなみに、x86のI/Oアクセスとfenceは関係ない可能性が高いと思う、
なぜかといふと、x86のI/Oメモリモデルがfenceの追加以前に確立したもの
をずっと踏襲している可能性が高いと思うから。

これは単なる予想、x86には詳しくないから確信は無し。
492Socket774:2008/09/13(土) 21:12:20 ID:yFHLj7qb
>>491
と思ったが、チュートリアルの紹介を出先から書き込もうとしてリジェクト
されてたような気もするので、改めて紹介

http://www.hpl.hp.com/techreports/Compaq-DEC/WRL-95-7.pdf
493Socket774:2008/09/13(土) 23:05:17 ID:zwUPnoj1
>>491
非SSEのメモリI/OアクセスはPCだからフェンスは関係ないが
SSEでメモリI/OアクセスするならWCなのでフェンス必要
特殊な条件を設けてなければね
494Socket774:2008/09/14(日) 01:38:45 ID:GLWgQjvG
WC(というかキャッシュスルー)なのはNTかMASKの付く一部のストア命令だけだぜ。
しかも「WCプロトコル」の存在すら実装依存だぜ。

インオーダで非ライトコンバインで実行ならただのNOP扱いで構わない。
495Socket774:2008/09/14(日) 01:42:37 ID:1CSkkt2o
>>494
Weak Consistencyのほう
Write Combineじゃない

PC=Processor Consistency
P6あたりで定義されたんじゃなかったかな
496Socket774:2008/09/14(日) 02:45:25 ID:emJNdYm7
storeスルーは苦し紛れだけれど
数年前の技術としては妥協点だった
分かってやれよ
オレは納得していないけれども
497Socket774:2008/09/14(日) 14:12:01 ID:gEqI4GSB
国産スパコンが米国で殿堂入り=気象予報や商用に活
http://headlines.yahoo.co.jp/hl?a=20080913-00000099-jij-biz
498Socket774:2008/09/14(日) 15:20:34 ID:lqg0XJ2l
http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AC%E3%82%A4%E3%82%B9%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3

Wikiのプレステ紹介より抜粋
>プレイステーションにCPUとして採用された当時のMIPSアーキテクチャは、
>組み込みやゲームコンソールにはメモリ効率が悪く、CPU自体の処理能力
>も同クロックの「80386」程度の速度であった。

MIPS2000でも486並みの性能があるんだけど、、、
499Socket774:2008/09/14(日) 15:55:53 ID:KsG4ehNf
>>497
NWTか、懐かしいなぁ。

>>493
プロセッサアーキテクチャのメモリモデルはアクセス先とは独立、という
ことであれば、一つの見識であるのう。

Larrabeeのキャッシュコヒーレンシとメモリモデルについて意見ある?

>>498
あいたたた
500Socket774:2008/09/14(日) 17:37:18 ID:nmmjMgB1
今はMIPSって無いの?
501Socket774:2008/09/14(日) 17:52:22 ID:3dkXfJEZ
>>499
プロセッサの外部がある限り
メモリアクセスの一貫性は必要
どう保証するかはまた別の話
502Socket774:2008/09/14(日) 18:02:22 ID:UpdgHtOt
>>500
つ RMI
つ Cavium
つ SiCoretex
つ PSP
503Socket774:2008/09/14(日) 19:02:54 ID:KsG4ehNf
>>501
一貫性は必要、でも、すべてのアクセス先に関して同一モデルである必要は
ないぞ。

あ、これは>>493に対する反論ってわけじゃないぞ。

まあ、SSEアクセスでI/Oデバイス側のデータバッファにwrite gathering
バッファ介して書き込んで、そのあとメモリマップI/Oへの書き込みで通知
みたいな状況を考えるとfenceを想定したほうが自然だし。
504,,・´∀`・,,)っ:2008/09/14(日) 20:47:54 ID:GLWgQjvG
「通知」なんて見てねーよ。

コアを出たらあとはFSBなりメモリコントローラーが順序保証するわけだからね。
プロトコルが違うのも所詮はプラットフォーム内で閉じた話。

メモリフェンス命令による遅延クロック計測したことある?
いちいちACK信号なんて待ってたら数クロックですむ筈がないよ
505,,・´∀`・,,)っ:2008/09/14(日) 20:55:51 ID:GLWgQjvG
ACKを待つとすればストアレイテンシ+ロードレイテンシ分は最低でもかかるわけだが
506,,・´∀`・,,)っ:2008/09/14(日) 22:01:52 ID:GLWgQjvG
E8500な俺のマシンで実験

ストア後にsfence命令を挟んだ際の遅延クロック数
通常mov 20clk
movnt* 約130clk

20clkの方はパイプライン段数分+ストアバッファリング分で大体計算はあう。
一方で、movntは実メモリに読み書きのACKまで待機にしてはサイクル数が短すぎる。
ロードレイテンシ計測ツールによると実メモリのロードレイテンシは約280clk(90ns)

どうみても計算あわないよ。

嘘つきは泥棒の始まり。
507Socket774:2008/09/14(日) 22:38:02 ID:KsG4ehNf
うわー、噛み合ってねー

もしかして、>>503の「通知」をメモリシステムからのAcknowledgeのこと
だと解釈したのか?これは、I/Oデバイスへのデータ書き込みとI/Oデバイス
へのコントロール書き込み(こっちが「通知」)の間にsfenceが必要かも、
という話だぞ。前にも書いてるが、俺は正解を知らない。

ところで、sfenceの実装のための「ACK」待ちにストアレイテンシ+ロード
レイテンシが必要という根拠はなんだ?それとも、計測した命令シーケンス
依存でロードレイテンシが顕在化するという話をしているのか?

それから、「ストアレイテンシ」を明確に定義できるか?

ついでに、lfenceは「ロードレイテンシ」分待つ必要があるか?
508,,・´∀`・,,)っ:2008/09/14(日) 22:42:19 ID:GLWgQjvG
ま、結局おまいらみんなMACヲタレベルなんだよ。
簡単な実験すれば解る間違いを平気で言ってのける。
自分の机上論だけに執着して現実を見ようとしない。
509,,・´∀`・,,)っ:2008/09/14(日) 22:44:49 ID:GLWgQjvG
だから通知なんてそもそも待ってないんだって。
fenceは順序保証であって完了保証ではない。
510Socket774:2008/09/14(日) 22:59:13 ID:KsG4ehNf
>>509
じゃ、別の質問、>>506で観測された待ち時間増大は何だと思う?

それはそれとして、「fenceは順序保証であって完了保証ではない」は
正解だな。
511,,・´∀`・,,)っ:2008/09/14(日) 23:03:44 ID:GLWgQjvG
メインメモリなりI/Oなりはメモリコントローラ・I/Oコントローラの仕事。
Core 2であればFSBまでのアクセス順の順序保証で十分なんだよ。

そして、最初からアクセス順が保証されてるなら何もする必要はない。
512,,・´∀`・,,)っ:2008/09/14(日) 23:14:54 ID:GLWgQjvG
通常ストアのアクセス先はL1だがMOVNT*はFSBだから、かな。>>110

Atomマシンは仕事先での借り物であまりいじれないので、はっきりとした分析はできん。
そのうち俺専用機買うけど。
513Socket774:2008/09/14(日) 23:34:48 ID:1CSkkt2o
>>510
> それはそれとして、「fenceは順序保証であって完了保証ではない」は

無論その通りなのだが、プロセッサ内で順序保証したところで、最初のメモリアクセスが完了しないことには
無限にメモリアクセスリクエストを貯めこんでしまうはめになる

もちろん団子はきちんと理解してそんな細かい話をしているわけではない
514Socket774:2008/09/14(日) 23:48:55 ID:KsG4ehNf
>>512
FSBかどうかはともかくとして、どこかのリクエストキューに入るか何か
して順序保障が可能な状態になるのを待った、と考えるのが妥当だと思う。

ならば、これを実装するのに(プロセッサコアのwrite bufferより外の)
メモリシステム側から何らかのAcknowledgeを受け取るのを待つというのは
自然なやりかたなんじゃないかね。

実際のところどうなっているのかは知らんが。
515Socket774:2008/09/15(月) 00:18:09 ID:5VIV5SLv
>>513
うーん微妙な書き込みだなぁ。とりあえず>>492で紹介したやつ、じっくり
読んでよ。メモリコンシステンシ周りの事情が13年前とちっとも変ってない
ってのが分かる。

リサーチ的な進展はあったんだが、プロセッサのハード実装には結びついて
ないんだよね。
516,,・´∀`・,,)っ-○●◎:2008/09/15(月) 00:26:27 ID:xI1UvoJV
>>514
メモリシステムからのackを待ってないのは>>506より明らかなんだが。
ロードで300クロック近くかかってるのにストア完了+ackで130clkで
すむような魔法はないよ

FSBはパケットレベルではシリアル化されてるから、CPUコア側からは
FSBまでの順序保障でよく、それより下位のメモリアクセスの読み書き保障は
CPUがしてやる必要は無いんだ。

逆に「確実な読み書き保障」が必要ってことになると、キャッシュの概念すら成立しない。
517Socket774:2008/09/15(月) 00:49:19 ID:2LVdHhQY
>>515
それはその当時に読んでいるし、レズリー・ランポートの論文はもっと前に読んでいますが何か
あれはメモリオーダリングの本質を書いてあるので、13年前と変わらないのは当然でしょう

KsG4ehNfはちょっと実装にふりまわされすぎ

団子やMACオタの相手をしていると調子が狂うけど
518,,・´∀`・,,)っ-○●◎:2008/09/15(月) 01:05:21 ID:xI1UvoJV
逆に20clkの内訳でも考えようか。
Penrynのパイプラインのハザードパスは14か15くらいだった気がするんだが。


ところでLarrabeeのL1はスレッド間で共有するのかな?
Pentium 4のHTは2分割するモデルが採用されたが。
いわば「再構成可能な独立キャッシュ」
519Socket774:2008/09/15(月) 01:11:48 ID:2LVdHhQY
>>499
PC前提の超レガシーなデバイスドライバをそのまま動かす必要がある場合なんかは、
普段はWCで、マップしたページのみPCにする、といった実装は可能だし有意義でしょう

しかしそれは特殊な例で、一般的には、「ある」プロセッサが外部にどう見せるか、なので
相手が誰でも関係ないでしょう

> Larrabeeのキャッシュコヒーレンシとメモリモデルについて意見ある?

ファンシーな機構がついてるとうれしいな
順序制御すべき一連のメモリアクセスにIDをふっておいて、それとは無関係のアクセスをブロックしないようにするとか
520,,・´∀`・,,)っ-○●◎:2008/09/15(月) 01:20:04 ID:xI1UvoJV
NehalemではFSBが近くなるからフェンス命令での待機時間も短くなることが期待できるんだが。


> Larrabeeのキャッシュコヒーレンシとメモリモデルについて意見ある?

何度もいってることだがmovnt*はキャッシュプライオリティモデルで「最低」に位置づければいい。
目的は「キャッシュの汚染を最小限にすること」なので
キャッシュコントローラの作用でさっさとパージされてしまうなら
「本物の」ライトコンバインプロトコルを用いなくても構わないわけだ。

#もちろんmovntを通常のストアと同じように扱う実装があっても構わない。
#それはそれで汚染は最小限だからだ。
521Socket774:2008/09/15(月) 01:23:48 ID:2LVdHhQY
>>519
例えば、キャッシュラインの排他的なオーナーシップを確保するロード命令と開放するストア命令といったものは、
簡単なロックを実現でき、コヒーレントキャッシュと親和性も高いんではないか
522Socket774:2008/09/15(月) 01:27:07 ID:2LVdHhQY
>>521
共有データが1ラインに収まらない場合は、上記の命令でサンドイッチすれば、
領域IDつきacquire/releaseみたいなものが実現できるかな
523Socket774:2008/09/15(月) 02:10:01 ID:5VIV5SLv
あ、なんだか盛り上がってきた、嬉しいなぁ

>>516
メモリシステムからのAckを待って、なおかつメモリアクセスレイテンシより
待ち時間が短くなるケースは存在するよ。たとえば、一般的に用いられてい
るブロードキャストベースのスヌーププロトコルでは、アドレスのブロード
キャストとキャッシュステータスの確認が完了した時点で、(読み出し、書き
込みデータの転送完了という意味での)メモリアクセス完了より早いタイミン
グで、SMPシステムグローバルなメモリアクセスの順序が確定する。

まあ、あくまでも実装依存な話だけどね。
524Socket774:2008/09/15(月) 02:18:11 ID:5VIV5SLv
>>519
> しかしそれは特殊な例で、一般的には、「ある」プロセッサが外部にどう
> 見せるか、なので相手が誰でも関係ないでしょう

たとえば、PowerPCだと、I/O空間はNon Cacheable & Guardedというページ
ステータスをつけること、という規定がなされていて、これをやるとstore
の実行順序が保障されるという副作用がついてきて、通常のアクセスより厳
しめなオーダリングになったりする。

こんなこともあるからレガシパワーってのは侮れんよね。
525,,・´∀`・,,)っ-○●◎:2008/09/15(月) 02:35:54 ID:xI1UvoJV
FSBまでのアクセスクロック数っていくらだったか正確に取れる方法あるけ?
Core 2はRDTSCがFSBから取得だからRDTSCそのもののオーバーヘッドを計れば
いいのけ?
526Socket774:2008/09/15(月) 02:37:10 ID:2LVdHhQY
>>522
ロックを欲しがっている他のプロセッサをディレクトリに登録しておいて、開放時に渡す

ロックを持ったまま例外が起きたら、ロックを開放するとともにディレクトリをたどって、待っていた連中にも例外を発生させる
スピンロック中にOSから例外上げられるのと同じ
527Socket774:2008/09/15(月) 04:40:18 ID:psSIFKRt
528MACオタ:2008/09/17(水) 06:08:46 ID:riKMfQaM
既に噂に上っていた通り、Appleに買収されたP.A.Semiのスタッフわ、次世代携帯機器用の
ARMコアを開発中とのことす。
http://bits.blogs.nytimes.com/2008/09/15/new-iphone-chip-will-cost-an-arm-and-a-missile/
  ----------------------
  Wei-han Lien, the senior manager of Apple’s chip team, dished out the morsel on LinkedIn,
  saying he’s busy at work crafting an ARM processor for the next-generation iPhone.
  ----------------------
関連情報わ、この辺す。 http://pc11.2ch.net/test/read.cgi/jisaku/1214999146/89-92

ところで、このNY Timesの記事ってAshlee Vance記者が書いてるすけど、The Registerから移籍した
すかね?
529MACオタ:2008/09/17(水) 06:17:47 ID:riKMfQaM
記者の移籍と言えば、ITJungleで良質のIBM系記事を書いていたTimothy Prickett Morgan記者が、
The Registerで記事書いているす。
NECが米国のクラスタ屋Approにベクトル機を含む製品を提供するとか。
http://www.theregister.co.uk/2008/09/16/appro_nec_deal/
  ---------------------------
  Under a partnership announced today, Appro is teaming up with NEC's HPC division to have
  it sell Appro gear alongside its own SX-9 vector supercomputers, which have a respectable
  peak processing capacity of 839 teraflops, and its LX Series of X64 clusters that run Linux
  or Windows and are meshed together using InfiniBand interconnects. (NEC supports both Intel
  and AMD chips in these LX clusters, while the SX-9 machines use a home-grown vector
  engine - one of the remaining few left on the market. Cray also still sells vector boxes).
  ---------------------------
CrayのWintel(XeonとWindows HPC Server 2008)採用デスクサイド・スーパーコンピュータ CX1とか。
http://www.theregister.co.uk/2008/09/16/cray_baby_super/
  ---------------------------
  The blade chassis has eight slots and runs off normal wall power, not the 240-volt power
  required for big iron in data centers. The CC48 blade has a single Xeon socket and lots of
  memory expansion for memory-intensive HPC workloads, while the CC54 blade has two
  Xeon slots and a little less memory.
  ---------------------------
530Socket774:2008/09/17(水) 07:34:23 ID:E0sLlPs2
OrionのDS-96が脳裏をよぎった。
531,,・´∀`・,,)っ:2008/09/17(水) 09:04:47 ID:ivB8IRfp
どうもAtomのlfenceはNOP扱いで確定だわ。全くブロッキング作用が見られない。
ま、デコーダがComplex・Simple各1基しかないのにレイテンシ・スループット0.5の時点で
ComplexでもSimpleでもデコードできることを意味するわけだがな。

逆に、Complexデコーダパス縛りのmfence/sfenceはマイクロコードROMを参照する。かも

また、キャッシュの調停にFSBを経由するヅアルコア版では動きが変わる可能性がある
・・・かもしれないね
532Socket774:2008/09/17(水) 23:37:05 ID:je8XrKsd
>>529
どっちかっつーとApproがSX-9を売るって話じゃなくて
NECがApproのクラスタを売るって話じゃないの?
533MACオタ:2008/09/18(木) 04:02:22 ID:rj57PdEB
Morgan記者のThe Register移籍についてわ、ITJungleの方に告知があったす。
http://www.itjungle.com/tfh/tfh091508-story06.html
  ------------------------
  Effective today, September 15, I am taking a position as Systems Editor over at British IT
  publisher The Register, which just so happened to be looking for a smart-alek server and
  operating system editor on the same week that I was looking for a way to better capitalize
  on the substantial amount of writing I do in the Linux and Unix areas.
  ------------------------

>>532 さん
訂正感謝するす。Morgan記者がThe Registerで記事を書くようになったという話の方が目的だった
ので、斜め読みでいい加減に書いてしまったす。
534Socket774:2008/09/18(木) 08:11:14 ID:U1SsH66m
>>531
lfenceは if(*A == 0) {C = *B;} みたいなケースでAからのデータ読み出し
が確定するまえにBのデータが読み出されるようなことが無いよう、保証
するものだからね。

in-orderプロセッサでは、普通、Aの確定を待たずに分岐後の命令の投機的
実行をガンガン進めたりしないからnop扱いでいいんじゃないかな。
535Socket774:2008/09/18(木) 12:49:02 ID:3ta0mjSZ
>>534
全然わかってない

そんな仮定や特定の実装とも関係ない
536Socket774:2008/09/18(木) 22:29:34 ID:U1SsH66m
>>535
うふふ、じゃlfenceをnopじゃなく実装する必要があるケースを教えてあげ
やう。

分岐後の命令を投機的実行するプロセッサでは、Aからの読み出しとBからの
読み出しが同時にメモリに投げられた状態が起こりえて、なんらかのはずみ
でBが先に確定しちゃったとしたら、*Aが更新される前で、*Bも更新されて
ない時の値を読んじゃうことがあり得る。ほんとだよ。

だいたい、オーダリングルールの実装のオーバーヘッドがどんなふうに生ず
るなんて、おもいっきり実装依存な話なんだからさぁ。

あ、それから、sfenceがnopみたいに見える実装ってのもありえるっつーか、
PCやSCなプロセッサはそんなもんいらんし。
537Socket774:2008/09/18(木) 22:58:54 ID:ThWPPgOI
>>536
あんた>>534なの?

> in-orderプロセッサでは、普通、Aの確定を待たずに分岐後の命令の投機的
> 実行をガンガン進めたりしないからnop扱いでいいんじゃないかな。

あんたの言う↓とおり、nop扱い↑ではダメなんだよ

> うふふ、じゃlfenceをnopじゃなく実装する必要があるケースを教えてあげやう。

インオーダーとか投機実行なんて何の関係もない
WCならフェンスは必要、PCやSCなら不要というだけ

Atomは定義はWCだと思うが、実装してるのかどれかなんて知るかい
538Socket774:2008/09/18(木) 23:00:40 ID:ThWPPgOI
>>536
ぜんぜん読んでなかったわ
あんたの出している例なんて完全にナンセンスだから
分岐とか本当に何の関係もないから
539Socket774:2008/09/18(木) 23:10:29 ID:ThWPPgOI
A番地を読むと銃に弾を込め、B番地を読むと引き金を引くシステムがあるとする
SCやPCのプロセッサなら、A番地を読んで続けてB番地を読めばOK
WCのプロセッサなら、ロードの順番が入れ替わらないように、
A番地を読む、lfence、B番地を読む、にする必要がある
540Socket774:2008/09/18(木) 23:11:25 ID:ThWPPgOI
な、分岐も投機もインオーダーも何の関係もないだろ?
541Socket774:2008/09/18(木) 23:18:57 ID:ThWPPgOI
>>534の例は、分岐命令がロードAにデータ依存、ロードBが分岐命令に制御依存しているから、
ロードBはロードAにがっちり依存しているわけ
メモリコンシステンシーモデルというのは、依存関係のあるなし関係なしに定義されるから、
534は条件を限定しすぎてナンセンス
542534とか536とか:2008/09/18(木) 23:37:38 ID:U1SsH66m
>>541
こりゃこりゃ、投機的実行ってのはさ、ひとつのスレッドを高速実行するた
めに、実行するかしないか確定していない命令シーケンスも実行しちゃう
ってことなんだから、「ロードBはロードAにがっちり依存しているわけ」
とか言い切っちゃっていいのかなーいいのかなー

よく考えてみよう!

さらにデータスペキュレーションとか入っちゃったらどうする?
543Socket774:2008/09/19(金) 00:01:08 ID:ThWPPgOI
>>542
学生か?

> 「ロードBはロードAにがっちり依存しているわけ」とか言い切っちゃっていいのかなーいいのかなー

いいんだよ
セマンティクスと実装はわけて考えるように習わなかったの?

で、依存関係があってもなくてもメモリコンシステンシーモデルとは何の関係もないのは納得してくれたかな?

544534とか536とか:2008/09/19(金) 00:23:43 ID:uTCcDgm1
>>543
つーか、納得するもなにも、何も言ってないじゃない、君(^^;;;)

ちょっと先回りして確認しちゃうけど

もしかして、「依存関係があってもなくてもメモリコンシステンシモデル
とは何の関係もない」ってのは、競合書き込み、読み出しが発生したとき
にSCを維持することに結果の正しさが依存するような特殊なアルゴリズム
をサポートするためにコンシステンシモデルの概念がある、とか思ってるっ
てこと?

「シーケンシャルセマンティックス」ってどういう意味かわかる?
そもそも、コンシステンシモデルの概念が発達したのって、単一スレッド
内でのセマンティックスを維持した上で性能向上を目指すテクニックを
実装してったら、マルチスレッドで変なことが起こっちゃったってとこ
から始まってると思うがなぁ。
545Socket774:2008/09/19(金) 00:32:23 ID:8CDvH23q
>>544
もう全く意味不明
用語を並べるのはいいけど、ちゃんと理解してからにしてくれ
あとランポートの論文も読んでくれれば助かる

メモリコンシステンシーモデルというのは、
「あるプロセッサがプログラム順にメモリアクセスを実行した場合、そのプロセッサの**外部**からはどういう順序で実行されたように見えるか?」
これが全てだよ

依存も投機も何の関係もない
546,,・´∀`・,,)っ:2008/09/19(金) 00:35:34 ID:RCLHDlsQ
でだ、
インオーダならfence命令をNOP扱いできるって結局俺が言った通りなんだが。
547534とか536とか:2008/09/19(金) 00:44:14 ID:uTCcDgm1
>>546
sfenceは違ったでしょ?

それに、in-orderプロセッサでもlfenceをnop扱いできない実装が、、、、
うーむ、考えにくいかも。ごめん。

>>545
だからさぁ、「プログラム順」と「外部からの見え方」の関係が投機実行
するかしないかによって違ってくる、したがって、同じメモリモデルでも
投機実行の有無によってfenceの実装の仕方が変わってくるって言ってるん
だけど、わっかんないかなぁ。
548,,・´∀`・,,)っ:2008/09/19(金) 00:46:43 ID:RCLHDlsQ
んで、>>214-215あたりを読み返すと。
馬鹿は死ななきゃ直らない。
549Socket774:2008/09/19(金) 00:53:08 ID:8CDvH23q
>>547
なんでそんなに投機実行にこだわるわけ?
それ以外にもあらゆる要素がフェンスの実装に影響する
550,,・´∀`・,,)っ:2008/09/19(金) 00:57:49 ID:RCLHDlsQ
sfence/mfenceも事実としてSimpleデコーダではデコードできないことしか断定できないよ。
いくら実質NOPでもComplexでしかデコードできなければLat:Thpt=1:1だ。

解ったのはマイクロコードROMによって動作が替わる可能性があるということだけ。
551534とか536とか:2008/09/19(金) 01:10:44 ID:uTCcDgm1
>>549
storeと違って、loadのプログラム順的な(シーケンシャルな)セマンティク
スって、データ依存とか制御依存とかの形でプロセッサの動作を強制しちゃ
うわけさ、だから、投機実行をやらなければ、lfenceはいらないかも、とい
うことになる。

もちろん、投機実行をやらず、なおかつnopじゃないlfenceが必要なケースも
考え出せないことも無いが(lfenceとsfenceが相互作用して初めて順序付け
が成立するみたいな)、団子に言ったとおり、実用的な条件ではちょっと思
いつかんかった。

にしても>>548は言い過ぎだぞ。団子。
552Socket774:2008/09/19(金) 01:11:51 ID:8CDvH23q
シングルイシューで投機実行なし、スコアボードのみのプロセッサでも、
先行するメモリアクセスが主記憶まで出ていき、後続のメモリアクセスがキャッシュにヒットすると、
外から見える順番は入れかわるよね?
553,,・´∀`・,,)っ:2008/09/19(金) 01:15:45 ID:RCLHDlsQ
ちなみに、本物のNOP命令そのものを始め、SimpleDecoderでデコード可能な命令とインタリーブすれば並列実行できる。
両命令の現状の動きは「Complexでしかデコードできない特殊なNOP」。
554Socket774:2008/09/19(金) 01:21:47 ID:8CDvH23q
>>551
> storeと違って、loadのプログラム順的な(シーケンシャルな)セマンティク
スって、データ依存とか制御依存とかの形でプロセッサの動作を強制しちゃ
うわけさ

君はプロセッサの中でしか考えていない
プロセッサの外からどう見えるかがメモリコンシステンシーモデル
555,,・´∀`・,,)っ:2008/09/19(金) 01:29:08 ID:RCLHDlsQ
>>552
ところがAtomでは*fenceの使用有無にかかわらず、
L1上にない領域へのL/Sの度にストールする。追い越しは起こり得ない。
L/SともL1キャッシュヒット前提でメモリアクセスを直列化したパイプラインが組まれてるからだ。

ライトスルー?さてそんなもんが実装されてるかね。
異論があれば計測してみてくれよ。机上の空論は認めない。
556534とか536とか:2008/09/19(金) 01:35:47 ID:uTCcDgm1
>>552
そうくると思った、そうすると、次の質問は「それでどんな問題が発生
するの?」で、そうすると最初のロードと次のロードの間に何らかの依存
関係(制御 or データ)が無いと、順序の乱れがプログラムの挙動の変化と
して顕在化しないんではあるまいか、ということになる。
557Socket774:2008/09/19(金) 01:47:49 ID:8CDvH23q
>>556
それは上のほうに出ていたDEC WRLの論文を読んでくれると例が出てくる

プロセッサA:
X = v1
Y = v2

プロセッサB:
v1 = v2 = 0
v2 = 2
v1 = 1

というプログラムを実行する
Bはプログラム順にv2を書き込んでからv1を書きこむとする
Aもプログラム順にv1を読んでからv2を読むと、もしX = 1ならY = 2が期待される

Aがv1とv2の読み出し順序を入れ替えてしまった場合、タイミングによっては、実行結果が
X = 1, Y = 0になってしまう可能性がある

トリビアルな例ですまんが、なんとなくでもわかってもらえるとうれしい
558534とか536とか:2008/09/19(金) 02:00:16 ID:uTCcDgm1
>>557
だからさ、そういうユースケースをほんとに想定してるの?というのが疑問
なんだけど。で、>>544に戻るっと。

もっとも、>>555を見ると、そんなん関係ないぐらいコンサバな実装をしてる
とも読めるが。
559,,・´∀`・,,)っ:2008/09/19(金) 02:06:12 ID:RCLHDlsQ
Atomはストリーミング処理をやるようなCPUではそもそもない。
エンコードは高性能なCPUで、というマーケティング上の意図もあるからね。

ノンテンポラルなストア機構は未実装でMOVNTは通常ストアのエイリアスである可能性が高い。
とすれば、まさに安かろう悪かろう、Intelの思惑通りのプロセッサ。
560Socket774:2008/09/19(金) 02:09:12 ID:8CDvH23q
>>558
> だからさ、そういうユースケースをほんとに想定してるの?

万に一つの誤動作も許さないのが当然
先生に聞いてみな

Atomはあくまで可能な一実装にすぎない
Atomで一般論を語るのは誤り

Atomはどうモデルを実装しているのか?
モデルの可能な実装方式にはどういうものがあるのか?
モデルの意味論はどうなのか?
すべて異なる話
561,,・´∀`・,,)っ:2008/09/19(金) 02:11:50 ID:RCLHDlsQ
Larrabeeにおいては新命令のキャッシュのコヒーレントコントロール命令が実質的に
他のコアのスレッドから見たメモリコンシステンシモデルをゆるめる効果があると見られる。
562Socket774:2008/09/19(金) 02:13:09 ID:xFFEbDLp
安かろう悪かろうという割りには、無駄に性能が高いけどな。
個人的にはMMX 300MHz相当で問題ない。
563534とか536とか:2008/09/19(金) 02:15:36 ID:uTCcDgm1
>>558
ごめん、ちょっと、>>557の例をちゃんと見てなかった。

> Aがv1とv2の読み出し順序を入れ替えてしまった場合、タイミングによっては、実行結果が
> X = 1, Y = 0になってしまう可能性がある

それはない、ちゃんと考えてよ。
564Socket774:2008/09/19(金) 02:18:38 ID:8CDvH23q
>>563

B: v1 = v2 = 0
A: Y = v2 (0)
B: v2 = 2
B: v1 = 1
A: X = v1 (1)

のタイミングだと、X = 1, Y = 0になるよ
565Socket774:2008/09/19(金) 02:48:44 ID:uTCcDgm1
>>564
どうやって、A: Y=v2がキャッシュヒットして、A:X=V1がミスするなんて
ことが起こるのさ。

少なくともこのケースでは、Bの書き込みはAにin-orderで通知されるぞ。
Bの書き込み同士の間にはsfenceがついてるんだろ?

なんか、こういうので勝ち誇るって恥ずかしくないか?
566Socket774:2008/09/19(金) 07:01:20 ID:8CDvH23q
>>565
どうしてこう特殊な仮定を置きたがるかな

> どうやって、A: Y=v2がキャッシュヒットして、A:X=V1がミスるなんてことが起こるのさ。

キャッシュミスに拘っても仕方ないよ。

> 少なくともこのケースでは、Bの書き込みはAにin-orderで通知されるぞ。

通知って何だ?

> Bの書き込み同士の間にはsfenceがついてるんだろ?

フェンスがついているとも言ってないぞ


Bはあくまで、v2を書き込んでからv1を書き込むようにAに見えるように保証する、という最小の仮定しか置いていない
Aについても、プログラム順では先のv1の読み出しが、どういうわけかv2の読み出しに追い越された、という最小の仮定しか置いていない
567,,・´∀`・,,)っ:2008/09/19(金) 08:01:13 ID:RCLHDlsQ
>>562
それだと数百円クラスのARMにも余裕で負けないか?
ARMと比較してAtomを選ぶ価値がある
ことが前提
仮にも45nmつぎ込んでるわけだからダイサイズあたりの価格はCore2並にはもっていきたいところでしょうし。

568Socket774:2008/09/19(金) 08:35:53 ID:uTCcDgm1
>>566
それだと、>>557は、全く正常な動作で何の問題も発生していないってこと
になる。
569Socket774:2008/09/19(金) 11:41:14 ID:8CDvH23q
>>568
いや、>>557は全く正常な動作なのだが、プログラムの逐次的意味論からはありえない結果になって非常に困る
570Socket774:2008/09/19(金) 19:10:43 ID:ZfzdX7ID
Achronix、1.5GHzの内部クロック周波数を実現したFPGAを製品化
http://journal.mycom.co.jp/news/2008/09/16/038/index.html
571Socket774:2008/09/19(金) 19:14:11 ID:uTCcDgm1
>>569
うわああああ、うーん、まあいいや、いうべきことは過去に言ってるし、
繰り返しになるから何も書くまい、じゃ、元気でね(^^)/
572Socket774:2008/09/19(金) 19:51:11 ID:8CDvH23q
>>571
捨てゼリフは結構

SCやPCより緩いモデルにおいては、プロセッサ外部から見えるメモリアクセスの順序は、プログラム順通りとは限らないため
(フェンス命令を適切に使用しなければ)システムはプログラマが意図した動作を保証することができない
それだけの事だよ

それ以外の要素は一切関係ない
投機だのインオーダーだの持ち出すのは何も理解していない証拠
573Socket774:2008/09/19(金) 20:04:36 ID:8CDvH23q
Atomがどうか?という事なら、インテルがAtomはSCやPCだと明言しない限り何とも言えない
そうでなければ、アーキテクチャ定義はWCなのでWCとして扱わざるを得ない

もしかするとAtomでは極めて稀なケースでメモリアクセスの順序の入れ替えが起こるかもしれない
メモリアクセスの順序が(W->Rを除いて)全く起きない、つまりAtomは実はSC(PC)を実装しているとと言い切るためには、
チップのリバースエンジニアリングをしないといけない
命令の実行時間をどれだけ測っても無駄、馬鹿の極みだよ


574,,・´∀`・,,)っ:2008/09/19(金) 21:51:54 ID:RCLHDlsQ
MOVNT* の作用は「キャッシュ汚染を最小限にすること」であって、
WCプロトコル云々はあくまで実装依存の話。
非NTと同じ動きをしても、それは命令セットの仕様としては問題ない。

あと、HTが実装されてるとはいえL/Sは1基ずつだから、2スレッド間でのL/S順序は投入された順となる。

追い越しが問題になりそうなのはMCMのデュアルコア版。
575,,・´∀`・,,)っ:2008/09/19(金) 23:29:28 ID:RCLHDlsQ
チップのリバースエンジニアリング以前に計測すらせず
拙い机上論理と無根拠な斯くあるべきという思いこみだけで
ものを語る以上は技術論としては成立しない。
とりあえず先ずはトレースしろ。知らない奴は語るな。

先人は言いました
「思いて学ばざるはすなわち詭うし」
576Socket774:2008/09/19(金) 23:39:48 ID:uBEUltpd
お団子くんは人に理解させようという心意気が足りないよな。いや最初期待してないんだけど。
むしろ相手が理解できないところをみつけてそこで理屈をこねくりまわしているという。
577Socket774:2008/09/19(金) 23:52:48 ID:8CDvH23q
団子のやっていることはアマチュアの発想なんだよ
いろいろ計測したところで、すべてのケースを尽せる保証があるわけではない
無駄無駄無駄

宝くじを1万枚買って、一等が入ってないイカサマだと主張するようなもんだな
578Socket774:2008/09/19(金) 23:57:13 ID:8CDvH23q
1.どういう条件下で
2.どのように計測すると
どういう結果になったか、これが科学では重要

団子は1に考えが及ばずに、Atomのlfenceは実はnopだ!という短絡的な結論にすぐ飛び付いてしまう

579Socket774:2008/09/20(土) 00:00:50 ID:uBEUltpd
アマチュアの発想というより行動がガキくさいだけ。
いろいろ計測して事実を証明していくというのは本当にちゃんとやっていれば興味深いんだけど。

都合が悪くなると、おれはいつも計測しているがお前は計測していない、
おれはプロだしお前より実践しているんだ、などと内容と関係ないところで
自分の発言の正当性をアピールしようとする。
計測しているわりにまとまった成果がいままでに何もみえないし、
当人の書き込みが机上理論な人達の話と同レベルの内容・精度しかでていないので話がうさんくさい。
580,,・´∀`・,,)っ:2008/09/20(土) 00:04:52 ID:ALOSlSrK
とりあえずメモリコンシステンシモデルが緩いだキツいだ、だのは理解の邪魔だと思うんだ。
「卵を机の上に立てる方法」を、重心がどうだの議論するがごとき愚考をしてる自覚を持ってほしい。
言葉に惑わされて本質が見えてこないでしょ。

答えは意外とシンプルなんだ。
(少なくともシングルコアの)Atomはロード・ストア順序は常にシリアル化できている。
なぜならAtomはL/SともアドレスがL1キャッシュに存在しなければストールするから。
L1にフェッチされるまで後続のL/Sも含め、待たされる。
これはP5までの動きと何らかわらない。
で、L1にある限りは読み書きのレイテンシは一定とみなせる。
だから逆転は起きないんだ。
愚直に順序どおりに実行するから順序保証の仕組みが必要ないだけ。


たとえるならモーションブラー処理が入ってると思ったら
単にLCDの反応が遅いだけでした、的な。
581Socket774:2008/09/20(土) 00:04:52 ID:6p+l1Zav
全体的な知識ではどうかしらないが、
使える書き込み度ではソース張ってるだけMACオタの方が遙かに上。
団子は分量が多いわりに内容がないので、読む気にもなれん。
582,,・´∀`・,,)っ:2008/09/20(土) 00:13:53 ID:ALOSlSrK
NOPでないケースを例示してくれ。
実装とかけ離れた推測および机上論理は詭弁と見なします。
583Socket774:2008/09/20(土) 00:14:05 ID:59KlAnFS
団子が想像するように、実はAtomはSCやPCを実装しているのかもしれない
しかしインテルはそれを保証していないし、
団子がどうプログラムを走らせて計測してみても、
(蓋然性は高まるかもしれないが)何の保証にもならない
584Socket774:2008/09/20(土) 00:19:16 ID:6p+l1Zav
つーか、団子レベルの知能で計測しても変なデータしかとれんし、信憑性ないだろ。

プロの技術者でも計算はできるけど理論の適用範囲をとり違えて意味の
ない間違った計算してるやつとかいるけど、それのソフト版が団子に近い。
結局読めばひたすら自分の脳内仮説を書いているでけで、あとからでも実証もしてないからな。
Atomでも実行開始の順番は入れ替えてるんだが、それもしらないようだしさ。
585Socket774:2008/09/20(土) 00:21:48 ID:59KlAnFS
団子は論理学の基本が判っていないようだ
団子の主張: Atomのlfenceはnop
おれの主張: Atomのlfenceはnopか否かわからない

>>582
> NOPでないケースを例示してくれ。
おれに聞かれてもわからないよ
586,,・´∀`・,,)っ:2008/09/20(土) 00:26:37 ID:ALOSlSrK
PCやSCってなんだ?やっぱり本質が見えてないな。
i486もPCやSCか?
まあパーソナルコンピューター向けのシングルコアではあるな。


そもそもシングルコアAtomはユニプロセッサだ。
「他のCPU」は同じコアで動くもう片方のスレッドに他ならない。

S/MFENCEだけはComplexデコーダパスにしたのは
マイクロコード書き換えでMCM版などでの動作を変えられるからだろ。
587,,・´∀`・,,)っ:2008/09/20(土) 00:30:18 ID:ALOSlSrK
>>584
ばかめ、メモリアクセスは順序化されてる。

順不同なのは開始順ではなくリタイヤ順。P5で既にそうだったし。
588Socket774:2008/09/20(土) 00:33:11 ID:6p+l1Zav
>S/MFENCEだけはComplexデコーダパスにしたのは
>マイクロコード書き換えでMCM版などでの動作を変えられるからだろ。
とりあえず状況証拠一つで、断言する癖はやめようぜ。
589,,・´∀`・,,)っ:2008/09/20(土) 00:43:49 ID:ALOSlSrK
状況証拠ですらない詭弁は聞きたく無いがな。
フェンス命令の実行アルゴリズムとシンプルデコーダの機構を知ってれば
AtomにおいてシンプルデコーダでもデコードできるLFENCEが常にNOPなのは机上論理でもわかる。

ヒント:P6以降のIA32およびAMDマイクロアーキはデコーダとリタイヤユニットは連動してる。
590,,・´∀`・,,)っ-○●◎:2008/09/20(土) 02:01:39 ID:8a3XNdnd
http://www.freeweb.hu/instlatx64/
とりあえず面白いのピックアップしてみた

Pentium III
Inst 763 SSE : SFENCE L: 9.12ns= 6.7c T: 9.12ns= 6.67c

Pentium M
Inst 763 SSE : SFENCE L: 4.17ns= 6.7c T: 4.17ns= 6.67c

Core 2 Duo
Inst 683 SSE : SFENCE L: 4.83ns= 9.0c T: 4.83ns= 9.00c

Pentium 4(Northwood)
Inst 763 SSE : SFENCE L: 24.31ns= 39.1c T: 24.21ns= 38.92c

Athlon 64
Inst 763 MMX+ : SFENCE L: 4.00ns= 8.0c T: 4.00ns= 8.00c

VIA C7
Inst 763 SSE : SFENCE L: 1.11ns= 1.7c T: 1.11ns= 1.67c

Atom
Inst 683 SSE : SFENCE L: 0.63ns= 1.0c T: 0.63ns= 1.00c

VIA Nano
763 SSE :SFENCE L: 7.70ns= 14.0c T: 7.70ns= 14.00c


このへんである事実に気づくよな?
591Socket774:2008/09/20(土) 02:12:11 ID:Lp2Eut//
命令レベルのクロック測定ってどんだけ意味あんだ
592Socket774:2008/09/20(土) 02:13:54 ID:aBFFQKbF
俺的には理想に近い感じだ。
593Socket774:2008/09/20(土) 02:24:49 ID:QaDhFOZm
それよりQFPやGTX200ってどうよ
594,,・´∀`・,,)っ-○●◎:2008/09/20(土) 02:29:05 ID:8a3XNdnd
>>591
確かに意味ないよ。
でも机上論者くんたちは空回りなのにクロック数がかかる理由すら
おそらくわかってないだろ。
実はちょうどいい教材なんだよ。

OoOなx86ではパイプラインはリングバッファみたいになってて
デコーダはリタイヤステージを監視しつつデコードを行う。
2命令リタイヤすれば2命令を新たにデコードする。

フェンス命令の実行モデルはその機構を逆手に取ったもので
Complexデコーダにてフェンス命令がデコードされると、前のロードないし
ストア命令(あるいはその両方)に依存関係を持つダミー命令を投入し
リタイアするまでデコーダを止める。

で、P6〜Core 2、K7〜K10をみれば、パイプライン段数+αでダミー命令が
リタイアしてくることがわかる。
もちろんメモリアクセス後のフェンス実行だと、ストアの順序保障ができるところまでの
クロックが加算される。


でもAtomがベストもワーストも1クロックってのはそういう作用すらないってことなんだ。
なぜならインオーダだから。
595,,・´∀`・,,)っ-○●◎:2008/09/20(土) 02:31:22 ID:8a3XNdnd
>で、P6〜Core 2、K7〜K10をみれば、パイプライン段数+αでダミー命令が

ここでのパイプライン段数はマイクロオペレーションをキューイングするところからリタイヤまでな。
596Socket774:2008/09/20(土) 02:34:37 ID:GU8SzMJG
いい子だから今夜はもうグッスリお休み
597,,・´∀`・,,)っ-○●◎:2008/09/20(土) 02:43:56 ID:8a3XNdnd
まあアレだ

movntps [edx+0]
sfence
movntps [edx+16]
sfence
movntps [edx+32]
sfence
movntps [edx+64]
sfence

Atomでこんなコードをループまわしてクロック数計測してみれ。
ノンテンポラルストアをやってないこととsfenceに全くブロッキング作用が
ないことが同時に証明できる。
598,,・´∀`・,,)っ-○●◎:2008/09/20(土) 03:23:11 ID:8a3XNdnd
>>585
シンプルデコーダでデコードできる命令はマイクロコードによる命令の動作変更をサポートできない。
ある条件でNOPなら常にNOPなんだよ。

LFENCEが常にNOPとは限らないと主張することは
つまり、Atomの2つのデコーダはComplexデコーダ×2だと主張することになるんだぞ。
もちろん事実に反している。
てめーには論理も糞もねーんだよ。ヴァカもたいがいにしろ。
599Socket774:2008/09/20(土) 04:02:45 ID:4p9Ark0R
それでも実証に望んでる分だけは評価する。
600,,・´∀`・,,)っ-○●◎:2008/09/20(土) 04:28:28 ID:8a3XNdnd
某資料には2命令並列デコード時はXLATを使うって書いてあるが
これって要するにテーブルルックアップな。
prefixとかで分岐してOpcodeを辞書引きしてデコード完了。

たとえば0F AE /5 を辞書引きしたら対応するマイクロオペレーションはNOPでした。
としたらずっとNOPな。それがハードワイヤードロジックというやつだ。

これ、CPUアーキテクチャの常識な。
常識がないやつがメモリコンシステンシ云々の理論とか笑うしかないんですが


で、マイクロコードROMがぶら下がってるのは2つのデコーダのうち片方だけなので
マイクロコードROMを参照する命令のスループットは1命令/clk以下になる。
601534とか536とか:2008/09/20(土) 04:53:20 ID:4WyHJsaV
>>594
これはすごくいい線行ってると思うな。

ただ、ダミー命令が、それ以前のメモリアクセスと依存関係を持っている
必要性は必ずしも無いと思うぞ。なぜなら、リタイヤはin-orderにしか
しないし、メモリアクセスは順序性が保障できるタイミングになるまで
リタイヤしないから。

要するに、nopでもなんでも突っ込んでそれがリタイヤするまで待てば
良い。

in-orderプロセッサでは、sfenceが発行されると、write bufferに「しお
り」みたいなものを突っ込んで、すでにwrite bufferに入っているアクセス
と順序が入れ替わらないようにしたりする。

これがサイクルにどういう風に影響するかどうかについては、実装と動作状
況しだいだが、x86アーキの場合は通常のアクセスが強い順序付けだという
のも効いてくるかも(つまりデフォルトがコンサバ)。

>>597は、sfenceが間に挟まることによって、write gatheringができなく
なって書き込みスループットが落ちるといった影響が出る可能性が考えら
れるがどうなのかね?
602534とか536とか:2008/09/20(土) 05:03:14 ID:4WyHJsaV
にしても、これだけ短期間でこんなに勉強と調査をしてくるやつは初めて
見た。すごいぞ団子。

「in-orderとか、投機実行とかは命令の実行順に影響を与えるから、fence
が実行サイクルにどのような影響を与えるかと関係している」

に対して、

「SCやPCより緩いモデルにおいては、プロセッサ外部から見えるメモリアク
セスの順序は、プログラム順通りとは限らないため(フェンス命令を適切に
使用しなければ)システムはプログラマが意図した動作を保証することがで
きないそれだけの事だよ」

とか答えちゃう誰かさんとはずいぶんと違うなぁ。
603,,・´∀`・,,)っ-○●◎:2008/09/20(土) 05:52:31 ID:8a3XNdnd
>>602
ちなみにダミー命令には目印がついてて、
デコーダとしては自分自身で目印をつけた命令なのでそれだけのリタイアを追えばすむ。
一番ローコストな方法だよ。

ダミー命令を使うモデルはP6〜Core 2、K7〜K10で共通。


P5やAtom見たいなインオーダコアはそもそもリングバッファになってない。
どっちかというと心太。
604Socket774:2008/09/20(土) 07:19:16 ID:59KlAnFS
なんだ、まだいたのか
群盲象を撫でるとはまさにこのことだな

「SCやPCより緩いモデルにおいては、プロセッサ外部から見えるメモリアク
セスの順序は、プログラム順通りとは限らないため(フェンス命令を適切に
使用しなければ)システムはプログラマが意図した動作を保証することがで
きないそれだけの事だよ」

これは俺の説明がまずいところをのぞけば100%正しい
間違っていたら首を吊っても腹を切ってもいいから、君の先生のところに行って判定してもらってきな
605Socket774:2008/09/20(土) 07:28:04 ID:59KlAnFS
あ、もしかして学生くんは

> システムはプログラマが意図した動作を保証することができない

これを、実行するたびに、常にプログラマが意図した動作==逐次的意味論とは異なる結果をもたらす
と解釈しているのだろうか
もしそうならそれも間違いだ
逐次的意味論と異なる結果が「ごくたまに」あるかもしれないし「しょっちゅう」かもしれない、結果は不定だということだよ
606,,・´∀`・,,)っ-○●◎:2008/09/20(土) 07:52:58 ID:8a3XNdnd
> プロセッサ外部から見えるメモリアクセスの順序

L1キャッシュにあるデータを即座にメインメモリに反映しろというなら無理な話だ

なんのために「I/O専用領域」なんて作ってカーネルモードでしか触れなくしてると
思ってるんだ。
ばかもたいがいにしろ
607,,・´∀`・,,)っ-○●◎:2008/09/20(土) 07:58:46 ID:8a3XNdnd
まあ、ブロックダイアグラムの「XLAT」の意味すらわからない馬鹿は
学すらないんだろうけどな
608,,・´∀`・,,)っ-○●◎:2008/09/20(土) 08:16:34 ID:8a3XNdnd
この辺でも読んでくれよ ブロックダイアグラムも載ってるしな。
ftp://download.intel.com/corporate/pressroom/emea/deu/fotos/08-03-CeBIT/Texte/TechnicalPaper_45nm_Silverthorne.pdf
http://download.intel.com/design/processor/manuals/253665.pdf

なんかわからんがAtomのキャッシュはマルチスレッド用に設計されてるとさ。

609,,・´∀`・,,)っ-○●◎:2008/09/20(土) 08:26:50 ID:8a3XNdnd
まあとりあえずAtomはPC(パソコン)用のSC(シングルコア)なのでさっさと首釣って氏ね

610601-602:2008/09/20(土) 09:02:57 ID:4WyHJsaV
>>604
うーん、これ以上この話に対して新たなネタを提供する気はないよ、ってこ
となんだけど、「捨て台詞」とか「まだいたのか」とか自意識過剰なんじゃ
ないの?

>>602をもちっとシンプルにしてみると
「fenceの実行サイクルへの影響は実装依存」
に対して
「fenceは入れなきゃいけないんだよ」

こういう噛み合ってないやり取りを続けてる限りは、これ以上情報を追加
しても意味がないでしょ?
611Socket774:2008/09/20(土) 09:08:21 ID:ALOSlSrK
自分の会社のCのコーディング規約を語る奴
612,,・´∀`・,,)っ:2008/09/20(土) 09:12:27 ID:ALOSlSrK
というか脳内アーキテクチャでの思考実験でしかものを語れないから本質的に無意味。
言葉の意味に捕らわれすぎて現実が見えてない。
613,,・´∀`・,,)っ:2008/09/20(土) 10:16:37 ID:ALOSlSrK
「ドキュメント化されてないものは解らない」
で、ドキュメント化された文言の言葉尻だけをとらえて現実とかけ離れた
脳内アーキテクチャを想像してしまう。
それは文系人間のやること。

実験から考察して固定観念を切り崩していくのが科学だ。
実験すれば解る事実すら認めないのだから、そんな教育すら受けてないんだろうな。
614601-602:2008/09/20(土) 10:35:16 ID:4WyHJsaV
>>608
"Intel® 64 and IA-32 Architectures Software Developer’s Manual"
を拾い読みしてみた。

lfenceの定義は、loadの順序づけ+投機的実行の抑制、となっとるの。

ちょっと面白いのは、SSEでsfenceだけ追加してlfenceを追加していない
こと。
615,,・´∀`・,,)っ:2008/09/20(土) 10:48:58 ID:ALOSlSrK
Pen4は投機ロードしまくりだからね
逆にパイプラインがデリケートでデータがL1に無いだけでもトレース列が総崩れする。
それで予測に基づいてL1にフェッチしてロードをプールしてしまう。
代わりにprefetcht0を使ってもL2までしかフェッチされない。
616Socket774:2008/09/20(土) 11:17:04 ID:zgYvllNz
団子はエンジニアだけどサイエンティストじゃないよなー

エンジニアは99%の実証があればオッケーだが、サイエンティストは1%の不確定があれば不可だ。

んでさ、Atom の実装がどうなん、って話なら、NOP のとか面白いネタなんだけど、
やってることはエンジニアの範疇だよね。なのにサイエンスやってるみたいに振る舞うのがね。
なんかさー、サイエンスに対するコンプレックスが駄々漏れで気持ち悪いだよねー
617Socket774:2008/09/20(土) 11:51:32 ID:59KlAnFS
>>616
あくまで99%だけ正しいと自覚してるんならね
団子や>>602は、そういう自覚がないから困るんだよね

>>610
違うね
メモリモデルを理解していない奴が

> 「fenceの実行サイクルへの影響は実装依存」

こんなことを言って計測しても無意味で無駄だと言ってるんだよ
団子だけじゃなくて君もだよ

> こういう噛み合ってないやり取りを続けてる限りは、これ以上情報を追加 しても意味がないでしょ?

おれの指摘は完全に正しいのだが、君達が理解できていないだけのこと
618601-602:2008/09/20(土) 12:31:48 ID:4WyHJsaV
>>617
いま過去の書き込みを読み直してみたが、俺の書き込みのどれを君がパター
ンマッチしてケチをつけてるのか分かったと思う。

でもさ、「ATOMでlfenceがnop扱いじゃいけない理由」に対して「お前らバカ
だから」じゃあまり説得力が無いと思うんだよね。具体的にどのような
動作を行うプロセッサとメモリシステムでどういうケースで問題が発生する
からlfenceをnop扱いできないのか、教えてくんないかね?
619Socket774:2008/09/20(土) 12:45:14 ID:59KlAnFS
>>618
> 具体的にどのような
> 動作を行うプロセッサとメモリシステムでどういうケースで問題が発生する
> からlfenceをnop扱いできないのか、教えてくんないかね?

これが君や団子が論理的な物の考えができていない証拠

おれはあくまで、
AtomはWCかPC(SC)かどうかわからない、と主張してるんだよ
AtomはWCではない、と主張しているんではないんだ

まずこの違いを認識して欲しい
620,,・´∀`・,,)っ:2008/09/20(土) 12:57:21 ID:ALOSlSrK
まあバカに構うだけ無駄


科学者とかwwwww
621,,・´∀`・,,)っ:2008/09/20(土) 13:06:36 ID:ALOSlSrK
ただのアスペルガー症候群の痛い子なんだから
CPUの話をやりたがる割にはCPUのコードシミュレーション環境を持っていないようだし。
科学者なら科研費を億くらいもらってからほざけよ的な。CPUくらいいくらでも買えるぞ。

おまけにララビがSSEサポート(⊂x64準拠)なら死ぬという口約束すら守らない生き恥男
622,,・´∀`・,,)っ:2008/09/20(土) 13:12:01 ID:ALOSlSrK
メモリフェンスモデルは害悪だからサポートするべきではないとかさ

どんな理論屋だよ。
どこに嫉妬してほしいの?むしろsitしてほしいの?
623,,・´∀`・,,)っ:2008/09/20(土) 13:17:43 ID:ALOSlSrK
SimNowとかのパイプラインシミュレータとか使ったことないんだろうな。
x86のデコーダの仕事すら知らないんだぜ。ありえねえ

自称科学者とかwwwww頭おかしいwwwww
624,,・´∀`・,,)っ:2008/09/20(土) 13:38:39 ID:ALOSlSrK
ハードワイヤードロジックでNOP扱いされてる事実を認めたくなくて駄々こねてるだけだろ
625,,・´∀`・,,)っ:2008/09/20(土) 13:41:49 ID:ALOSlSrK
結局、ハードワイヤードロジックでNOP扱いされてる
結果の出てる事実を認めたくなくて駄々こねてるだけだろ

実測に勝る仮説など無いよ。
626,,・´∀`・,,)っ:2008/09/20(土) 13:47:02 ID:ALOSlSrK
科学の根元は「無知の知」
自分の狭い了見で閉じて現実を直視できない人間を賢いとは言わないんだ。
627Socket774:2008/09/20(土) 14:00:25 ID:M9WVcrbR
団子ちゃん飛ばしてるなw
面白いww
628Socket774:2008/09/20(土) 14:02:17 ID:qYbuNfJP
まさに疑似科学にはまる工学部の先生によくある言動じゃんw
629,,・´∀`・,,)っ:2008/09/20(土) 14:04:24 ID:ALOSlSrK
lfenceが単純デコーダのXLAT/FLすなわちハードワイヤードロジックでデコードできる
という100%確実な事実から導き出される、NOP扱いという真実が
どう「不確実」か説明する義務から逃げるな。

おまえの確実か不確実かなんて「standard 64-bit extention」がx64とは限らない
とかの屁理屈レベルだろ
630,,・´∀`・,,)っ:2008/09/20(土) 14:10:46 ID:ALOSlSrK
>>628
まぁ万年科研費ゼロの落ちこぼれ教員は実験機材を買うことすらできないから
ひたすら似非理論をやるしかないからな。
631Socket774:2008/09/20(土) 14:13:09 ID:59KlAnFS
そりゃそうだ

推測と事実の区別がつかないのは団子だけでいいよ
632,,・´∀`・,,)っ:2008/09/20(土) 14:14:51 ID:ALOSlSrK
推測:LarrabeeはSSEをサポートしない
事実:x64準拠
633,,・´∀`・,,)っ:2008/09/20(土) 14:20:58 ID:ALOSlSrK
で、どこのFランク大学の助手さんですか?
634601-602:2008/09/20(土) 14:49:46 ID:4WyHJsaV
>>619
じゃ、質問を変えよう。

メモリモデルはRelease Consistency。

キャッシュコヒーレンシプロトコルはブロードキャストベースで、
Invalidationを含むトランザクションが各プロセッサやメモリに到着
する順序はsfenceで規定される順序に矛盾しない。

プロセッサパイプラインからissueされたメモリアクセスのcache tag
lookupの順序はissue順。

これって結構よくあるケースだと思うが、このときlfenceがnop扱いできな
い条件は何だ?投機的実行とかin-orderとかは関係無いんだよな?

>>633
おいおい、思ってても口に出さない方がいいことってあるぞ。「学生」とい
う言葉に妙なコンプレックスを持ってそうなところとかみるとそうかなぁ、
とも思うが。
635,,・´∀`・,,)っ:2008/09/20(土) 14:50:31 ID:ALOSlSrK
マイクロコードROMのではなくルックアップテーブルでデコードできる命令が
状況によってNOPだったりでなかったりするケースなんて前例がない

ところでLarrabeeのVector Scat命令はキャッシュラインに対するパーシャルライトではなくLoad-Op-Storeの形だそうだな。
まあ現状MASKMOV*がそうだけど。
636Socket774:2008/09/20(土) 15:08:51 ID:59KlAnFS
>>634
Release Consistencyにlfenceはないが、まあいい

>>557の例で言うと、
X = v1 のメモリアクセスが地球を一周してきて、それから実行される
その間に、Y = v2の実行がさっさと終わってしまう

こういう場合には、v1とv2の読み出しの間にlfenceが必要
投機実行もインオーダーも関係がない
637Socket774:2008/09/20(土) 15:14:54 ID:59KlAnFS
>>635
ある命題が「正しい」ことを証明するには、思いつくだけの例を上げただけじゃだめなんだよ

「すべてのケース」を尽していることを証明してはじめて、「命題が正しい」と言えるんだ
638,,・´∀`・,,)っ:2008/09/20(土) 15:15:15 ID:ALOSlSrK

> おいおい、思ってても口に出さない方がいいことってあるぞ。

図星だからか?
本音は崩れのニートかな。
少なくとも国から研究費をもらってる人間とは到底思えない。

>「学生」
何年も前に引退した身分だが別に
強いて言えば暇があってうらやましいよ。
639Socket774:2008/09/20(土) 15:21:23 ID:59KlAnFS
昔、Encoreという会社のGigamaxという階層バスの共有メモリマルチプロセッサシステムがあってね
当然キャッシュコヒーレンシープロトコルも備えていた

このプロトコルは、メーカーでさんざん考えつくしてシミュレーションを行なって設計したんだけど
出荷してだいぶ経ってから、形式的証明でプロトコルの穴が見つかった

コンシステンシーモデルとは違うけど、メモリシステムの設計はそれくらい難しい話なんだよ
640,,・´∀`・,,)っ:2008/09/20(土) 15:21:46 ID:ALOSlSrK
ちなみにうちの大学は在籍時代から理研や産総研から客員が送り込まれてたりしたよ。
さすがにi社はいなかったが。

ま、ERATOやCREST、COEなんかの大型研究プロジェクトにはよくある話だが

つーか情報工学で理論屋なんて金がない負け組研究室の典型じゃん。
641Socket774:2008/09/20(土) 15:35:15 ID:fEr4EloQ
W?
642,,・´∀`・,,)っ:2008/09/20(土) 15:48:54 ID:ALOSlSrK
研究室単位で見ても経産省のERATO/CRESTの予算額は文科省科研費の基盤研究Aなんかより大きかったよ。

とりあえず情報やる研究室では即技術転用ができる実践屋の方が圧倒的に勝ち組なのはガチ。
643601-602:2008/09/20(土) 16:22:57 ID:4WyHJsaV
>>636
いい加減な説明だなぁ、invalidationの到着順を考えれば「地球を一周
する」なんてことあるはずないじゃない。
644Socket774:2008/09/20(土) 16:35:16 ID:59KlAnFS
>>643
プロセッサAはv1を読み出そうとして、リクエストが地球を一周する
次に、Aはv2を読み出そうとして、すぐ読んでYに値を書き込む
だいぶ時間が経ってから、v1の読み出し値がAに到着して、Xに書き込む

つまり、v2よりv1のほうが先に読み出される

これだけで説明は尽きるよ
invalidationの出る幕はない
645Socket774:2008/09/20(土) 16:39:36 ID:59KlAnFS
>>644
おっと、
> つまり、v2よりv1のほうが先に読み出される
×先
○後

invalidationどころか、キャッシュそのものがメモリコンシステンシーモデルとは関係がない
(「実装するときに」ややこしいことを考える必要はあるが)
646Socket774:2008/09/20(土) 16:46:19 ID:59KlAnFS
SC(PC)のプロセッサA'では、こうなる

A'はv1を読み出そうとして、リクエストが地球を一周する
A'はv1の値を読み出せてXに書き込むまで、v2の値を読み出そうとしない(地球一周を待つ)
A'はv2の値を読み出してYに書き込む

多少のオーバーラップは可能だけどね、本質的にはこう
647601-602:2008/09/20(土) 16:55:38 ID:4WyHJsaV
ひどい答えだなぁ、おい、v2への書き込みがv1への書き込み「より後」に
順序付されている限り、v1の読み出しがmiss、v2の読み出しがhitってケー
スは存在しないぞ。この場合。

せめてほんの少しだけでも、ものが作れそうなことを言いなよ。
648Socket774:2008/09/20(土) 17:02:07 ID:gd32xlEH
今どき日本の大学で作ってるCPUなんざゴミだろw
某×××とか
649601-602:2008/09/20(土) 17:05:34 ID:4WyHJsaV
>>647 ごめん「より後」->「より前」
650Socket774:2008/09/20(土) 17:10:40 ID:59KlAnFS
>>647
上のほうにも一回書いたんだがな

A:
1. v1の読み出しリクエストを太陽系一周の旅へ出す
2. v2の読み出しリクエストを町内一周の旅へ出す

(ちょこっと後)

A:
3. 2で旅立ったリクエストが帰還する
4. v2 == 0を読み出し、Yに書き込む(Y = 0)

(しばらく後)

B:
4. v2 = 2 を実行
5. 4の実行を確認する
6. v1 = 1 を実行

(何年か後)

A
7. 1で旅立ったリクエストが帰還する
8. v1 == 1を読み出し、AがXに書き込む(X = 1)
651,,・´∀`・,,)っ:2008/09/20(土) 17:11:50 ID:ALOSlSrK
地球一周とかwwwww

低レベルI/Oに関してはx86にはキャッシュを強制スルーして読み書きを行うモデルの特権命令があり、
通常はカーネルモードでこれを使う。

ユーザーアプリケーションでのメモリ状態なんて直接外部に公開することはありえないから
キャッシュへの読み書きさえできればCPUとしてはリタイヤしていいんだよ


さて、なぜユーザーモード命令であるLFENCEがNOPでない必要なのだね?
I/Oを叩くための特権命令のいくつかはシリアル化効果がある。
したがってLFENCE自体カーネルモードドライバでは使う必要がないんだよ。
652,,・´∀`・,,)っ:2008/09/20(土) 17:18:49 ID:ALOSlSrK
>>648
うちの教授はソフトやさんだったよ。
だが研究生全員に当時高価だったデュアルXeonマシンを用意する程度には金はあった。

俺のCPUの知識は独学だが何か問題あるかな。
知識の正しさを決定づけるのは、学ぼうとする姿勢があるか、
あるいは情報を遮断して簡単なテストでわかる計測すらしようとしないかの違いだよ。

後者は自然科学者としてはありえない。
653Socket774:2008/09/20(土) 17:20:08 ID:59KlAnFS
感覚的にわかりやすいかと思ったが、

v1 = v2 = 0

A:
1. X = v1
2. Y = v2

B:
a. v2 = 2
b. v1 = 1

というプログラムがどうして変な動作になるかと言うと、

Aの1,2の順番が入れかわって、2, 1となり、そこにBのa, bが挟まってしまって、
大域的に2, a, b, 1という順番になってしまうことが原因
654,,・´∀`・,,)っ:2008/09/20(土) 17:24:55 ID:ALOSlSrK
だからシングルコアAtomではスレッドAもスレッドBも同じコアで同じ順序化されたLSUを使うの。
いい加減わかれよハゲ。
655,,・´∀`・,,)っ:2008/09/20(土) 17:37:26 ID:ALOSlSrK
とりあえず自分が学者だと思うならEeePCでも買ってきて検証して見ろよ。
計測したクロック数は全てを教えてはくれないが、間違った知識の見直しの材料くらいは与えてくれるぞ。
656,,・´∀`・,,)っ:2008/09/20(土) 17:41:37 ID:ALOSlSrK
ま、マルチコアだろうと同じだけどな。L1からしかロードできない以上、MESIプロトコルに基づいてアクセスがなされる。
657,,・´∀`・,,)っ:2008/09/20(土) 17:45:09 ID:ALOSlSrK
MESIを知らない疑惑
658601-602:2008/09/20(土) 18:05:13 ID:4WyHJsaV
>>650
うーん面倒くさいなぁ、じゃあ、hit under missは許容するが、2度目の
ミスでストール、という条件を追加。

キャッシュもin-orderも投機も関係ないんだよね?
659,,・´∀`・,,)っ:2008/09/20(土) 18:12:41 ID:ALOSlSrK
当たり前のことで、たぶんソフトを知らない奴は本当に知らないとみえることだが
*fenceの作用があるかないかにかかわらず、マルチスレッドでのデータ共有の掟は必ず守らないといけない。
すなわちクリティカルセクションなりミューテクスなりセマフォなりで
プログラムで決めた排他あるいは共有アクセス権限を獲得してから
共有するメモリにアクセスする必要がある。
そうしないとキャッシュラインレベルでコヒーレンシが保たれていようがいまいが
プログラム全体のフローからみた共有データのアクセス順序は保証でしようがない。

フェンス命令後にロックを解放すれば、コヒーレントプロトコルに基づく順序関係は確実に保証できるということだけだ。
したがってただの待機処理でしかない。
フェンス命令は、共有データに対するロックの機構そのものは提供しない。

どっかのバカはフェンス命令を使えばロックを獲得せずにそのまま読み書きできると思ってるようだが。
660,,・´∀`・,,)っ:2008/09/20(土) 18:41:36 ID:ALOSlSrK
結局最初から最後までフェンス命令の機能をわかってないんだよな。
ソフトとハードの両方を知らないと理屈が解るわけがない。
I/0がどうとか頓珍漢なことを言ってみたりバカ丸だし。
結局自分自身が学がないんだよこのアスペルガーは
661Socket774:2008/09/20(土) 18:47:22 ID:OHhdpyq8
>>658
何でもいいけど、ロードがロードを追い越せない条件は付けるなよ
それはもうWCじゃなくなるから

それにしても、どうしてこうモデルと実装の区別がつかないんだろうねえ
662,,・´∀`・,,)っ:2008/09/20(土) 18:51:11 ID:ALOSlSrK
>653がバカなのは、フェンス命令を使うか使うまいかの問題じゃなしに
ロックもなしに同じメモリにアクセスする事を前提ではなしをしてるから。

ロックをかけてアクセスを順序づけないとそもそもソフトとして成立しない。
663,,・´∀`・,,)っ:2008/09/20(土) 19:07:27 ID:ALOSlSrK
アスペルガー君はマルチスレッド対応のソフト書いたことがないんだろうな
664601-602:2008/09/20(土) 19:07:30 ID:4WyHJsaV
>>661
モデルと実装の区別がついてないのは君でしょ?lfenceがnopで済むかどう
かなんて100%実装の話だよ。

それに>>658の条件を加えても、sfenceは依然として非nop実装が必要な可能
性があるからWCはWCだよ。
665,,・´∀`・,,)っ:2008/09/20(土) 19:11:41 ID:ALOSlSrK
まぁ、MOVNT*の仕様上はWCでも実装は非WCなのがAtomだな
666Socket774:2008/09/20(土) 19:16:02 ID:59KlAnFS
>>664
> lfenceがnopで済むかどうかなんて100%実装の話だよ。

違うね
メーカーがWCだと言えば、「プログラマは」lfenceをnopだと思ってはならない
実装がどうなってるかなど、知りようがないので関係がない
667,,・´∀`・,,)っ:2008/09/20(土) 19:16:18 ID:ALOSlSrK
x86において複数のスレッドが同じタイミングでlockプリフィクスをつけずに
同じデータにアクセスすることはソフトとして基本的に禁止しなければならない。
こんな常識すら知らないから>>653みたいな無様なレスができる。
668,,・´∀`・,,)っ:2008/09/20(土) 19:20:22 ID:ALOSlSrK
>>666
バカだねぇ
おまえか頭が悪いから理解できてないだけで実装がNOP扱いなのは既に計測で判明してるんだよ。

まあ、ハードの実装決めうちのコードを書くのは関心はしないが
669601-602:2008/09/20(土) 19:29:01 ID:4WyHJsaV
>>666
だーれーが、プログラマにlfenceのnopへの置き換えを推奨するなんて話
をしてるんだ?俺はてっきり、lfenceがプロセッサ内部の実装としてどの
ように扱われていてどれくらいのサイクルオーバーヘッドを伴うのか、
という話をしていたとばかり思っていたが?

で、妥当な想定の下で、lfenceをプロセッサがnop扱いしても大丈夫な
ケースがあったわけで、それは、パイプラインのin-ordernessとか、
投機実行とかと関連性があるわけだ。
670,,・´∀`・,,)っ:2008/09/20(土) 19:39:31 ID:ALOSlSrK
科学者(笑)くんはマルチスレッドプログラムの基本的な規則もしらないでものを語るなよ
lfenceが絶対必要なケースは無いんだよな
671Socket774:2008/09/20(土) 19:41:21 ID:59KlAnFS
>>669
プロセッサがロードの順番を入れかえるようなことを決してしなければ、lfenceはnopでもよい
ただそれだけ

投機もインオーダーもキャッシュも何の関係もない
ただの一例を見つけて、それが発見だと思ってはいけない
672,,・´∀`・,,)っ:2008/09/20(土) 19:43:04 ID:ALOSlSrK
>>671←マルチスレッドプログラムの規則も知らないおまえが言うな
673,,・´∀`・,,)っ:2008/09/20(土) 20:02:31 ID:ALOSlSrK
lfenceはどこで必要なのか、もう一度説明してみような

マルチスレッドでの共有メモリアクセスのセオリーはこうだ
if (共有メモリ使用中フラグが立ってない){
 共有メモリ使用中フラグを立てる
 共有メモリ読み書き(必要な処理は全てここでやる)
 共有メモリ使用中フラグを落とす
}
674Socket774:2008/09/20(土) 20:03:04 ID:n6wfb02D
fenceってマルチの同期に使えるのか?
てか話し噛み合ってないんじゃね?モマえら
675,,・´∀`・,,)っ:2008/09/20(土) 20:13:03 ID:ALOSlSrK
>>674
使えない。排他ロック処理は別途必要。
マルチスレッドプログラムにおけるフェンスの効果は排他ロック解放前に
メモリアクセス順序保証のウェイト処理をするだけ。
フェンス命令が完了してから排他ロックを解放すれば安全なわけ。
でもこのアスペルはフェンス命令そのものがブロックすると思いこんでいる。
676,,・´∀`・,,)っ:2008/09/20(土) 20:25:59 ID:ALOSlSrK
でも言ってるだろ
PC(パソコン)のSC(シングルコア)だって。
677,,・´∀`・,,)っ:2008/09/20(土) 20:37:58 ID:ALOSlSrK
あと、ライトスルーとアドレスの重ならない通常ストアの間にフェンス命令が
必要かという件については実装によらず「必ずしも必要ない」らしい。

というわけで前スレの件は残念だったな。恥さらしはどっちかは明らかだね。


そもそも絶対値直接アドレッシングでストアなんてふつうはやらない
プロシージャポインタをためのleaくらいしか使わない。
678Socket774:2008/09/20(土) 20:44:28 ID:59KlAnFS
>>674
使えるもなにも、他プロセッサと共有メモリを介した通信をする際には、何をどう実装するにしろフェンスは絶対に必要
アトミック操作は必須ではない(大抵は使うけどね)
679,,・´∀`・,,)っ:2008/09/20(土) 20:45:52 ID:ALOSlSrK
あと、絶対値アドレッシングの命令エンコード(ModRM+DISP32のほう)は
x64では潰されてRIP相対に置き換えられた。知ってた?
利用頻度なんてそんなもんだからな。
680,,・´∀`・,,)っ:2008/09/20(土) 20:50:38 ID:ALOSlSrK
>>678
いつまで動作仕様を誤解してるんだ?
フェンス命令でブロックするのはフェンス命令を発行したスレッドの流れだけで
Mutexでも使わない限り他のスレッドからの読み書きは抑制できない。

アトミック操作が必要ないのは共有データそのもので
排他ロック処理が必要ないわけではない。
681Socket774:2008/09/20(土) 20:54:51 ID:59KlAnFS
>>680
ヒント: デッ(略)
682,,・´∀`・,,)っ:2008/09/20(土) 20:57:55 ID:ALOSlSrK
ヒントにも自己弁護もなってねーよ。
なんならセマフォでもいいよ。
683601-602:2008/09/20(土) 21:54:52 ID:4WyHJsaV
>>671
そっちの無茶な主張に対する反例としては「だたの一例」で十分でしょ。
それから、この例っておもいっきりキャッシュ階層とコヒーレンシの実装
依存だし、out-of-orderや投機的実行でオーダリングが乱れるから、

> 投機もインオーダーもキャッシュも何の関係もない

もダウト
684Socket774:2008/09/20(土) 21:59:58 ID:59KlAnFS
>>683
> それから、この例っておもいっきりキャッシュ階層とコヒーレンシの実装 依存だし、

キャッシュ階層やコヒーレンシーの実装がどうであろうが、
v1とv2の読み出しの順番が入れかわる可能性があるならWC、そうでないことが保証されていればSC(PC)

> out-of-orderや投機的実行でオーダリングが乱れるから、

OoOや投機実行とメモリコンシステンシーモデルは何の関係もない
OoO+投機ロードかつSCな実装もいくらでもありうる
685MACオタ:2008/09/20(土) 22:07:57 ID:6l0dxrgI
IBMの"Computational Scaling"マスクによる22nmプロセスロードマップのプレスリリースす。
http://www-03.ibm.com/press/us/en/pressrelease/25147.wss
解説わ、この辺の記事が良いす。
http://www.eetimes.com/news/semi/showArticle.jhtml?articleID=210602297
http://www.semiconductor.net/article/CA6597205.html
要するに22nm以降のリソグラフィでEUV実用化の目処が立たないという認識の上で、数値解析で
解像度補正を行うということす。
ちと面白いのわ、Blue GeneやCELL/B.E.を使ったスーパーコンピューティングの応用であることも
強調していて、この技術で競合相手に差がつけられるならプロセスと製品の両面で大きな優位を
示すことができるという点だと思われるす。
(semiconductor.net記事より)
  ------------------------
  Computational scaling (CS) uses complex algorithms to modify mask shapes and to control
  the illumination source. IBM, working with Mentor, also expects to develop design hardware
  based on its Cell processor to keep the time required to simulate mask optimization to
  overnight runs. And the CS initiative links to IBM’s Cloud Computing strategy, which offers
  scalable, web-based computing services.

  IBM said the CS solution is an ecosystem that includes SMO, virtual silicon processing with
  TCAD tools and predictive process modeling based on IBM’s Blue Gene supercomputer,
  design-rule generation and corresponding models, design tooling, design enablement, complex
  illumination, variance control, and mask fabrication.
  ------------------------

  
686Socket774:2008/09/20(土) 22:14:07 ID:59KlAnFS
>>684
メモリコンシステンシーモデルは実装に依存しない

モデルの選択がまずあって、それを満たすようにプロセッサを実装する

君の主張は順序が逆なんだよ
687Socket774:2008/09/20(土) 22:16:44 ID:59KlAnFS
ふつうは靴を買うときには足にあったものを買う

君は、靴がピッタリあうのは、足を靴にあわせたからだと考えている
688Socket774:2008/09/20(土) 22:26:09 ID:PombSdhK
>>678
ちょっと待てよ、いくら何でも変なこと書いてるぞ。
共有メモリをアクセスするときは占有できるように同期を取って
アクセスして用が済んだらリリースだろ
その同期を取るためのメモリアクセスをSC内で維持したいというならまだ分かるが
689Socket774:2008/09/20(土) 22:35:03 ID:59KlAnFS
>>688
デ(略)でも、producer-consumerタイプの通信でも、アトミックなメモリ操作は不要だよね?
690601-602:2008/09/20(土) 22:35:56 ID:4WyHJsaV
>>687 >>610
勝手に相手の主張を作って反論するのはやめよう!

そもそもここでは、fenceの実行サイクルの見え方の話しかしてないし、
投機もインオーダーもキャッシュもそれに影響を与える可能性がある、
で結論は出てるよな?

君のいう「関係ない」は多分「投機やキャッシュやインオーダーといった
実装要件単独ではメモリモデルは決定しない」ってことなんでしょ?
誰もそれにはけち付けてないよ。
691Socket774:2008/09/20(土) 22:38:16 ID:59KlAnFS
>>690
> そもそもここでは、fenceの実行サイクルの見え方の話しかしてないし、

んなこたぁない
君も団子もAtomのlfenceはnopだと主張している

それは正しいかもしれないが、正しいと保証はできない
692Socket774:2008/09/20(土) 22:43:48 ID:59KlAnFS
>>690
わかってもらえなくて悲しい

> 君のいう「関係ない」は多分「投機やキャッシュやインオーダーといった
> 実装要件単独ではメモリモデルは決定しない」ってことなんでしょ?

実装はモデルを決定しない
モデルにあわせて実装を決める
693Socket774:2008/09/20(土) 22:44:39 ID:1sxAxx3h
内部ロックが効かないクソarchのSIMDロードではfenceが要る
なんておちだったら、オジサン怒るぞw
694601-602:2008/09/20(土) 22:48:28 ID:4WyHJsaV
>>691
lfenceのAtomパイプラインにおける動作がnopというのは妥当な実装だと
思う、というのが俺の考え。

それでオッケーな例も示したし、何か問題があるか?
695,,・´∀`・,,)っ:2008/09/20(土) 22:53:08 ID:ALOSlSrK
lfenceは2命令を「並列実行」できるんだぜ
それどこかろかロード命令とペアリングできる。
内部NOPでないとして何なんだね。
696Socket774:2008/09/20(土) 22:55:14 ID:59KlAnFS
>>694
ありまくり

> lfenceのAtomパイプラインにおける動作がnopというのは妥当な実装だと 思う、

妥当ではあっても、何の保証にもならない

時価で寿司を食って、店の評判や材料から考えて数万円くらいと推測するのは妥当かもしれないが、
10万円取られないという保証はなにもないのと同じ
697,,・´∀`・,,)っ:2008/09/20(土) 22:59:47 ID:ALOSlSrK
NOPと区別されてるかどうかは知る由もないが、なんのブロックもやってないことは確かだな。
698601-602:2008/09/20(土) 23:06:52 ID:4WyHJsaV
>>696
えーっとさ、「妥当な実装だと思う」という主張に対する反論は、「それで
は決してうまくいかない」ということを証明することでしかできないんじゃ
ないか?

「妥当な実装だと思う」->「何の保証にもならないからお前はバカ」って
日本語のやり取りとしてどうかと思うぞ。

どうも団子の検証にも説得力がありそうだし、誰も「保証」してないけど、
ひとまずの結論ってことでいいんじゃないの?
699Socket774:2008/09/20(土) 23:16:45 ID:59KlAnFS
>>698
少なくとも>>534の例は間違っている

そして君らは、妥当であることと証明された正しさの区別も怪しい
モデルと実装の区別もついていない

> 誰も「保証」してないけど、

団子はAtomのlfenceはnop以外ありえないと力説していますが…
700Socket774:2008/09/20(土) 23:22:01 ID:59KlAnFS
団子については、
いろいろ調べたり測ったりしたところ、Atomのlfenceはほとんどnopのようだ、
という言うのであれば、ケチのつけようもないが
勇み足でlfence==nopだと言い出すからおかしくなるのだ
701,,・´∀`・,,)っ:2008/09/20(土) 23:26:02 ID:ALOSlSrK
ハードワイヤードロジックだから効果が変わることもあり得ない。
でも、そもそもロードの順序保証がされないことで起こる問題って何なんだ?

他のスレッドがロックなしで共有メモリをアクセス云々は論外な。
もともとアトミックでないメモリ操作には保証をしないことになっている。
702Socket774:2008/09/20(土) 23:28:14 ID:Uwkau9GX
>>700
別にダンゴの肩持つ訳じゃないが
そもそも反論するなら最初から論拠を示すべきでは?
さもなくば今さらそんなこと書いて何なのよ
後出しじゃんけんダンゴ以下の卑怯者
論拠も示さず他人を罵倒が研究者の仕事かよ
703,,・´∀`・,,)っ:2008/09/20(土) 23:29:17 ID:ALOSlSrK
パイプラインを止める以外に副作用のない命令からパイプラインを止める効果をとったらなにが残ると思う?

NOP=なにもやらない
704601-602:2008/09/20(土) 23:29:53 ID:4WyHJsaV
>>699
しつこいなぁ、loadのオーダーを保障しなければいけないケースの一例
(それも典型的な)であることは間違いないでしょ?

でもって、分岐の先を投機的に実行するかしないかがモデル実装のポイント
になる場合が存在することも示したよな?

暗黙のうちに想定していた実装に関する言及が、>>534に含まれていない
ことは俺の手落ちだ、すまんかった。

これでいいか?

> 団子はAtomのlfenceはnop以外ありえないと力説していますが…

そんなこた人それぞれだ、俺は団子が持っている情報を全部持っている
わけではないから、彼と同じ確信を共有することはできないが、彼が
ここに提示した情報は、こういうところではなかなか見られない良質
な情報だったと思っている。

いいけどさ「お前はバカだ」を証明しようとして議論することほど空しい
ことはないぞ。
705Socket774:2008/09/20(土) 23:31:27 ID:Uwkau9GX
>>704
> そんなこた人それぞれだ、俺は団子が持っている情報を全部持っている
> わけではないから、彼と同じ確信を共有することはできないが、彼が
> ここに提示した情報は、こういうところではなかなか見られない良質
> な情報だったと思っている。

だったら黙ってROMってろ
706,,・´∀`・,,)っ:2008/09/20(土) 23:36:31 ID:ALOSlSrK
つーか実験すらやろうとしない憶測でしか語らない自称科学者は
なにやって論文提出するんだ?科研費通るのか?

憶測をまとめただけの文章などおバカアイドルのブログと変わらん
707Socket774:2008/09/20(土) 23:38:10 ID:Uwkau9GX
はー、やっぱダンゴも好きになれねぇ
コンピュータ好きで頑張り屋なところは認めるが…
708Socket774:2008/09/20(土) 23:40:34 ID:59KlAnFS
>>702
団子の相手は最小限にしたいんでね
まあ、>>577-578, >>585あたりをちゃんと読んでくれよ

>>704
> しつこいなぁ、loadのオーダーを保障しなければいけないケースの一例
> (それも典型的な)であることは間違いないでしょ?

間違いというか、ロードの順序以前に、依存関係があるつの
だから例としては不適切
709,,・´∀`・,,)っ:2008/09/20(土) 23:41:24 ID:ALOSlSrK
非実験系の学科目あるいは講座に配分される校費は文部省時代の国立大学の配分でも最低クラス。

実験のできない理系学者が落ちこぼれなのは事実です。
710601-602:2008/09/20(土) 23:45:00 ID:4WyHJsaV
>>708
これ以上は繰り返しだな、ナイスなタイミングでID:Uwkau9GXが冷水を
かけてくれたし、俺はROMにもどるわ。

スレ汚しすまソ
711,,・´∀`・,,)っ:2008/09/20(土) 23:55:15 ID:ALOSlSrK
「LarrabeeはSSEをサポートしない」の珍説は断定してかかる側だったのに

今じゃ断定することに異を唱える立場
腑抜けになったもんよ

己のバカさ加減を自覚せざるを得なくなったか?
712,,・´∀`・,,)っ:2008/09/20(土) 23:58:36 ID:ALOSlSrK
フェンスに強制完了(笑)させられた論客の末路は哀れなもんよ
713Socket774:2008/09/21(日) 00:09:00 ID:2tzg98Xo
larrabee(笑)
714,,・´∀`・,,)っ:2008/09/21(日) 00:09:25 ID:qX0CE2Yt
科学者くん、
lfenceを使わないことで起こる問題を答えてくれよ

movntなロード命令はSSE4.1にしかないぞ
715,,・´∀`・,,)っ:2008/09/21(日) 00:14:07 ID:qX0CE2Yt
電波が足りないぞ

もっとフェンスに強制完了させられてくれよ
716Socket774:2008/09/21(日) 00:32:21 ID:8n5hQCfi
いい子だから、もうグッスリお休み

が、しかーし、fenceなんて入れなきゃナランのは投機的な無理してるんか
そして、SIMDもあのちっちゃなちっちゃなコアに…
717Socket774:2008/09/21(日) 00:34:31 ID:8n5hQCfi
依存があるものを無理とアクセスするときのためのしょうがないもの
ってやつか、まぁいいや、
718Socket774:2008/09/21(日) 00:37:04 ID:8n5hQCfi
メニコアの流行は10数年程前の並列化への移行期のデジャビュみたいで
なんだか、またかというか…
719Socket774:2008/09/21(日) 00:41:19 ID:8n5hQCfi
それもコレも2年ほど前にインテルが変な80コア発表して猫も杓子も…
そういやあの登記的命令がタイミングずれてずっこけたときのペナルティーはfenceよりもすごかった
ながながしたパイプライン全てパーにして一からロードし直してたw
720,,・´∀`・,,)っ:2008/09/21(日) 00:49:43 ID:qX0CE2Yt
>>816
それがARM(+DSP)に対する強みだよ。

SSEはソフト開発者にもっとも普及したDSP拡張命令セットだからな。
スカラとSIMDをシームレスに使い分けられる。

将来的にはAVXみたいなより高機能なSIMD拡張がAtomにも載る。


ちなみにあのブロックダイアグラムにもいろいろ間違いがあるな。
SIMDは片方にしかぶら下がってないように描かれてるが現実には2命令同時発行できる
721Socket774:2008/09/21(日) 00:53:44 ID:VwHE9Sb4
まぁな、基本、依存無しのデータストリームにたいしてロックや同期なしに
深くパイプライン効かす効率重視だろ、んなこた我カットる
722Socket774:2008/09/21(日) 00:59:01 ID:Nq2TmHlv
ところで、ATOMってどれくらいまで命令スロット詰められるものなの?
うまくアセンブリでハンドコーディングすれば、毎サイクル2命令実行
に近づけるのか、それとも、どこかでハザード要因にぶつかってあきら
めなければいけなくなるのか。
723Socket774:2008/09/21(日) 11:56:41 ID:1kCTCrc8
結局x86搭載機しか使ったことないな。
724,,・´∀`・,,)っ-○●◎:2008/09/21(日) 12:15:29 ID:AjpCUi79
いつぞの資料によれば、Fast PathとSlow Pathってのがあって、

・Fast Pathはハードワイヤードロジック×2で2命令
・Slow Pathはマイクロコードで3サイクルかけてもっさりデコード

まず初動はSlow Pathでデコード。で、デコードできたもののうち、Fast Pathで通せるものについては
タグをつけて次からはFast Pathで走れるようにする。
よくわからんがプリデコードキャッシュ?みたいな仕組みがあるようだ。
複数マイクロオペレーションかかる命令は常にSlow Path。

で、
・デコーダ0(=Complex Decoder)
 マイクロコード(Slow Path)
 XLAT/FL(Fast Path)

・デコーダ1(=Simple Decoder)
 XLAT/FL(Fast Path)

と対応づければプリデコードキャッシュ?の仕組み以外は今のCore 2の2種類のデコーダ
(Complex×1, Simple×3だが)の関係とそうそう変わらないような気がする。

レジスタリネーミングも利かないし、XLAT/FLも非対称ではないかと思われる。
まあ性能を限界まで引き出すにはP5時代よろしくペアリング最適化が必要だろうな。

725,,・´∀`・,,)っ-○●◎:2008/09/21(日) 12:29:03 ID:AjpCUi79
あと、命令フェッチ帯域の制約がかなりきつくて、8バイト/clkしかフェッチできない。

でだ、
addps xmm1, [eax+ecx*8 + 0x12345678]

なんてやると
0F+58+ModRM+SIB+DISP32

で8バイト全部使っちゃうから1命令しか供給できない。
Core 2と同じくDispを1バイト版に圧縮する努力が必要になるな。
726,,・´∀`・,,)っ-○●◎:2008/09/21(日) 12:43:23 ID:AjpCUi79
ちなみにSIMD命令の命令長は

最短3バイト(MMXおよびSSE単精度パックド)
0F Op ModRM

最長11バイト(SSSE3以降; 64ビットならREXを入れて12バイト)
66 (REX) 0F 3A Op ModRM SIB Disp32 Imm8


でもAtomの将来バージョンにはAVXが載ることになってて

最短4バイト
VEX(2byte) Op ModRM

最長11バイト(REXの機能はVEXに内包)
VEX(3byte) Op ModRM SIB Disp32 Imm8

最短が増えてるが、しかしソースオペランド数が増えてるので実質的には命令帯域の節約になる。
更にVEX.256フラグを立てれば同じ命令長で、同じオペレーション2回分の128bit SIMDを表現できる。
(SIMD演算器が256ビットでなくともメリットを享受できる)
727Socket774:2008/09/21(日) 14:44:01 ID:3Cf1toX2
>>685
HPCが強いほど、HPCは強くなると。Nvidiaもやりゃいいと思うけど、ファブレスだし難しいか。
東芝もやればいいのに。
728Socket774:2008/09/21(日) 15:03:00 ID:dEz+QXKO
>>726
64モードでうっかり32レジスタでアドレス指定しようものなら更に+1で13バイトか。

>>727
Cellには参加してるけど東芝ってコンピューティング強いか?
729Socket774:2008/09/21(日) 15:28:51 ID:AyAYZcsS
パソピア馬鹿にすんな!
730Socket774:2008/09/21(日) 15:29:56 ID:lftHIrMI
>>728
IBMにくらべりゃ、勝てないだろうけど、Cellの蓄積はあるから、独自に応用できるんじゃ?
まあ、連合だからIBMの成果を待っているほうがいいのかもしれないが。
731Socket774:2008/09/21(日) 15:33:12 ID:imVitRtn
まあ、そもそも、シミュレーションでどれだけ有用な結果が得られるかが?だから、
IBMみたいなとこじゃないと博打に手をだせない?
732MACオタ:2008/09/22(月) 00:07:32 ID:pjrxioEJ
MIPSコアのSoC製品をHPC市場に売り込んでいるSciCortexすけど、TSMCの90nmプロセスで
製造しているチップの歩留まりが上がったとかで、500MHz -> 700MHzに高速化した製品を
出すとのことす。メモリ価格の下落等もあって、値段も下がるとか。
http://www.theregister.co.uk/2008/09/19/sicortex_kicker/
  --------------------------
  According to Kem Stewart, vice president of hardware engineering at SiCortex, improved
  yields at partner Taiwan Semiconductor Manufacturing Corp using its 90 nanometer
  processes against the SoC part created by SiCortex have allowed the company to boost
  the clock speed on the six cores per chip to 700 MHz, a boost of 40 per cent.
  --------------------------
ファンドリ企業のプロセスの進歩わ、こういったアーキテクチャ勝負の企業の活躍につながるという
意味で、大いに楽しみす。
733,,・´∀`・,,)っ:2008/09/22(月) 12:32:38 ID:I2/fUvfo
今やx86のようなCISC由来のアーキより低クロックの泡沫RISCに「アーキテクチャとしての優位性」なんてあったのか?
4バイト固定長なんて今日日はやらないんだよ。
1チップ数百円以内の組み込みはもはや2バイト命令のSuperHやThumb命令セットを備えるARMの市場。
HPCもx86が絶好調勢力拡大中。

もはやMIPSは落ち目
734,,・´∀`・,,)っ:2008/09/22(月) 12:36:46 ID:I2/fUvfo
というより、全盛時代すら高クロック実装は本家ではなくNECに頼ってた
RISCとしてはアイタタタなアーキテクチャだった気がする。
735Socket774:2008/09/22(月) 17:25:06 ID:eVv6tLWU
本来RISCは高クロック達成しやすいアーキテクチャのはずだが、現実の
RISC陣営の製造プロセスがintelに劣っていたので低クロックのままだった。

736Socket774:2008/09/22(月) 18:00:53 ID:0aQMPgr0
とは言われるが、プロセス世代以上にクロックで引き離されてる気がするのはなんでだぜ?
737,,・´∀`・,,)っ:2008/09/22(月) 18:08:05 ID:I2/fUvfo
RISC(というか非x86)の括りの中でもARMは勢力を拡大し
SHは無難にシェアを維持し
MIPSは落ちぶれたという印象だけどな

つーか「Interlockしない」というアーキテクチャの設計理念が商品化そうそうに覆されてるしな。
ARMにしてもSHにしても現実主義だから良い。

MIPSは教材としては優秀だが現実のアーキテクチャとしては駄目だと思う
738Socket774:2008/09/22(月) 18:10:49 ID:ZuFpmXAM
>>737
ARMってCISCじゃないか?組み込み業界はメモリ足りないのがデフォだから少ない命令で済むCISCが活躍するって学校で訊いた希ガス。
739Socket774:2008/09/22(月) 18:11:49 ID:ZuFpmXAM
>>738
と思ったらまったくそんなことはなかったのな。
教授は何を言っていたのかorz
740,,・´∀`・,,)っ:2008/09/22(月) 18:22:17 ID:I2/fUvfo
ARMのRはry
741Socket774:2008/09/22(月) 18:24:33 ID:iBaisAeL
>>739
その解釈は数年前まで意味ただしかった。

純粋なRISCの方がより多くのROMを必要とする。
だが、プロセスの進歩がこの問題を克服した。
小さなダイサイズにはパッド数(端子の数)で限界があり、そのサイズに十分なROMを確保できる状態になってしまったのだ。

また、RISC側のCISC命令取り込み(そもそもSHは純粋なRISCではないと
RISC研究者から批判された過去がある。その影響で出来たのがARMのThumb等)もある。
742Socket774:2008/09/22(月) 19:38:09 ID:VUg0YPxB
組込CPUにZ80って、結構珍しい気が。

それとも特定の分野では普通なのかな?

「1チップでカラー液晶画面を実現」、シャープが白物家電向け制御IC開発(2008/09/22)
http://eetimes.jp/article/21182/

そこで同社は、白物家電向けにカラー液晶パネルの制御に必要な回路をほぼ1チップに集積したグラフィック・コントローラIC
「LR35503」を開発した。必要な外付けチップは、プログラム・コード格納用フラッシュ・メモリーのみでよい。

液晶駆動回路やグラフィック・アクセラレータ回路、動作周波数が27MHzの8ビット・マイコン「Z80」、容量が32KバイトのVRAM、
各種インターフェース回路などを集積した。

長年広く使われてきた8ビット・マイコンZ80を採用したことで、アプリケーション・ソフトウエアの開発が比較的容易になること
も訴求する。
743Socket774:2008/09/22(月) 21:29:19 ID:ndmitsY0
>>733
MIPS16つのもあるけどな、一応

>>735
RISCが特に高クロック化しやすいということはない(CISCよりしにくいということはないだろうが)
高クロック化の障害は、今も昔もデータパス、レジスタリネーム、命令ウィンドウ
1クロックで結果をフィードバックする必要があるからね

>>741
ローエンド組み込み(>>742みたいな)では、まだまだコードサイズの要求はあるよ
16KBから1バイトはみ出ただけでも、次は32KBだからね
Z80もまだ多いんじゃないか
他のにする理由もないし
744MACオタ:2008/09/22(月) 22:01:27 ID:5bItT3IW
45nmプロセスのCELL/B.E.の量産が始まるとのことす。
http://www.nikkan.co.jp/news/nkx0320080922aaab.html
  --------------------
  ソニーは09年に、回路線幅45ナノメートル(ナノは10億分の1)プロセスを採用した先端半導体の
  量産に乗り出す。家庭用ゲーム機に内蔵する中核半導体「セル/ブロードバンドエンジン」に適応し、
  長崎にある東芝との共同出資会社や米IBMの工場内にあるラインで量産を始める。
  --------------------
745MACオタ:2008/09/22(月) 22:15:24 ID:5bItT3IW
メッシュインタコネクト構成のメニイコアプロセッサのTileraが第二世代のタイルプロセッサ
TILEPro64/TILEPro36を発表したす。
http://www.theinquirer.net/gb/inquirer/news/2008/09/21/tilera-releases-pro-version
各コアのローカルキャッシュを、近接コアで相互に共有キャッシュとして利用できる
DCC (Dynamic Distributed Cache)が新機能の様す。
  ---------------------
  There are two TilePros, one with 64 cores and another with 36. The 64 comes at 700 or
  866MHz with 5.6MB of cache while consuming 19-23W. The little brother runs at 500MHz,
  has 3.2MB cache and sucks 10-16W.
  ---------------------
Tileraの製品紹介わ、こちらす。
http://www.tilera.com/pdf/ProductBrief_TILEPro64_Web_v0.pdf
746,,・´∀`・,,)っ:2008/09/22(月) 22:54:26 ID:I2/fUvfo
第一世代はどこで使われてたのか全く謎
747MACオタ>団子 さん:2008/09/22(月) 23:11:44 ID:5bItT3IW
>>746
  -------------------
  第一世代はどこで使われてたのか全く謎
  -------------------
引用したTheINQの記事に言及があるすけど。。。
  ===================
  There are 45 claimed customers for the first generation parts, only two of which Tilera could
  name. They are Napatech and Top Layer. Napatech has products on the market now, Top Layer
  will very soon. For a brand new architecture barely a year old, that is not bad at all.
  ===================
748,,・´∀`・,,)っ:2008/09/22(月) 23:21:06 ID:I2/fUvfo
PCIeに刺さる数万のカードなら評価してやったのに

マーキュリーの8コアCellのときはアホかと思ったがSpursEngineのカードは
妥当な価格に収まったね。プログラミングできるのかは知らないが。
749Socket774:2008/09/23(火) 00:24:11 ID:qDpGCJRy
第二世代がProなら第三世代は!!!なのかねえ
750Socket774:2008/09/28(日) 23:40:41 ID:WjMgH2M4
後藤ちゃんが久しぶりにCELLネタ

ttp://pc.watch.impress.co.jp/docs/2008/0929/kaigai469.htm

PS4はPowerXCell 16ii相当くらいになるんでしょうかね?
751,,・´∀`・,,)っ:2008/09/29(月) 20:53:15 ID:78j95U9+
倍精度は遅そう
752Socket774:2008/09/29(月) 20:57:03 ID:FodcFX+b
倍精度速くすれば科学演算とかに役立ちそうなのになー。
Sonyは嫌いだが、メニーコアで省エネなCPUを作ってたんぱく質の折りたたみ解析をもっと速くして欲しいな。
753Socket774:2008/09/29(月) 21:06:42 ID:+j6vNdFD
PS4出すつもりなのに驚いたワイ
754,,・´∀`・,,)っ:2008/09/29(月) 21:11:53 ID:78j95U9+
つうか現状でも多くのゲームで大半が遊んでるSPEの個数をさらに増やすよりは
LS容量を増やしたりPPEを強化する方がゲーム向けにはいいと思うがね。

クロックが上がらない以上、カタログスペックと実効性能のギャップを
埋めないことにはなんの進化も望めない。
755Socket774:2008/09/30(火) 12:51:23 ID:Yj5LEdB5
>>750
ゲーム用途に倍精度浮動小数点演算性能の強化はどうなんだろ?

ローカルバッファを256KBから512KBにした方が良さそうな気が。

まあCell数自体はせいぜい16(多分実際は15)が妥当なところだろうけど。

あとはPowerPCコアの強化かな?

XBOX360の3コアx2スレッド、は不要だろうけど、2コアx2スレッドくらいは
欲しい。
756Socket774:2008/09/30(火) 13:14:57 ID:bTZ0iyEH
PPEはベクトル/スカラ浮動小数点のキューを広くするか、
レイテンシ小さくするか、浮動小数点パイプだけリオーダーありの投機実行が
出来るようにしてほしいな。
素のPPEならVMXレジスタ128本もほしい。
PXはレジスタをフルに使ってベクトルの最適化進めると
VQがいっぱいになって詰るのがどうしようもない。
757Socket774:2008/09/30(火) 21:13:33 ID:nv5LMCz+
そんなもの、何に使うのサ…
適材適所もっとましなマシン使ゃ済む話d(ry
758Socket774:2008/09/30(火) 23:33:35 ID:2ml+3TWt
PPE強化はCellの否定につながるだろ。
759,,・´∀`・,,)っ:2008/10/01(水) 00:14:07 ID:0LLwsIon
まずLSUの強化だな。
スカラデータのロード・ストアを1命令でできるようにする。

あと即値指定による任意要素の挿入・抽出も欲しい(SSEのpinsr*/pextr*相当)。
これはSPE・PPE(VMX)問わずだが。

まあ、Opcodeに空きがあればだが。
ローカルストアが小さいなら小さいなりに命令列・データ列ともにコンパクト化できることが望ましい。
760,,・´∀`・,,)っ:2008/10/01(水) 00:17:21 ID:0LLwsIon
あとSPEでもFGMT採用とか
761Socket774:2008/10/01(水) 01:43:37 ID:32wJZY4S
1チップ化が先な気がする
ついでにDRAM 256MB混載で。
762Socket774:2008/10/01(水) 17:47:42 ID:3uHFzeEq
DRAM混載はPC用CPUですら採用されてないから、コスト対効果が無いって話では?
763Socket774:2008/10/01(水) 19:02:55 ID:kPOS/3AF
CoCでのDRAMセットはPSPでもそこら中の携帯電話でもやってるけどな。
764Socket774:2008/10/02(木) 01:07:48 ID:9L56M8RE
IBMなら1GB DRAMの混載もやってのけるだろ。
それだけの金がある。
765Socket774:2008/10/02(木) 01:51:51 ID:FbJ6Mdf7
G bitの間違いか?オーイ。
766Socket774:2008/10/02(木) 19:31:47 ID:wigI+9zB
チップスタッキングの方が、改良に便利(DRAMに手を加えないで済む)。
だから製品化ギリギリまでバグ取りしかねない携帯電話なんかに使われる(ww

DRAM混載プロセスは、ぶっちゃけ、長く使われる事前提(
そしてDRAM容量の増減の必要性が無い用途)じゃないとやりにくいかと。

メインRAM用途のDRAMなんか、例えばスピードグレードなんかの
製品化バリエーション等で容量変更予定ありとして設計されるだろうからなぁ…。
767Socket774:2008/10/03(金) 00:03:11 ID:NUmrDd+y
IntelとARMの競争はビジネスモデルの競争だ
ttp://plusd.itmedia.co.jp/pcuser/articles/0810/02/news059.html

>しかし、DRMの付与されたコンテンツの存在などを考えると、互換性を追求してしまえばWindows以外に選択肢がなくなり、
>Linuxを採用することと矛盾してしまいます。それともIntelはMIDに専用のコンテンツを用意するつもりなのでしょうか。

結局この疑問にはお茶を濁すのね・・・
768Socket774:2008/10/03(金) 00:20:23 ID:3r/VPqi4
IBMのアホが:口出したのがPS3の不幸の始まりだったな
手を組む相手を間違えたな
769Socket774:2008/10/03(金) 03:39:16 ID:51LM5ihv
次世代ゲームコンソールにララビー載るかね?
UMAは必須でいつも帯域の問題が付きまとうのを考えると、
足回りへの要求が低い分ゲームコンソール向けかなと思うんだが。
770,,・´∀`・,,)っ-○●◎:2008/10/03(金) 08:01:32 ID:DaW+fJjw
×ゲーム向け
○髪の毛がそよぐだけで面白いシミュレータ向け
771Socket774:2008/10/03(金) 08:02:13 ID:E8pC5hEL
×髪の毛がそよぐだけで面白いシミュレータ向け
○髪の毛がそよぐだけで面白いシュミレータ向け
772Socket774:2008/10/03(金) 11:05:26 ID:Li1FoYIP
乳がゆれるだけで(ry
773Socket774:2008/10/03(金) 20:11:45 ID:V1rEtqEX
>>769
ララビーはローエンド帯向けなので性能はそんな期待しない方が…内蔵VGA並がせいぜい。

でもGPUやメモリコントローラまでCPUに入ってるなら、CPUとメモリだけ冷やしまくればチップセットクーラーはあまり要らなさそうなんだけどどう?
774Socket774:2008/10/03(金) 23:16:36 ID:GgPkF8Bp
【マルチコア】並列化について語る【使いこなせ】
http://pc11.2ch.net/test/read.cgi/tech/1137540671/

並列化を語るスレ@ム板
盛り上がってます。
775Socket774:2008/10/03(金) 23:26:13 ID:GgPkF8Bp
LarrabeeもCellも元々
髪の毛がそよぐだけで面白いシミュレータ向け
なんだよ。
ゲーム(グラフィックス)に向いていると嘘でもいうとハードにあまり強くないゲーマー共
が食いついて話題になるからやってる。
Cellも元々はGPU的な使い方を想定していたがこけた。
776Socket774:2008/10/03(金) 23:27:54 ID:GgPkF8Bp
×Cellも元々はGPU的な使い方を想定していたがこけた。
○Cellも元々はGPUレスな使い方を想定していたがこけた。
777,,・´∀`・,,)っ-○●◎:2008/10/04(土) 00:59:37 ID:1H5SvIu1
いまのnVIDIAやATiのディスクリートGPUは「Game Processing Unit」でしかないからな。
非ゲーム用途でのディスプレイ描画性能は、もはやオンボードクラスでも十分。
ゲーム向けとしては2社寡占の状況だが、これに甘んじていては先細りなわけで。

で、非ゲームに目を向けると、ディスプレイに描画する以外の用途でのデータスループットが欲しい。
でも汎用演算アクセラレータとしては、GPUはさっぱり使いにくい。
奴らのGPGPUとの向き合い方なんざ、所詮はゲームヲタ需要の片手間だからな。
これを切り捨てないことには先には進めない。

その意味でGTX280は狙ってるポジションは良かったのだがやることが中途半端すぎた。
CUDAみたいな生産性の低いプログラミング環境は捨てなきゃどうにもならん。



Intelは2社がゲーム市場を捨てる覚悟がないのを解ってて敢えてLarrabeeを投入するわけだ。
CUDAやBrook+/CALみたいな制限の多いプログラミング環境でなく、フルセットの
C/C++環境とネイティブなx86命令セットを引っ提げて、より一般的なCPU向きの
ソフト技術者を取り込むという逆のアプローチから攻める。

ゲームくらいにしか使い道がないうちはローエンドと見なされるかもしれないけど、
Larrabeeネイティブに対応した実用ソフトが増えてくれば状況は変わりうる。
たとえばPhotoshopプラグインはLarrabeeに簡単に移植できるかもしれないね。
778Socket774:2008/10/04(土) 01:12:56 ID:MijKbN8c
オンボ並みの描画性能しかないものを
ワザワザ別途購入する人は少ないと思いますが
779Socket774:2008/10/04(土) 01:13:34 ID:O8P507jZ
>>777
nVidiaは最近はGPGPUに凝りだしたんじゃないの?
IntelのLarrabeeと食い合いになるのは分かってるから、何とかして自分が先行してGPGPUを先行させていかないと未来を持って行かれる。
AMDはFusionとかいうGPGPUを模索してるし、GPUしか武器が無いのがnVidiaだけだからなぁ・・・。

いくらか勘違い混ざってるかも知れん。
780,,・´∀`・,,)っ-○●◎:2008/10/04(土) 01:15:59 ID:1H5SvIu1
だからお前はゲームしか見てないんだろ。そんなもんIntelははなっから切り捨てて投入するっつーの。

そのゲームすらコンシューマ市場はPS3や360よりWiiが売れるという番狂わせの真っ最中ですが。
781ooo:2008/10/04(土) 01:17:30 ID:Fnx1900n
Larrabeeにはあまり期待してないけど、
ゲームグラフィックスが既にno futureだってことにゲームオタはともかく
PCオタがなかなか気がつかないのがすごい。
100W超級のハイエンドGPUなんて殆どのユーザには電力食いのゴミだろう。
こんなの金もらわなきゃつけたくない。
それなのにあれだけレビューサイトが盛り上がるんだから異常としかいいようがない。
これなら多少性能が下でもっと汎用性のあるプロセッサが流行ってもいいと思うんだが、
なかなかPCオタが乗ってこない。
定番3D Markやらなにやらのベンチスコアだけで速攻糞判定して終わりだね。
それこそIntelみたいな金持ちが本気で宣伝しなきゃ可能性が広まる余地もない。
いや、Larrabee自体には期待してないんだけど。
あと数年でPCオタもゲームグラフィックスに未来がないことにきがついて、
GPU市場が崩壊しても驚かない。
WiiやらDSが流行るのもゲームグラフィックスなんて実はたいして需要がないことの証明。
32bit第一世代〜第二世代くらいまでは良かったが、さすがにCell+GPUはね。
ゲーム表現の方向をグラフィックスだけで突き進みすぎた。
782,,・´∀`・,,)っ-○●◎:2008/10/04(土) 01:18:19 ID:1H5SvIu1
>>779
Fusionは少なくとも初期はローエンド向けのCPUとGPUのMCMだよ。
GPGPUとしてのパフォーマンスを狙ったものではない。
GPUをCPUのSIMDアクセラレータとして使う云々の構想はずっと先の話。


CUDAやCellの存在はIntelにとって反面教師
783Socket774:2008/10/04(土) 01:26:04 ID:MijKbN8c
>だからお前はゲームしか見てないんだろ。そんなもんIntelははなっから切り捨てて投入するっつーの。

だったら、なおさら普及しませんね
784,,・´∀`・,,)っ-○●◎:2008/10/04(土) 01:32:27 ID:1H5SvIu1
Photoshopプラグインという一例を示したが。
MPEG2/H.264のエンコーダなんかも用意されるだろうね。


2大馬鹿メーカーがGame Processing Unit性能に固執して
いつの間にかIntelに市場掌握されるというシナリオも想像するに楽しいものがある。
その意味じゃCellも着目点は良いんだがソフト資産を軽視しすぎた。
785Socket774:2008/10/04(土) 02:06:42 ID:NRe7vFds
Larrabeeがいくらx86だと言っても、ソフトの作り方を変えない限り
パフォーマンスでないでしょ。
いままでのソフト資産は結局リセットするしかないと思う。
786,,・´∀`・,,)っ-○●◎:2008/10/04(土) 02:33:58 ID:1H5SvIu1
ま、nVIDIAもIntelに市場とられまいと先手をうってきてはいるんだけどね。
近視眼ゲーマーには酷評されてるGTX200シリーズもこういう処理では大活躍。
http://pc.watch.impress.co.jp/docs/2008/0826/pegasys.htm

こういうのをはじめとして、多くの用途においてGPUとしての固定機能にとらわれない
汎用的なストリームプロセッサは圧倒的に有効なんだよ。
Larrabeeが失敗するしないにかかわらず、ゲーマー向け優先のGPUの市場はどのみち終わる。

で、nVIDIAやAMDが「ゲームの性能」をアピールするようになったらむしろIntelの勝ちが約束されたようなもの。

実際問題、非ゲーム市場においても先手を打たれること自体はIntelにとっては大した痛手ではない。
IntelはXeonを発表して10年も経たないうちにスパコントップ500の7割以上を掌握してしまった。
コードの保守とか拡張とか考えた場合、x86を理解できる技術者が多いことに加え、C/C++のような
メジャーな高級言語がそのまま使えることは大きな強みになる。
マイナーなCPUの技術者は単価も高いしね。
787,,・´∀`・,,)っ-○●◎:2008/10/04(土) 02:40:05 ID:1H5SvIu1
>>785
並列化プリミティブを埋め込んだりSSE Intrinsicsを使って記述した既存のx86向けコードを
謹製コンパイラを使えば512bit SIMD×多スレッド向けのコードに自動展開できるとしても?
Intelは既にそのレベルで動いてるよ。

ATiは自前コンパイラすら作れないCPUメーカーと合併したのが不幸だったな。
ファブ売却は秒読みのようだし。
788Socket774:2008/10/04(土) 02:44:17 ID:MijKbN8c
ま、無理だね
789,,・´∀`・,,)っ-○●◎:2008/10/04(土) 02:51:11 ID:1H5SvIu1
DX10.xが使えるVistaが不評な時点で、PCゲー市場はそろそろ終わりですよ。
790Socket774:2008/10/04(土) 03:00:24 ID:/ofP+oqN
>787
> 並列化プリミティブを埋め込んだりSSE Intrinsicsを使って記述した既存のx86向けコードを
> 謹製コンパイラを使えば512bit SIMD×多スレッド向けのコードに自動展開できるとしても?
787の中ではこれが画期的で進んだ技術で普及間違いなしだと思い込んでいるみたいだな。
一般のソフトウェア資産の中でSSE使っているようなのは、0.1%もねーよ。
嘆かわしいことだが、一般のソフトウェア技術者の中でSSEが使いこなせるのは一部です。
SSEとかいっている時点で敷居が高すぎ。ソフト屋のすそ野のレベルの低さをなめんな。
791Socket774:2008/10/04(土) 03:06:07 ID:bOJtBWAL
エンドユーザが近視眼的なのは当たり前の事。

買ってきて取り付ければ、ユーザにとって必要な性能を
満足させる様な製品じゃないってなら買う価値が薄いんだから。
そりゃ、メモリとかHDD(代替として高速化できるSDD)とか
完全に汎用性がある物なら安ければ売れる訳なんだけど。

ぶっちゃけ、「将来の為」的な性能しかない製品で成功したのってどれくらいあるよ?
792Socket774:2008/10/04(土) 03:07:47 ID:O8P507jZ
>>787
そうだな…AMDにはコンパイラが無い…CUDAにはCgがあるのに。
個人的にはIntelの一人勝ちではなく、nVidiaとIntelがベクタプロセッシングの方向でヒートアップしてくれるとうれしい。
そして波及的に加速するたんぱく質解析、ガンの特効薬発明、長生きする俺。
793,,・´∀`・,,)っ-○●◎:2008/10/04(土) 03:12:04 ID:1H5SvIu1
>>790
へぇ 俺には難しいとは思わないがな。実際俺程度でもSSEで飯食ってきたし。

ついでに0.1%もいれば十分だろ。
技術がない会社は、有効そうな箇所で謹製なりサードパーティ製なりのライブラリを使うだけでいい。
そういうのもIntelは提供してきた実績がある。
794Socket774:2008/10/04(土) 03:19:14 ID:NRe7vFds
コンパイラ頼りで並列化がんばっても並列度ほとんどあがらないじゃん。
コアがヒマもてあます。
ソフトの作り方を変えない限り無理だって。
795Socket774:2008/10/04(土) 03:19:51 ID:/ofP+oqN
> へぇ 俺には難しいとは思わないがな。
だ・か・ら君にとって難しいかどうかはどうでもよくて、
問題は世間一般のエンジニアがどう感じるかだろ。
コード書く人がほとんどいないハードウェアやソフトウェアインフラが
あっても普及するはずないじゃない。SSE云々はまだまだ敷居が高いって。

> ついでに0.1%もいれば十分だろ。
既存のコードの0.1%以下しかハードの性能生かせないようなものを
誰が買うんだよ。物好き以外は買わないただのゴミ。
796,,・´∀`・,,)っ-○●◎:2008/10/04(土) 03:28:17 ID:1H5SvIu1
>>791
将来のためでもなんでもないぞ。
Intelにかなり近いところのソフトメーカーは既にLarrabee用のソフトのために動いてるっしょ。

TMPGEncなんかも、おそらくはその一つ。
ペガシスは常にIntelの新命令セット対応のコードを搭載CPUのローンチに間に合わせてきた。

まあ、LarrabeeとGTX300シリーズ(?)の性能比較が見物だね。
797,,・´∀`・,,)っ-○●◎:2008/10/04(土) 03:29:41 ID:1H5SvIu1
>>795
80:20ルールって知ってる?Intelの分析だと実際は90:10程度だとか。
別に全部を並列化する必要なんてないんだよ。
798Socket774:2008/10/04(土) 04:15:55 ID:NRe7vFds
でそれコンパイラができるの?
799Socket774:2008/10/04(土) 08:41:38 ID:MhgKLykr
確かにファイル鯖に今のゲフォやラデの描画能力は必要ないわk
800,,・´∀`・,,)っ-○●◎:2008/10/04(土) 10:44:21 ID:1H5SvIu1
>>799
ファイル鯖はもともと描画能力要らないけどな。
ARM程度で余裕すぎる。

>>794
一つのタスクを分割するのが困難であれば複数のタスクを同時に実行すればよくね?
>>798
FFTとかDCTみたいなよく使われる処理はコンパイラで最適化しなくとも
ライブラリ化して提供しても十分だと思うけどね。

従来CPU向けに出来ることの一通りはLarrabeeでもできるんでね。


ネイティブコードが露出しててプロファイルによる静的な最適化が可能なことは
従来のCPUと同じ。
CUDAみたいな中間コード形式はランタイム環境のオーバーヘッドが大きい。

801Socket774:2008/10/04(土) 11:56:11 ID:JV/5Ki1D
> ネイティブコードが露出しててプロファイルによる静的な最適化が可能なことは従来のCPUと同じ。
既にATIがGPU Shader Analyzerでやってますね。
802,,・´∀`・,,)っ-○●◎:2008/10/04(土) 12:05:25 ID:1H5SvIu1
アレは使えない。
というか、x86のアセンブリコードが読める人と、GPUのそれが読める人
世の中にはどっちが多いですか?
803Socket774:2008/10/04(土) 12:13:29 ID:JV/5Ki1D
そりゃx86でしょうけど、必要ならどっちも読むでしょうね。
あなたがx86読めるのも必要だったからでしょう?
> アレは使えない。
の根拠はなんでしょうか。
804Socket774:2008/10/04(土) 12:13:46 ID:finUF1fT
そもそもx86である必要性があるんですか?
単体でOSが走るほど複雑化する意味は?
805,,・´∀`・,,)っ-○●◎:2008/10/04(土) 12:45:11 ID:1H5SvIu1
x86である理由は
RISCアーキが先行するHPC市場でシェアをかっさらうことが出来た理由と同じくコード資産だよ。

まあ、どのみちパフォーマンス上重要な箇所は全て書き直しになるよ。
ここで80:20(90:10)ルールの話にも繋がるわけだけど、じゃあ残りの80(90)をどう賄うか?

CellとかCUDAは自己完結するコードを書こうと思ったら残りの部分含めて全部書き直し。
その点でパフォーマンス上あまり重要でない部分だけに限っても流用できるのは有意義なんだ。

まあ、残りはCPUにまる投げってことならそれでもありだろうけどね。
(というか、パフォーマンス云々以前に従来GPUへの移植そのものが不可能なコードのほうが多いかもね)
それはそれでIntelにとって都合がいい。
806Socket774:2008/10/04(土) 14:53:47 ID:9tAv1fME
複雑化したことによる規模の増大と
それによるパフォーマンスのトレードオフは?
807,,・´∀`・,,)っ-○●◎:2008/10/04(土) 15:15:56 ID:1H5SvIu1
逆に、他にまともなソリューションがあるの?
CUDAやCALは資産の継承「すら」できない。

まぁどのみちタダ飯食いをしてきたソフト開発者はマルチコアにはまじめに向き合わないといけないんだが
808MACオタ>団子 さん:2008/10/04(土) 15:18:32 ID:YIMBdh96
>>805
  -------------------
  RISCアーキが先行するHPC市場でシェアをかっさらうことが出来た理由と同じくコード資産だよ。
  -------------------
色々脳内で妄想が涌いているみたいすけど、HPC市場に関してわ、一般の市場とハードウェアが共通化
できるという理由でコストパフォーマンスが良かったからす。あの世界の「コード資産」わソースコード
レベルなのでISAわ、あまり関係無いす。
http://www.artcompsci.org/~makino/articles/future_sc/note006.html
  ===================
  つまり、 1975 年には Cray-1 は同じ値段でミニコンを沢山買ったのに比べて 50 倍の性能が
  あったのが、 2005 年には NEC SX-8 は同じ値段だけ PC を買ったのの 1/60 の性能になって
  いる、ということです。言い換えると、ハイエンドとローエンドの相対的な価格性能比は 30 年間で
  3000倍変わった、つまりスーパーコンピューターは 3000倍高い買い物になった、ということです。
  ===================
809Socket774:2008/10/04(土) 15:29:48 ID:NRe7vFds
>>805
> x86である理由は
> RISCアーキが先行するHPC市場でシェアをかっさらうことが出来た理由と同じくコード資産だよ。

既存のバイナリコードにメリットがないのだから、そうはならないね。

> まあ、どのみちパフォーマンス上重要な箇所は全て書き直しになるよ。
> ここで80:20(90:10)ルールの話にも繋がるわけだけど、じゃあ残りの80(90)をどう賄うか?
>
> CellとかCUDAは自己完結するコードを書こうと思ったら残りの部分含めて全部書き直し。
> その点でパフォーマンス上あまり重要でない部分だけに限っても流用できるのは有意義なんだ。

それはおかしい。
Cellだってお前が言ったFFTとかDCTのようなホットスポットな処理を
SPEにオフロードされたライブラリがあれば、あとは今までどおりPPEで
のんびりそれ使ってプログラム書けばいいだけ。
状況はLarrabeeと同じといえる。

そもそもIntel自体がLarrabeeではL2をスクラッチパッド的に使え、スレッドではなく
ファイバーを使えと言っているわけで、これは今までどおりのプログラミングスタイルでは
パフォーマンスがでないということ。
これはグラフィクス以外でも同様だろう。

パフォーマンスを出す観点で言うと苦労はCellとあんまりかわらないと思う。
810MACオタ:2008/10/04(土) 17:53:47 ID:YIMBdh96
HKEPCがVIA nano搭載EPIA-SNのレビューを掲載しているす。
諸々の報道にあるように、近日市場に登場する模様す。
http://www.hkepc.com/?id=1797&fs=c1hh
811Socket774:2008/10/04(土) 18:18:04 ID:0FDZu3yn
グレンが9月末にボリューム出荷が始まったことを話してたが
ほとんどはHP行きかね

EPIAもSNじゃ無い方がうれしいんだが・・
PCIEものはMM3500見たいにして出しくれれば良いなぁ
812MACオタ:2008/10/04(土) 20:03:29 ID:YIMBdh96
前スレで書いたSonyのコレhttp://www.sony.co.jp/SonyInfo/News/Press/200808/08-095/index.html
TerraSoftのサイトの紹介を見る限り、まともに売る気があるとわ思えないす。何を考えているすかね?
http://www.terrasoftsolutions.com/products/sony/bcu-100.shtml
  -----------------------
  This product is available exclusively from Sony Integration. Please contact your local Sony
  account manager or complete the Terra Soft solutions form and Terra Soft will have someone
  from Sony contact you promptly.
  -----------------------
RSXの知的所有権的縛りが、よほどキツいとか??
813,,・´∀`・,,)っ-○●◎:2008/10/04(土) 20:31:27 ID:1H5SvIu1
> それはおかしい。
> Cellだってお前が言ったFFTとかDCTのようなホットスポットな処理を
> SPEにオフロードされたライブラリがあれば、あとは今までどおりPPEで
> のんびりそれ使ってプログラム書けばいいだけ。
> 状況はLarrabeeと同じといえる。

SPEのスループットに見合うほどPPEの性能が良くないの知ってて言ってるなら大したもんだよ。
PS3の現実は、スカラ中心のコードまでわざわざSPEで書く羽目になってる。
そうでもしないとPPEに処理が集中して追いつかないから。


> そもそもIntel自体がLarrabeeではL2をスクラッチパッド的に使え、スレッドではなく
> ファイバーを使えと言っているわけで、

あんたファイバーってなんだか解ってるの?
1コアで動く4つのスレッドを束ねた単位にすぎないよ。

知ったかぶりもたいがいにしろ。
814,,・´∀`・,,)っ-○●◎:2008/10/04(土) 20:33:19 ID:1H5SvIu1
つーかオブジェクトコードレベルでの互換には流石に期待はできないが
アセンブリコードレベルで最適化された資産は結構あるでの。
815,,・´∀`・,,)っ-○●◎:2008/10/04(土) 20:43:30 ID:1H5SvIu1
>>808
ぷぷぷ
まさかXeonMPとPentium 4のプラットフォームが同一だとでも思ってるわけじゃないよな?
ECCメモリにしても一般PCには使わないよ。

使い回せるのはやっぱりコード資産だよ。

色んな意味でコード資産だ。
おまいさんが信奉するハゲた人も、x86向けのソースコード資産および
最適化のできる人的資産の多さからx86移行の優位性を説いてたろ。
どのみち性能引き出すためにはアセンブリレベルでの最適化は必要だし。
GCCも相対的にはx86が一番最適化ノウハウが詰め込まれてると言われてるくらいだ。

つーか、ソースコードレベルでも速いコードを書こうとすればビッグエンディアンかリトルエンディアンか
でもだいぶ書き方が変わったりする。
それに、最適化やハード固有のアトミック操作などが必要なところにはIntrinsicsを使ったりするのが常套手段
パフォーマンスを引き出すためにはソースコードレベルでもCPU依存にせざるを得ない。

x86のCPU依存は綺麗なCPU依存、と言う気はないが
潰しが利くという意味では、ようはそういうことだ。
816,,・´∀`・,,)っ-○●◎:2008/10/04(土) 20:53:04 ID:1H5SvIu1
まぁMACヲタちゃんは日本語で読めるこんな記事すら読めないかわいそうな子なんだろうけどさ
http://www.intel.co.jp/jp/business/japan/feature/HPC/intel-hpc02.htm

817,,・´∀`・,,)っ-○●◎:2008/10/04(土) 21:12:06 ID:1H5SvIu1
L2をスクラッチパッド的に使えって言ってる文献はないな。

ファイバーについて補足しておこう。
同じL1とローカルL2を共有する同一ファイバー間でのデータ共有はパフォーマンスロスがあまりなし
で行えるが、異なるファイバーへのメモリ読み書きを行う場合リングバスを介して他のコアの
メモリを参照することになるので効率が若干落ちる。

これ自体はccNUMAやInfiniBand/Ethernet接続されたクラスタで
ローカルのメモリへのアクセスが速い理屈と何ら変わらない。
むしろ内部リングバスで高速に接続されてる分アクセスそのものは圧倒的に高速。
818Socket774:2008/10/04(土) 22:12:13 ID:JV/5Ki1D
GPUSAが使えないって根拠マダー?
819MACオタ>団子 さん:2008/10/04(土) 22:21:04 ID:YIMBdh96
>>813-817
今回わ流石にコメントするのが嫌になるほど間違いだらけなんすけど。。。
>>813
  ----------------------
  あんたファイバーってなんだか解ってるの?
  1コアで動く4つのスレッドを束ねた単位にすぎないよ。
  ----------------------
ファイバーわ、プリエンプティブマルチタスクのスレッドの中に協調型マルチタスクで
明示的に複数のプログラミングコンテキストを埋め込む手法す。
http://itpro.nikkeibp.co.jp/members/NBY/techsquare/20030306/2/
>>816
その記事で押してるのわItanium(笑) しかも著者わ『元麻布 春男』。。。
820Socket774:2008/10/04(土) 22:37:00 ID:NRe7vFds
>>813
なんつーか、ガイドラインにできそうなぐらい典型的な詭弁だな。
そうやって議論すり替えを平気でやって相手を負かすことに必死になるところがお前の欠点だな。
あと親心で言うとLarrabeeのファイバーの理解が間違っているからそこは勉強しておくことをおすすめする。

で本題にもどって、x86のソースコード資産が活かせるというが、
マルチコア対応というのは根本的なソフトウェアの組み方、
平たく言うとアルゴリズムとデータ構造が変わるわけで
小手先のソース変更で対応できるもんではない。

x86であることで今までの最適化ノウハウが生かせること、(で、それは確かにCellに対する
優位性だろう)ということは否定しないが、マルチコアで動かすというのは
そういうレベルの話ではないわけだ。

Larrabeeはx86コアだから今までの資産を活かすことで開発に苦労せずに
マルチコア対応アプリが生み出せるというのは夢を見すぎだと思う。

821Socket774:2008/10/04(土) 22:54:57 ID:XQEKSsgd
>>813
>SPEのスループットに見合うほどPPEの性能が良くないの知ってて言ってるなら大したもんだよ。
>PS3の現実は、スカラ中心のコードまでわざわざSPEで書く羽目になってる。
>そうでもしないとPPEに処理が集中して追いつかないから。

スカラ部とベクトル部の比率の問題でISAは関係ないとおもう

>>815
>まさかXeonMPとPentium 4のプラットフォームが同一だとでも思ってるわけじゃないよな?

XeonMP使ってるHPCなんてTOP500の中にいくつある?
822,,・´∀`・,,)っ-○●◎:2008/10/04(土) 22:57:34 ID:1H5SvIu1
>>819
> ファイバーわ、プリエンプティブマルチタスクのスレッドの中に協調型マルチタスクで
> 明示的に複数のプログラミングコンテキストを埋め込む手法す。

だから、Larrabeeにおけるfiberは、同じコアで動くスレッド4つをもって協調型マルチタスクやるんだよ。
他のコアで動くスレッドを同一ファイバーに入れると協調どころか遅くなる。

馬鹿は黙ってなさい
823,,・´∀`・,,)っ-○●◎:2008/10/04(土) 23:02:29 ID:1H5SvIu1
>>820
理解力無いにもほどがある。
複数スレッドに分割しなくても良いような通る頻度の少ない処理も含めて1プログラムだよ。
1スレッドだけ動いてれば良いような処理だって、性能ではなく機能として必要なんだよ。
そういうのを実装した資産は積極活用すべきなんだよ。

それとも、プログラムの全てのモジュールは全部のコアを余すことなく使うように書き直さなければ
ならないなんて脳内法律でも存在してるのか?
あんたはプログラミングはどがつく素人だな
824Socket774:2008/10/04(土) 23:07:55 ID:NRe7vFds
>>823
その理屈はCellにも通用するけど?
825Socket774:2008/10/04(土) 23:09:47 ID:NRe7vFds
>>822
Larrabeeのfiberは通常の意味のfiberとなんら変わらない。

> 同じコアで動くスレッド4つをもって協調型マルチタスクやるんだよ。

自分で矛盾したこと言ってることに気づけよ。
このプログラミングのど素人がw
826,,・´∀`・,,)っ-○●◎:2008/10/04(土) 23:17:32 ID:1H5SvIu1
>>824
Cellでどう通用するの?www

fiberについては俺は主張は全く曲げてない。
MACヲタがLarrabeeでの実装モデルを知らないが故に馬鹿を晒しただけ。



で、Larrabeeのスーパーバイザ上では関連づけられたスレッド4つが同一コアで動くようにスケジューリングされる。

どう難しいんだ?
スレッドアフィニティをソフト側で明示的にちょこちょこ弄らなきゃならないWindowsやLinuxでの
ccNUMAより全然わかりやすいぞ。
827Socket774:2008/10/04(土) 23:27:28 ID:Qie7nm2D
スレッドやファイバーの元々の意味を考えればわかりそうなもんだが

団子、常識のない子…
828,,・´∀`・,,)っ-○●◎:2008/10/04(土) 23:32:00 ID:1H5SvIu1
従来型コアのPPEとメモリモデルが特殊なSPEのヘテロジニアス構成は
スカラ処理をPPEだけで全部賄おうとすると処理性能が足りない。
解決策としてOpteronを借りてきたりしてるのがIBMのロードランナーだと解釈してる。

ゲームでは他に頼めないからSPEでスカラCPUの代替をやるしかないわけだが
それはそれで128ビット単位での読み書きしかできないロード・ストアが致命的にネックになる。
メモリ節約のためのテクニックが必要なのに、ロートル御用達の8ビット〜16ビットマイコン時代の
テクニックは全く通用しない。だから開発者に人気がないんだ。


x86+SIMD拡張のモデルをとるはLarrabeeだけでスカラ処理・ベクトル化並列処理も両方を記述でき、
同じスレッドでシームレスに交換できる。
もちろんスカラ処理においては1バイトだけ読み書きするのにmov al, byte ptr[mem]なんて書き方が
そのまんま使える。

どうデータ構造を変える必要があるの?x86の資産継承しまくりじゃん。
829,,・´∀`・,,)っ-○●◎:2008/10/04(土) 23:35:17 ID:1H5SvIu1
>>827
残念だがあんたにはその常識すらないから。
全部解った上で言ってるよ。

Larrabeeのファイバーモデルが4スレッドで1対をなしているのはさんざん既出の情報。
むしろ4スレッド1組以外のプログラミングモデルってLarrabee標準のスーパーバイザで対応してるの?
830,,・´∀`・,,)っ-○●◎:2008/10/04(土) 23:37:33 ID:1H5SvIu1
×ロードランナー
○BlueGene

831Socket774:2008/10/04(土) 23:38:51 ID:NRe7vFds
>>826
> >>824
> Cellでどう通用するの?www

ホットスポットなところだけマルチコア対応に書き換えるというなら
CellでそういうところをSPEにオフロードさせましょうと言ってるのと
何も変わらないということ。

お前がCellにダメだしするのは不思議と思わないが、
x86だからLarrabeeはOKでCellがダメというのはおかしい
というがおれのつっこみ。

LarrabeeのfiberについてはMACヲタが適切なリンクを紹介してくれるだろう
からそれで勉強しな。
core/thread/fiber/strandって階層のところな。
832,,・´∀`・,,)っ-○●◎:2008/10/04(土) 23:45:19 ID:1H5SvIu1
Cellはオフロードモデルじゃ致命的に性能出ないからな。PPEからSPEにデータ流すのにいちいちDMAで流す必要あるじゃん。

スカラ演算ユニットもベクタユニットも同じ演算パイプライン上にあり
vmovd/vpinsr*/vpextr* 1命令だけで同じフローでスカラからベクタ、ベクタからスカラにデータを
交換できるx86をよりにもよってCellと一緒にするなんて

プログラムやったことない人間からしか出てこない詭弁
833,,・´∀`・,,)っ-○●◎:2008/10/04(土) 23:46:15 ID:1H5SvIu1
>>831
っていうか。フェンスに強制終了されちゃった子は勉強以前の問題ですので
834MACオタ:2008/10/04(土) 23:47:04 ID:YIMBdh96
>>831さんに振られたようなので。。。該当の文書わ>>132のリンク先す。
835Socket774:2008/10/04(土) 23:50:41 ID:NRe7vFds
>>828
おれの経験上SPEがSIMDオンリーだとかそんなことは大した問題にならないね。
非ベクタ演算であってもトータルでボトルネックにならなけりゃいいんだもの。
Cellの困難さはパフォーマンス出すためには1+8(or7)のマルチコア対応を
強制させられるところというのがおれの認識。
本質的に細かいハードウェア構成の問題ではないと思っている。
836Socket774:2008/10/04(土) 23:54:21 ID:NRe7vFds
>>832
お前のCellの指摘はちっさすぎる。
x86以外ではまともなプログラミング経験のない人間の詭弁w
837,,・´∀`・,,)っ-○●◎>>FUCKヲタさん:2008/10/04(土) 23:54:40 ID:1H5SvIu1
>>834
> この中に出てくるLarrabeeにおけるコンテキストの最小単位"Fiber"って、リソースがダブらないよう
> に複数の処理をするコードを自前で書けという意味にも取れるす。

スーパーバイザが割り当てるのは同じコアで動くことが保証される4スレッドまでなので。
リソースをダブらせない方法をどう考える必要があるのですか?
なんのための仮想メモリアドレッシングですか?

まあどっちにせよ、異なるファイバー間のデータの読み書きをするケースもあるだろうし
スピンロックなりMutexなりの方法で排他制御しながら共有メモリを読み書きするモデルも
存在するのだろうな。
838,,・´∀`・,,)っ-○●◎:2008/10/04(土) 23:55:41 ID:1H5SvIu1
>>836
フェンスに強制終了されちゃった子はしつこいね。
未だに自分が間違ってるという認識がない
839Socket774:2008/10/04(土) 23:58:27 ID:NRe7vFds
fiberとthreadの区別がつかない人が何をおっしゃる
840,,・´∀`・,,)っ-○●◎↓本日の自己分析乙:2008/10/05(日) 00:00:01 ID:PiRb9Agc
839 名前:Socket774[sage] 投稿日:2008/10/04(土) 23:58:27 ID:NRe7vFds
fiberとthreadの区別がつかない人が何をおっしゃる
839 名前:Socket774[sage] 投稿日:2008/10/04(土) 23:58:27 ID:NRe7vFds
fiberとthreadの区別がつかない人が何をおっしゃる
839 名前:Socket774[sage] 投稿日:2008/10/04(土) 23:58:27 ID:NRe7vFds
fiberとthreadの区別がつかない人が何をおっしゃる
839 名前:Socket774[sage] 投稿日:2008/10/04(土) 23:58:27 ID:NRe7vFds
fiberとthreadの区別がつかない人が何をおっしゃる
839 名前:Socket774[sage] 投稿日:2008/10/04(土) 23:58:27 ID:NRe7vFds
fiberとthreadの区別がつかない人が何をおっしゃる
841Socket774:2008/10/05(日) 00:00:23 ID:F27HiI7l
フェンスはおれだよ(笑)
842,,・´∀`・,,)っ-○●◎:2008/10/05(日) 00:04:20 ID:PiRb9Agc
「勉強してこい」はフェンスくんの18番


フェンス君が携帯も使って複数人を装うのはこのスレでは常識
843MACオタ>団子 さん:2008/10/05(日) 00:04:55 ID:IsV0akqP
>>837
今日わ気分がすぐれないので、あまりレベルの低い絡み方をするのわ勘弁して欲しいす。
それわそれとして。。。
  ---------------
  スーパーバイザが割り当てるのは同じコアで動くことが保証される4スレッドまでなので。
  ---------------
Fiberわ、かつてのClassic MacOSと同様の協調型マルチタスクす。従って特にハードウェア的
な支援無しでn個のコンテキストを切り替えることができるす。レジスタもサブルーチンと同様に
スタックへ退避させるだけなので、>>132で書いた、
  ================
  予想以上にレジスタファイルが大きいとか?
  ================
というのわ、今考えると見当外れだったす。
844MACオタ@補足:2008/10/05(日) 00:08:25 ID:IsV0akqP
fiberの件わ、団子さんなら解説記事よりこちらの方が判り易いすかね。。。
http://msdn.microsoft.com/en-us/library/ms682661(VS.85).aspx
845,,・´∀`・,,)っ-○●◎:2008/10/05(日) 00:11:02 ID:PiRb9Agc
もちろんLarrabeeにはレジスタファイルは4スレッド分ある。
OS側で1コアでまでの4つのスレッドが動くように割り当ててくれるのでアプリ側は何も考える必要がない。

あ、わかってると思うけど、1ファイバーにつき必ず4スレッド動かさないといけないわけじゃないよ。
846Socket774:2008/10/05(日) 00:17:42 ID:hpAFqnz6
GPUSAの使えない根拠が来なくて寂しいなぁ。
847,,・´∀`・,,)っ-○●◎:2008/10/05(日) 00:21:59 ID:PiRb9Agc
Win32の場合、プロセスアフィニティとスレッドアフィニティってのがあって
データ交換を頻繁にやるスレッドに対しプロセッサを明示的にお互い近いところに
専用APIを用いて固定してやるなんて手法がよく使われる。もちろんアプリ側での対応な。

そういうのは別に珍しいモンでもないよ。


LarrabeeでいうところのFiberは同じ1コアで動かすべき4つまでのスレッドを纏めたものにすぎない。
848Socket774:2008/10/05(日) 00:26:08 ID:ToBxbpc8
Data-Parallelism on Larrabee

・Key ideas of data parallel programming
 - Define an array (grid) of parallel program invocations
 - Define groups within the grid that can share on-chip memory

・Mapping program invocations on Larrabee
 - Strand: a program invocation that runs in one SIMD lane
 - Fiber: a SW-managed context that runs 16-64 strands
 - Thread: a HW-managed context that switches among 2-10
  fibers in order to cover long latencies (e.g. texture filtering)
 - Core: independent processor that runs 1-4 threads, executing
  all strands in a group (their shared memory is in the core's L2 cache)
849,,・´∀`・,,)っ-○●◎:2008/10/05(日) 00:32:13 ID:PiRb9Agc
>>846
そうだね素敵だね
http://car.squares.net/mini/blog/archives/200604/142236.html

もといATiのRV770自体のGPGPUとしてのパフォーマンスがアレだろ。
DX9cまでのGame Processing Unitとしてはそれなりだけど
汎用プロセッシングとの両立なんてできないんだよ。



ちなみにIntelはハードの固定機能だった部分までソフトでやろうとしてるわけだけど
これにもちゃんとメリットはある。ゲームに使う上での。
Xbox 360でXboxのエミュレーションが困難な理由がGPUにあると言われてるが
ソフトGPUにしてしまえば柔軟に対応できるんだよね。
さらにDX11や12や13が出ても半永久的に新機能に対応していける。
850MACオタ>団子 さん:2008/10/05(日) 00:32:27 ID:IsV0akqP
>>847
  -------------------
  LarrabeeでいうところのFiberは同じ1コアで動かすべき4つまでのスレッドを纏めたものにすぎない。
  -------------------
困ったモノす。とりあえず>>132の最初のリンクのp.10を読んで欲しいす。
  ===================
  ・Mapping program invocations on Larrabee
   - Strand: a program invocation that runs in one SIMD lane
   - Fiber: a SW-managed context that runs 16-64 strands
   - Thread: a HW-managed context that switches among 2-10 fibers in order to cover long
    latencies (e.g. texture filtering)
   - Core: independent processor that runs 1-4 threads, executing all strands in a group
    (their shared memory is in the core’s L2 cache)
  ===================
851MACオタ>848 さん:2008/10/05(日) 00:33:31 ID:IsV0akqP
>>848
被って、失礼したす。
852Socket774:2008/10/05(日) 00:39:41 ID:hpAFqnz6
>>849
いい加減火病るの止めたらいいのに。
自分から自爆してくれるのは楽だけどそれに付き合うこっちは正直うんざり。
> もといATiのRV770自体のGPGPUとしてのパフォーマンスがアレだろ。
また根拠のないことを。まさかRV670をターゲットにしてるSDKv1.1を使った
アプリケーションのパフォーマンスが振るわないからなんていわないよね?
で、GPUSAの使えない根拠マダー?
853,,・´∀`・,,)っ-○●◎:2008/10/05(日) 00:43:10 ID:PiRb9Agc
F@Hのあの醜態について言い訳よろしく
854Socket774:2008/10/05(日) 00:43:56 ID:hpAFqnz6
レス読めないのかな。
> まさかRV670をターゲットにしてるSDKv1.1を使った
> アプリケーションのパフォーマンスが振るわないからなんていわないよね?
855Socket774:2008/10/05(日) 00:44:18 ID:4rTLfi+J
HPCのもてはやされる、ある方面の分野に「限れば」、
小さなベンチマーク専用のプログラムのソースをグジグジいじくったりしてGFLOPS計るだけだったり
苦ニプロの成果報告のデータ取りのための小さなシミュレーションプログラムを院生やポスドクに
作らせて、論文書きちらかして、税金とパルプ資源ドブに捨てて終わりの世界だから
バイナリレベル資産はほとんど関係ない。
逆に言うとそこにはまって適応しすぎたHPC事業は、それ以上の応用や市場に
進出できずいずれ自滅なんだけれどもさ
856,,・´∀`・,,)っ-○●◎:2008/10/05(日) 00:45:40 ID:PiRb9Agc
> また根拠のないことを。まさかRV670をターゲットにしてるSDKv1.1を使った
> アプリケーションのパフォーマンスが振るわないからなんていわないよね?

世代が変わると古いプログラムのパフォーマンスが落ちることは
GPGPUが流行らない理由の説明になってしまうわけで
857,,・´∀`・,,)っ-○●◎:2008/10/05(日) 00:47:30 ID:PiRb9Agc
>>855
バイナリレベル資産が継承できるなんて言ったか?
多分オブジェクトコードそのまんまじゃ使えないし

コード資産はバイナリコードのみであり
アセンブリコードやIntrinsicsを使ったソースコードの存在は認められない人ですか?
858Socket774:2008/10/05(日) 00:48:47 ID:4rTLfi+J
アセンブリコードは資産じゃないしw
ソースがあっても事業まで結びつけるには何年も掛かる
859,,・´∀`・,,)っ-○●◎:2008/10/05(日) 00:52:31 ID:PiRb9Agc
>>854
読まない。

むしろそれだけで十分弱点に値するよ。
あんたももしAMD厨なら古いプログラムが遅くなるNetBurstを激しく罵っただろ?

バイナリレベルでの互換性が重視されるPCアプリケーション市場においてCPUの代替として使っていくなら
コロコロマイクロアーキテクチャが変わって古いプロセッサ向けに書いたコードが遅くなるなんて
ことがあってはならない。

だから駄目なんだ
860Socket774:2008/10/05(日) 00:53:36 ID:4rTLfi+J
そいや先日、DOS時代に書いた.exeがHTだと動かなかったな…
861,,・´∀`・,,)っ-○●◎:2008/10/05(日) 00:54:55 ID:PiRb9Agc
>>858
アセンブリコード・ソースコードが資産じゃないなんてどこの業界の人間の言葉だよwww



>>MACヲタ
で、やっぱりアフィニティ設定は特に意識する必要ないだろ?
862Socket774:2008/10/05(日) 00:55:40 ID:4rTLfi+J
じゃあgcc -Sで生成したコードをバックアップして後生大事に取っておくことだなw
863Socket774:2008/10/05(日) 00:55:58 ID:ToBxbpc8
団子> LarrabeeでいうところのFiberは同じ1コアで動かすべき4つまでのスレッドを纏めたものにすぎない。

Intel> - Fiber: a SW-managed context that runs 16-64 strands
Intel> - Thread: a HW-managed context that switches among 2-10 fibers in order to cover long latencies (e.g. texture filtering)
864Socket774:2008/10/05(日) 00:57:43 ID:ToBxbpc8
団子> で、やっぱりアフィニティ設定は特に意識する必要ないだろ?

Intel> - Core: independent processor that runs 1-4 threads, executing all strands in a group (their shared memory is in the core’s L2 cache)
865Socket774:2008/10/05(日) 00:58:52 ID:4rTLfi+J
それ、同期境界がらみジャね?
866,,・´∀`・,,)っ-○●◎:2008/10/05(日) 01:00:35 ID:PiRb9Agc
>>862
要らないよ。GCCの吐いたコードなんてObjに変換してからIntel方式に逆アセンブルしないと読む気がしない。
まさかアセンブリコードはコンパイラに吐かせるだけのものだと思ってるわけじゃないよな?


>>863
「フェンスに強制終了させられる」理論に当てはめれば正しいといえる。
867Socket774:2008/10/05(日) 01:01:27 ID:4rTLfi+J
いいから全部アセンブラで書いてそれだけとっておけw
868,,・´∀`・,,)っ-○●◎:2008/10/05(日) 01:03:30 ID:PiRb9Agc
まあべつにC/C++ソースコードでもいいよ
CUDAやCALで普通のC/C++が通るようになるのはいつですか?
869Socket774:2008/10/05(日) 01:04:04 ID:hpAFqnz6
>>856
> GPGPUが流行らない理由の説明になってしまうわけで
根拠(ry
そもそもF@HでRV770がRV670より遅いって報告は
http://foldingforum.org/viewtopic.php?f=42&t=3361
この人くらいで、大抵は同じPPDだよ。
870,,・´∀`・,,)っ-○●◎:2008/10/05(日) 01:05:33 ID:PiRb9Agc
>>865
8コアだか16コアだかでリングバスによってL2を共有する1クラスタを形成してるらしいから大体計算合うね
871Socket774:2008/10/05(日) 01:09:11 ID:ToBxbpc8
団子> LarrabeeでいうところのFiberは同じ1コアで動かすべき4つまでのスレッドを纏めたものにすぎない。

これはどうなんだよwww
872Socket774:2008/10/05(日) 01:09:22 ID:4rTLfi+J
GPUより圧倒的に速いとか、ネックになっているアプリで8コアの数倍速いとか
アドバンテージがはっきりしない
上と下から挟まれた板挟み状態から抜け出せないと苦戦か?
インテルは他社との競争に目を捕らわれ杉か?
873Socket774:2008/10/05(日) 01:09:24 ID:hpAFqnz6
>>868
> CALで
あまり調べずに否定してるってのがよくわかる。
.NETのJITコンパイラでC++が通るって言うのはおかしいでしょ?
見当違いのレスをしてる原因はそこだろうからもうちょっと調べてくれ。
あまり興味がないことについて調査するの面倒だろうけどさ、だったら無下に否定しちゃいけないよ。
874Socket774:2008/10/05(日) 01:10:20 ID:ToBxbpc8
>>865
どれに対するレスかしらんが、864なら同期境界ってなんのことだ
875Socket774:2008/10/05(日) 01:11:54 ID:4rTLfi+J
すまんけど、あえてぼかして書いた
876,,・´∀`・,,)っ-○●◎:2008/10/05(日) 01:12:09 ID:PiRb9Agc
>>870
「私の肛門もフェンスに強制終了させられそうです」
877Socket774:2008/10/05(日) 01:14:12 ID:4rTLfi+J
オレが広げて逃げ道作ってやろうかニヤニヤ
878Socket774:2008/10/05(日) 01:15:26 ID:ToBxbpc8
>>875
団子以下の真似はやめてくれ
879,,・´∀`・,,)っ-○●◎:2008/10/05(日) 01:15:29 ID:PiRb9Agc
>>873
Brook+(笑)だったらよかったの?
アレただのトランスレータじゃん。制限そのものをクリアできるわけではないし。

いちおうC++はインタープリタ実装もあるよ
最近のインタプリタはJITコンパイラでネイティブコードを生成するのがナウなヤングにバカウケ。
880Socket774:2008/10/05(日) 01:16:40 ID:4rTLfi+J
団子以下…orz
今度こそ人間に生まれ変わってみせるっぜ
881,,・´∀`・,,)っ-○●◎:2008/10/05(日) 01:19:35 ID:PiRb9Agc
ちなみにGoogle Chromeに実装されてるJavaScriptエンジンは実数演算のコードに対し
ガチでSSE(Win32版の場合)使ったコードを動的生成する。だから圧倒的に爆速

ハードの運命を決めるのは結局はソフト屋だよ。
882,,・´∀`・,,)っ-○●◎:2008/10/05(日) 01:20:02 ID:PiRb9Agc
>>880
フェンス君よりは上だから生`
883Socket774:2008/10/05(日) 01:21:08 ID:hpAFqnz6
>>879
あのさぁ、話逸らすの止めてくれない?
団子が雑音レベルだと思いたくないんだけど、そろそろ限界だよ。
GPUSAが使えない根拠を聞いてたのに何でSDKv1.1からBrook+コンパイラが
独自拡張版HLSL経由でCALILを吐くようになったって話しなきゃならないわけ?
884Socket774:2008/10/05(日) 01:22:18 ID:YrFE5okz
都合が悪くなると聞いてもいないのに見当違いの事を語りだすのは団子の仕様です
885,,・´∀`・,,)っ-○●◎:2008/10/05(日) 01:23:35 ID:PiRb9Agc
>>863
それ、はつみみです

STL通る?Boost通る?芦屋に家が建つ?
886Socket774:2008/10/05(日) 01:23:40 ID:ToBxbpc8
>>883
団子はそういう奴なんです

団子ファイバーについても永遠にはぐらす予定です
887,,・´∀`・,,)っ-○●◎:2008/10/05(日) 01:24:17 ID:PiRb9Agc
私の肛門もフェンスに強制終了させられました
888Socket774:2008/10/05(日) 01:24:59 ID:ToBxbpc8
おれへの侮辱はいくらでも勘弁してやるから、はやく団子ファイバーの訂正をしておくれ
889,,・´∀`・,,)っ-○●◎:2008/10/05(日) 01:27:24 ID:PiRb9Agc
>>653の主張の正当性なみには正しいんじゃないの
890,,・´∀`・,,)っ-○●◎:2008/10/05(日) 01:28:10 ID:PiRb9Agc
>>885>>883の間違い
891Socket774:2008/10/05(日) 01:31:09 ID:ToBxbpc8
団子> LarrabeeでいうところのFiberは同じ1コアで動かすべき4つまでのスレッドを纏めたものにすぎない。
Intel> - Fiber: a SW-managed context that runs 16-64 strands
Intel> - Thread: a HW-managed context that switches among 2-10 fibers in order to cover long latencies (e.g. texture filtering)

これが正しいねえ…
字面だけでも間違っているんだけどねえ
892Socket774:2008/10/05(日) 01:34:26 ID:ToBxbpc8
まあ、なんにしろ

団子> >>653の主張の正当性なみには正しいんじゃないの

団子ファイバーをいっこうに訂正しないところをみると、653の正しさは認めてもらえたようだ
893Socket774:2008/10/05(日) 01:34:45 ID:8bHsAkll
ちょとまてC言語の仕様に反してないか
それともCじゃないのか
894Socket774:2008/10/05(日) 01:37:42 ID:hpAFqnz6
>>885
×>>863
>>883
ってことでおkかな?
> STL通る?Boost通る?
C++のコンパイラじゃないんだから通るわけないでしょ。

相変わらずGPUSAが使えない根拠について教えてくれない理由がさっぱりわからない。
答えるつもりある?
895Socket774:2008/10/05(日) 01:40:59 ID:ToBxbpc8
相変わらず団子ファイバーの訂正をしない理由がさっぱりわからない。
答えるつもりある?
896,,・´∀`・,,)っ-○●◎:2008/10/05(日) 01:50:29 ID:PiRb9Agc
>>894
ないよ

でもGPGPUがクライアントサイドで使い物にならない理由を自ら説明しちゃったのは不覚だったねぇ。
頻繁に更新されるGPUの世代ごとに別々の最適化しないといけないってことだろ?



つーか、まだわからんかねねヴァカは

Fiber = 64 Strandって書いてあるだろ自分で引用された文献に
さて、VPUのベクトル幅は16Wayで、4つのハードウェアスレッドが動くから64並列

1ファイバーはハードウェア的には4スレッドなわけだよ

まさかStrandが指す意味がわからないなんて・・・
897Socket774:2008/10/05(日) 01:56:48 ID:ToBxbpc8
え?
さすがに間違いには気づいたが、団子の性格的に訂正できないだけだと思っていたんだが
898Socket774:2008/10/05(日) 02:01:28 ID:hpAFqnz6
>>896
> ないよ
これもいつもの通り大して調べずに否定してただけだったのね。

> でもGPGPUがクライアントサイドで使い物にならない理由を自ら説明しちゃったのは不覚だったねぇ。
え、どこ?

> 頻繁に更新されるGPUの世代ごとに別々の最適化しないといけないってことだろ?
そんなことを言った覚えは無いよ。どこら辺?
899,,・´∀`・,,)っ-○●◎:2008/10/05(日) 02:03:27 ID:PiRb9Agc
GPU的には「32bitのスカラ単精度データ64個をセットアップして同じ処理をする」のほうが
わかりやすいだろ?
前のスレからフェンス君が珍論言って揉めてた「Scatter/Gather」の役割ってまさに
64個までのStrandをレジスタにセットアップ、およびメモリに書き戻すする処理だったり。


つまり前スレから繋がってたんだよ。

言ってるだろ。「私の肛門もフェンスに強制終了させられそうです」。って
900,,・´∀`・,,)っ-○●◎:2008/10/05(日) 02:04:05 ID:PiRb9Agc
>>897
馬鹿だなフェンスくん。さんざんヒントやったのにwwww
901,,・´∀`・,,)っ-○●◎:2008/10/05(日) 02:05:13 ID:PiRb9Agc
>>898
自分で書いたレスも忘れたの?
> まさかRV670をターゲットにしてるSDKv1.1を使った
> アプリケーションのパフォーマンスが振るわないからなんていわないよね?


902Socket774:2008/10/05(日) 02:06:04 ID:ToBxbpc8
Intel> - Thread: a HW-managed context that switches among 2-10 fibers in order to cover long latencies (e.g. texture filtering)

このスレッドの定義はどこ行っちゃったの?
903Socket774:2008/10/05(日) 02:06:54 ID:KNap0rF0
団子は偉そうに断定的に書いているわりに
殆ど調べても計測してもいないんだよね。
書き込みが危ないから参考にならん。
そのくせ書き込みの頻度が多いだけに邪魔。
904,,・´∀`・,,)っ-○●◎:2008/10/05(日) 02:07:29 ID:PiRb9Agc
>>902ぷぷぷぷぷ
なんだ?まだわからんか?www
905Socket774:2008/10/05(日) 02:07:31 ID:KNap0rF0
このスレにMACオタと団子はもういらない。
スレの無駄遣いだ。
906,,・´∀`・,,)っ-○●◎:2008/10/05(日) 02:09:07 ID:PiRb9Agc
>>903
はなっから金かけたくないよ。


PS3のCellにさんざん騙されたからね。
907Socket774:2008/10/05(日) 02:11:23 ID:KNap0rF0
>PS3のCellにさんざん騙されたからね。
で、次はLarrabeeにだまされるのか。
団子は過去の主張をなかったことにしてすぐに
180度転換できるところがMACオタよりは柔軟性があるが、
誤った粘着主張でうめつくされるスレ住人の身にもなってほしい。
908,,・´∀`・,,)っ-○●◎:2008/10/05(日) 02:16:50 ID:PiRb9Agc
今日もまたフェンス君の書き込みは強制終了させられました。
909,,・´∀`・,,)っ-○●◎:2008/10/05(日) 02:21:03 ID:PiRb9Agc
>>907
言いたいことは解ったよ。
で最新のBrook+/CALならF@Hで「4870CFならGTX280に勝つる!」の?
910Socket774:2008/10/05(日) 02:21:36 ID:ToBxbpc8
>>904
うん、全然わからんので教えてくれ
団子のスレッドの定義はどうなってるんだ?
911,,・´∀`・,,)っ-○●◎:2008/10/05(日) 02:29:14 ID:PiRb9Agc
もちろんハードウェアスレッドだとも。
Fiber/StrandはソフトウェアGPUとして見たときのプログラミングモデルだろ?

俺はx86コアとみなしてネイティブ叩くから16WayのSIMDと4Wayのハードウェアスレッドとしてしか見てない。
912Socket774:2008/10/05(日) 02:31:17 ID:KNap0rF0
で、Fiberの定義は??w
今日はフェンス君の書き込みに強制終了させられました。
って感じだな。
913Socket774:2008/10/05(日) 02:31:25 ID:hpAFqnz6
>>901
ああ、ごめんね。
>>852の時点ではその書き方で最適化の話だと誤解するほど調べてないんだってことに気づいてなかったんだ。
v1.1じゃダメだといったのは、v1.1だとCSが使えないから。
v1.2で追加されたCSを使わないと、RV770とRV670の違いはSIMDユニットのxyzwユニットで
シフトが出来るようになったのとテクスチャユニットが強化されてボトルネックが変わることくらい。
そこら辺の最適化はv1.1のCALコンパイラでもやってるよ。
現状ではPSのILしか吐けないBrook+を使ったF@Hのパフォーマンスが両者で変わらないのはそういう事情。
914Socket774:2008/10/05(日) 02:35:13 ID:mbk0AZ7m
http://ghard.jisakuita.net/cell/1185631967.html 739-
http://ghard.jisakuita.net/cell/1188124579.html

タイルナントカを絶賛し、買う買う宣言してた○◎●さん。
 794 名前:・∀・)っ-○◎● :2007/08/22(水) 03:30:05 ID:InXaTzlV0
 とりあえず10万以下なら買う自信がある。
915Socket774:2008/10/05(日) 02:37:45 ID:KNap0rF0
つーか、
MACオタと団子はいい加減書き込み自重しろ。
お前らの意見は100レスに一回程度で十分。
自己顕示が先行しすぎて語る目的が狂ってる。
916,,・´∀`・,,)っ-○●◎:2008/10/05(日) 02:46:10 ID:PiRb9Agc
>>912
お前もわかってないなww
Fiberはベクトル幅16Way×スレッド数 4Wayの全64データの纏まりを
「ソフトGPU」として抽象化したものにすぎんよ。って言ってるだろ。
ファイバーの正体は1コアで動く4スレッドなの。

こういう抽象化をすることでソフトGPUとして見なす場合は
実際のSIMDのベクトル長は気にしなくて良いわけだ。




ATiのGPUってキャッシュは数十KBじゃなかったかな?
これはCPUの代替やらすには致命的に少ないよ。
でもレジスタが大量にあるからカバーできるって思うだろ?

キャッシュの容量がある程度無いと機能しないモノもあるんだ
たとえばLUTは無理だね。
917Socket774:2008/10/05(日) 02:47:14 ID:hpAFqnz6
俺へのレスじゃないから口出しするのは気が引けるんだけれども
>>909
RadeonとGeForceで回ってくる宿題が違うからベンチマークみたいに簡単に比較することは出来ないよ。
FLOPSで、しかもATI、NVIDIAそれぞれの合計値でいいならリアルタイムの資料がある。
ttp://fah-web.stanford.edu/cgi-bin/main.py?qtype=osstats
918Socket774:2008/10/05(日) 02:48:38 ID:ToBxbpc8
>>911
誤りを認めたくないばかりに、後出しで自分勝手な用語定義をするなんざ、MACオタより酷いな
Larrabeeの話をするときはインテルが定めた用法にしてくれよ

それにしても、スレッドをまとめたものがファイバーだなんて、言語センスがゼロだな
やっぱり団子は英語が全く読めなくて、数字だけ見て小町算やってるのでは…
919,,・´∀`・,,)っ-○●◎:2008/10/05(日) 02:50:15 ID:PiRb9Agc
>>917
F@HってATiのほうが先行対応してたのに
なにが悪かったんだろうね?
920,,・´∀`・,,)っ-○●◎:2008/10/05(日) 02:51:09 ID:PiRb9Agc
>>918
フェンス君は火病りすぎ。理解力不足を他人のせいにするのは辞めましょう。
921Socket774:2008/10/05(日) 02:53:36 ID:KNap0rF0
>Fiberはベクトル幅16Way×スレッド数 4Wayの全64データの纏まりを
>「ソフトGPU」として抽象化したものにすぎんよ。って言ってるだろ。
>ファイバーの正体は1コアで動く4スレッドなの。
数字からしてあわねーだろ。
団子がどう考えているかは最初からわかっているが、
間違っているのだから仕方がない。
Intelの説明は従来の用語とは独立してる。
同列に考えていた時点で団子の負け。
922,,・´∀`・,,)っ-○●◎:2008/10/05(日) 03:00:12 ID:PiRb9Agc
16Way SIMD × 4Way Thread=64 Strand
それ以上でもそれ以下でもない。
要するにStrand/Fiberが何者なのかが解ってないんだろ?


なんなら>>902の 
> 2-10 fibers in order to cover long latencies

を説明しようか?
SIMDレジスタはx64モードなら各16本使える。
レジスタに溜めておけば複数のベクトル演算をインターリーブできるよね?
ああ、Larrabeeがx64命令セット準拠ってこと認めてないんだっけか?www
923Socket774:2008/10/05(日) 03:01:24 ID:ToBxbpc8
>>921
いや、数字は合ってる

Intel> - Fiber: a SW-managed context that runs 16-64 strands

これを、16way * 4 threadsと小町算するのが団子流
924,,・´∀`・,,)っ-○●◎:2008/10/05(日) 03:02:55 ID:PiRb9Agc
>>921
計算が合わない?
「俺には計算できない」の間違いだろ

> Fiber: a SW-managed context that runs 16-64 strands

1スレッドだけ使えば16 Strandだし4スレッド全部使えば64 Strand
これでわからないなら氏ね
925Socket774:2008/10/05(日) 03:03:47 ID:hpAFqnz6
>>916
GPGPUってCPUの代替じゃないよね。

>>919
開発環境でしょ。
CUDAの方が圧倒的によかったからすぐ追いこせた。

F@HはBrook+使ってるけど、Brook+が糞過ぎるからどうにもならない。
v1.2になってCALとDirectXの協調が可能になったのに、v1.1から付属のusertype.datに
こっそり載ってるstreamToD3DもstreamFromD3Dも実装してないとか、もうね。
OpenCLに力入れることにして、Brook+に関しては入門用にすること決定なんだろうね。
926,,・´∀`・,,)っ-○●◎:2008/10/05(日) 03:03:56 ID:PiRb9Agc
>>923
で、1つのFiberが確実に1コアに収まることは認めるのか?www
927Socket774:2008/10/05(日) 03:05:56 ID:KNap0rF0
>SIMDレジスタはx64モードなら各16本使える。
>レジスタに溜めておけば複数のベクトル演算をインターリーブできるよね?

その計算結果がなんで2-10 fiberになるんだよ。
928Socket774:2008/10/05(日) 03:07:18 ID:KNap0rF0
念のためいっとくが俺はフェンス君とは別人だし、
フェンス君の主張内容と自分の意見はもちろん違う。
929Socket774:2008/10/05(日) 03:08:14 ID:hpAFqnz6
>>925
> CUDAの方が圧倒的によかったからすぐ追いこせた。
って書いたけど、圧倒的なのはCUDAで>>917でわかる範囲での性能差に関しては圧倒的じゃないからね。
930Socket774:2008/10/05(日) 03:11:51 ID:KNap0rF0
はじめてみたときは
団子と同じStrandの解釈だったんだが、
つじつまが合わないからやめた。

  ・Mapping program invocations on Larrabee
   - Strand: a program invocation that runs in one SIMD lane
   - Fiber: a SW-managed context that runs 16-64 strands
   - Thread: a HW-managed context that switches among 2-10 fibers in order to cover long
    latencies (e.g. texture filtering)
   - Core: independent processor that runs 1-4 threads, executing all strands in a group
    (their shared memory is in the core’s L2 cache)

団子の解釈だと、CoreとThreadの関係が1:4なのと、FiberとThreadの関係が1:10なのを
説明できないだろう。どう解釈すべきかの答えはここでは秘密だw
931,,・´∀`・,,)っ-○●◎:2008/10/05(日) 03:16:33 ID:PiRb9Agc
>>927
まあ全レジスタに対して破壊操作するなら16fiberでもいけるだろう

演算結果を書き出すレジスタ分は除いたら10ファイバー分のインターリーブが限度なんでね?
932Socket774:2008/10/05(日) 03:16:44 ID:KNap0rF0
ああ間違い。Strandの解釈は団子のであってる。
間違ってるのはFiberの方。64 strandsが何の時かは2,3秒考えれば
プログラマならわかるだろう。
933Socket774:2008/10/05(日) 03:18:30 ID:KNap0rF0
無論、フェンス君の主張するとおり、用語定義の常識からいっても
Thread ⊃ Fiber
なのはいうまでもない。
934,,・´∀`・,,)っ-○●◎:2008/10/05(日) 03:20:41 ID:PiRb9Agc
1スレッド 16 Strand
2スレッド 32 Strand
3スレッド 48 Strand
4スレッド 64 Strand
935Socket774:2008/10/05(日) 03:22:54 ID:KNap0rF0
DWORD 16 Strand
WORD 32 Strand
BYTE 64 Strand

SIMD長 512bit
わかった?
936,,・´∀`・,,)っ-○●◎:2008/10/05(日) 03:25:49 ID:PiRb9Agc
>>935
ひどいフェンス君2号ですね
LarrabeeはBYTE(8bit)やWORD(16bit)は符号拡張して32ビット値として読まれるんだけど?
937Socket774:2008/10/05(日) 03:29:21 ID:KNap0rF0
じゃあ団子はフェンス君3号だな。
俺の解釈も間違いのようだが、p13をみてFiberが4 threadsの抱いたものだと
思えるセンスも理解できん。
938Socket774:2008/10/05(日) 03:30:31 ID:KNap0rF0
結局のところ、FiberはThreadとは独立してソフトで管理するコンテキストの1単位で、
スレッドはハードで管理するFiberを内封する単位だってだけだね。
団子も俺も間違い。
939Socket774:2008/10/05(日) 03:36:05 ID:KNap0rF0
>1スレッドだけ使えば16 Strandだし4スレッド全部使えば64 Strand
>これでわからないなら氏ね
結局今日に入って初めて資料を見たぼんくれの俺の方が早く内容を理解できたようだな。
団子の腹切りマダー??
940Socket774:2008/10/05(日) 03:44:01 ID:ToBxbpc8
Fiberが抱えるstrandの数は、16の倍数であること以外は特に理由はないんじゃねの?
APIで16-64strandsという制限をしているんだろうけど
941,,・´∀`・,,)っ-○●◎:2008/10/05(日) 03:52:22 ID:PiRb9Agc
Fiberはコアをまたがないことが前提条件。
たとえばアキュムレートするレジスタをzmm0(仮)としよう。
zmm0レジスタは各コアに4つ(各スレッド分)ある。

なおかつ同じコア上のスレッドはデータ交換のペナルティが基本的にない。
で、16Wayのデータを扱え、それがスレッドの利用状況によって1-4倍となる。
だから16-64なんだ。


高レイテンシの命令実行時に複数のFiberを実行するのは、
アレだ、Fiber1 ならzmm0, Fiber 2ならzmm1, ・・・みたいな感じで
アキュムレート対象のレジスタをインターリーブして命令を並べる。
そんだけだよ。




ちょっと考えてみて気づいたんだがLarrabeeのソフトGPUって
自己書き換えっていうか動的にx86コードを生成することになるんだな。
942Socket774:2008/10/05(日) 03:55:24 ID:ToBxbpc8
つまりこういうことだ
Strand: 1データに対する一連の処理の単位
Fiber: 抽象化した一連のSIMD処理の単位
Thread: ハードウェア管理の単位。Thread上ではfibersがセルフスケジュールしつつ動く
943Socket774:2008/10/05(日) 03:58:53 ID:ToBxbpc8
静的に読み切れるレイテンシーは、fiberのセルフスケジューリングで隠蔽
動的にしか読めないレイテンシーは、threadのハードウェアスケジューリングで隠蔽
944Socket774:2008/10/05(日) 04:01:44 ID:KNap0rF0
Fiberはソフトレベルのレイヤで管理されていて、
どのThreadにどのFiberが割り当てられるかは2-10個の範囲の中から都度選択される。
Threadはハードウエアマルチスレッディングのおかげでcoreあたり4個まで実行できる。

と資料には書いてあるように見えます。
電波妄想を断言口調でやたら小難しく語る人がいるけどだまされないように注意してね。
945,,・´∀`・,,)っ-○●◎:2008/10/05(日) 04:05:39 ID:PiRb9Agc
寝ろ、フェンス1号と2号
946,,・´∀`・,,)っ-○●◎:2008/10/05(日) 04:24:26 ID:PiRb9Agc
> Fiberが抱えるstrandの数は、16の倍数であること以外は特に理由はないんじゃねの?

「16×スレッド数(1〜4)」である意味は、ある。

なぜなら、スレッドによる並列化を適用すれば、4スレッド分全部同じ命令コードで済むじゃん。
へたにインターリーブするとコードサイズが増えるしな。
947Socket774:2008/10/05(日) 06:10:59 ID:ToBxbpc8
>・Key ideas of data parallel programming
> - Define an array (grid) of parallel program invocations
> - Define groups within the grid that can share on-chip memory
>・Mapping program invocations on Larrabee
(略)
> - Core: independent processor that runs 1-4 threads, executing
>  all strands in a group (their shared memory is in the core's L2 cache)

あくまでこの限りだが、沢山あるスレッドコンテキストを、ハードウェアスレッドに割り当てたり解除したりはしなさそうだね

この限り
948Socket774:2008/10/05(日) 07:19:29 ID:AU8yjwvo
長いレイテンシで遊ばないようにするための2-10fibersっていうのは、
レジスタセットが10個あって、
5つのレジスタセットでFGMTする場合は、10/5 = 2
1つのレジスタセットでFGMTを使わない場合は 10/1 = 10
ってことではない?FGMT使わなくてもデータハザードしないように組めばおkみたいな。

俺がセミナーでインテルの人に聞いた話ではすくなくとも
ハードウェア的に命令を生成とかそういうのはまったく無いと思う。
公開されたハードウェアとフル機能の専用c++コンパイラがあるから
好きなように書いてくれって言われたよ。
949MACオタ:2008/10/05(日) 09:19:32 ID:IsV0akqP
一人だけ過去の私怨を晴らす為に見えない敵と闘っているヒトがいるみたいすけど、
今回、私何か関係してたすかすかね?
  ----------------------
  905 名前:Socket774 投稿日:2008/10/05(日) 02:07:31 ID:KNap0rF0
    このスレにMACオタと団子はもういらない。

  907 名前:Socket774 投稿日:2008/10/05(日) 02:11:23 ID:KNap0rF0
    MACオタよりは柔軟性があるが、

  915 名前:Socket774 投稿日:2008/10/05(日) 02:37:45 ID:KNap0rF0
    MACオタと団子はいい加減書き込み自重しろ。
  -----------------------
950MACオタ:2008/10/05(日) 09:37:39 ID:IsV0akqP
POWER7/PERCSに関して、色々新情報が明らかになってきたす。

 ・POWER7わCELLのアーキテクト達が中心となって開発していた
 ・VSX ISAわAltivec/VMXやPPCと非常に高い互換性を保ったまま、レジスタ数を64個に拡張する。
  従ってvector permuteや積和算等の、4引数の命令フォーマットもサポートされる可能性わ大きい。
 ・POWER7わ再度OoOE/レジスタリネーミングを取り入れる。
 ・マルチコアを利用したILP向上のためのハードウェアサポートも導入されるかもしれない。

開発グループが異なるとわ言え、POWER6で電力効率向上のために一旦あきらめたOoOEを再投入する
技術的裏付けわ謎す。冷却に関してわ水冷技術で先行しているために問題わ無さそうす。

解説やソース等わ、気が向いたらまとめて書くすけど、今年中に色々情報は公開される筈す。
でも現段階でわ、ニュースや噂の類わ漁っても無駄だと思うす。
951,,・´∀`・,,)っ-○●◎:2008/10/05(日) 11:48:33 ID:PiRb9Agc
>>948
> 長いレイテンシで遊ばないようにするための2-10fibersっていうのは、
> レジスタセットが10個あって、
> 5つのレジスタセットでFGMTする場合は、10/5 = 2
> 1つのレジスタセットでFGMTを使わない場合は 10/1 = 10
> ってことではない?FGMT使わなくてもデータハザードしないように組めばおkみたいな。

1スレッドあたり16本のSIMDレジスタがあるから、それでインターリーブするだけだよ。
ハードウェア的にクロック毎に切替ながら実行できるスレッドコンテクストは1〜4だし
レジスタセットはあくまで各スレッドのぶんの4つ。

> ハードウェア的に命令を生成とかそういうのはまったく無いと思う。

JITコンパイラはソフトウェアだよ。あくまでソフトGPUとして使った場合の。
それはホスト側でやってもいいし、Larrabee自体にやらせてもありなんじゃない?

Fiber:     ソフトGPUとしてのプログラミングモデル
HW-Thread: ベクトルが露出しててC/C++でダイレクトで書く場合のプログラミングモデル

ソフトGPUとして使う場合はベクトル長やHWスレッド数を必要がない。
もちろんHLSLにネイティブSIMD命令を記述必要はない。
SIMD命令を叩く場合はFiber云々を気にする必要もない。
HWスレッドでインターリーブするのかは、FGMTを信用せずに1コアにつき1つの
コードシーケンスで命令を記述するのかは、自由だ。


> 公開されたハードウェアとフル機能の専用c++コンパイラがあるから

それはまさに俺が主張してるソフトGPUじゃなくてメニーコアCPUとしての場合。
そのセミナーはFiberの概念なんて説明されなかったでしょ?
952,,・´∀`・,,)っ-○●◎:2008/10/05(日) 11:51:12 ID:PiRb9Agc
「ThreadではなくFiberを使えと言ってる」のフェンス君の迷言はどこから来たのかな?
953Socket774:2008/10/05(日) 12:58:04 ID:WHIgITGQ
32x4 HWスレッドのHPCプログラミングをC++でシコシコやるのか?
954Socket774:2008/10/05(日) 12:58:36 ID:ToBxbpc8
>>948
インテルのドキュメントに書いてあるが、静的にわかるレイテンシーの隠蔽にはfiberを、動的にしかわからないレイテンシーの隠蔽には(hw-)threadを使う

Fiberはソフトウェアスレッドなので、レジスタセットが複数個あるといったハード的な仕掛けは特にない

スレッドコンテキストとしてセーブすべきレジスタはコンパイル時にわかっているので、コンテキスト切り替えのオーバーヘッドは低い
データのやりとりをしないコルーチンみたいな感じ
スレッドの切り替え先もコンパイル時にわかっていれば展開されて、インターリーブされた一本のプログラムになるでしょう
955Socket774:2008/10/05(日) 13:00:54 ID:ToBxbpc8
補足
Fiberというのはあくまでソフトスレッドの単位で、複数のfiberが切り替わりながら、1つのhw-threadコンテクスト上で動く
956,,・´∀`・,,)っ-○●◎:2008/10/05(日) 13:07:24 ID:PiRb9Agc
で、それがどう難しいんだ?



どこぞの会社に買われて非公開になってしまったSoftWireは
HLSLをCPU側で実行する際、逐次評価ではなく動的生成したx86コードとして
実行する仕組みを実現する土台となるライブラリであった。

もっとも自己書き換えだとか動的生成だとかのトリックそのものは昔からあるがね。
Intelも自己書き換えの規則なんかのドキュメント出してるからもはや裏技でも何でもない。
957Socket774:2008/10/05(日) 13:13:37 ID:WHIgITGQ
上のLarrabeeの資料は、あくまでGPUの場合の話だな。
Larrabeeも他のGPU同様quad単位で処理するようで、
あるシェーダのコンテキストのquadを1xcoreに投入
→(最大)4xHW Thread→(最大)4xFiber→(最大)64xstrands
となるという説明とおれは理解した。

動作として団子の理解は間違っていないと思うが、だからといって
4xHW Thread = Fiber
という言葉の理解は奇妙に思える。
少なくともIntelのおっさんもそういう説明は一切してなかったぜ。
958Socket774:2008/10/05(日) 13:14:59 ID:ToBxbpc8
難しい?
そりゃインテルの資料のファイバー/スレッドの定義すら読めない団子には難しいだろうよwww
959Socket774:2008/10/05(日) 13:19:24 ID:ToBxbpc8
>>957
> →(最大)4xHW Thread→(最大)4xFiber→(最大)64xstrands

(最大)10xFiber、だよ
960,,・´∀`・,,)っ-○●◎:2008/10/05(日) 13:24:28 ID:PiRb9Agc
1:1対応してると解釈されたのなら食い違いが起きても仕方がない。説明がまずかったのだろうな。
16Strandを使うときは1スレッド、64 Strandを使うときは4スレッドを使う。これはガチ。

で、その1〜4スレッドを使って、1個から10個までのFiberをスケジューリングする。
JITでコードを生成する段階で、この命令はレイテンシが大きいからインターリーブするべきって
情報はわかるわけだからな。



フェンス君=ID:ToBxbpc8は主張が一貫してないから帰って良いよ。

> そもそもIntel自体がLarrabeeではL2をスクラッチパッド的に使え、スレッドではなく
> ファイバーを使えと言っているわけで、

これの弁解を聞きたいな
961MACオタ>959 さん:2008/10/05(日) 13:31:34 ID:IsV0akqP
>>959
  -----------------
  (最大)10xFiber、だよ
  -----------------
あなたわ"typically"を『最大』と訳すすか。。。
プレゼンでわ"up to"と"typically"が使い分けられていることに注意すべきかと思うす。

それにしても間違いに突っ込まれて引っ込みがつかなくなってしまった団子さんと、何故か
それを信じ込んでしまっている>>957さん。更にトンデモ翻訳の>>959さんが集まって中傷
し合ってるこのスレッドって(笑)
962,,・´∀`・,,)っ-○●◎:2008/10/05(日) 13:32:40 ID:PiRb9Agc
>>813 >>817 >>822も最初から全て把握した上で言ったこと。

これに噛みついてるってことは、構造がわかってないってことだよ。
963Socket774:2008/10/05(日) 13:37:03 ID:ToBxbpc8
>>961
> あなたわ"typically"を『最大』と訳すすか。。。

>>957にあわせただけだが、原文がtypicallyならtypicallyなんだろ
細かいところまで覚えちゃいないし、お前らと違うんで、いくらでも訂正するぜ
964,,・´∀`・,,)っ-○●◎:2008/10/05(日) 13:42:35 ID:PiRb9Agc
>細かいところまで覚えちゃいないし、お前らと違うんで、いくらでも訂正するぜ

平気で間違ったことを言ってテキトーに噛みつくだけの負け犬であることを認めたか
965Socket774:2008/10/05(日) 13:42:53 ID:ToBxbpc8
>>960
> 16Strandを使うときは1スレッド、64 Strandを使うときは4スレッドを使う。これはガチ。

ガチで違う

> で、その1〜4スレッドを使って、1個から10個までのFiberをスケジューリングする。

おい、いつの間に団子Fiberを引っ込めたんだ

> > そもそもIntel自体がLarrabeeではL2をスクラッチパッド的に使え、スレッドではなく
> これの弁解を聞きたいな

これはおれのセリフじゃない
インテルが公開資料で言ってるのかはともかく、間違っちゃないだろうけど
966MACオタ>963 さん:2008/10/05(日) 13:45:00 ID:IsV0akqP
>>963
>>954-955で正しいことを書いているのに、ファイバーに対して『(最大)』とか書いてしまうこと
が理解できないすけど?ネットで検索した知識だけでわ、何の役にも立たないという例なんすかね。。。
967,,・´∀`・,,)っ-○●◎:2008/10/05(日) 13:45:29 ID:PiRb9Agc
>>965
は?最初から一貫してるよ。

お前だろ?Strandが何の単位かもわからずに独り相撲してたのはwww
968,,・´∀`・,,)っ-○●◎:2008/10/05(日) 13:46:46 ID:PiRb9Agc
フェンスに強制終了させられた人が一貫した意見を言ったことは一度もない。
間違いを平気で言って、指摘されればなかったことにするからだ。
969Socket774:2008/10/05(日) 13:47:11 ID:ToBxbpc8
>>964
なんかの仕様でもあるまいに、こんな間違いに噛み付いても仕方ないと思うんだが、まあ他に噛み付けるところなんてないもんな

で、お前もやっているわけだが
>>960
> で、その1〜4スレッドを使って、1個から10個までのFiberをスケジューリングする。

2個から10個だろ
970,,・´∀`・,,)っ-○●◎:2008/10/05(日) 13:52:35 ID:PiRb9Agc
> among 2-10 fibers in order to cover long latencies (e.g. texture filtering)

逆に言うとレイテンシの短い命令を使うシーケンスであれば1 Fiberでも十分なんだがな
まあJITレイヤーのやることだからいいとしよう。


MACヲタの引用してきたWin32のFiberは全くの別物だよ。
基本的にJITで動的コード生成なんてごく一部でしかやらないし。
971Socket774:2008/10/05(日) 13:53:33 ID:ToBxbpc8
>>966
お前もしばらく大人しくしてたと思ったら、こんなところにしか突っ込みようがないのかよ

Intel> - Thread: a HW-managed context that switches among 2-10 fibers in order to cover long latencies (e.g. texture filtering)

おれの見てた資料はこう、up toともtypicallyとも書いてないわけ
わかった?

>>957
> →(最大)4xHW Thread→(最大)4xFiber→(最大)64xstrands

んで、これに合せて(最大)とつけただけだ


まあ、原義にこだわるだけ団子よりマシか、MACオタが自身つっこまれるとはぐらかすだけだがな
972MACオタ:2008/10/05(日) 13:58:01 ID:IsV0akqP
ところでLarrabeeのタスク管理の話わ、つい一ヶ月前にこのスレッドで議論された筈なんすけど
健忘症のヒトが多すぎるす。
落ち着いて>>132, >>153-159あたりを読み直してから、議論を続けると不必要な恥を晒すことも
なくなるかと思うす。

とりあえず団子さんも>>863-864わ、当分コピペネタになることわ覚悟したほうが良いかと。
973MACオタ>971 さん:2008/10/05(日) 14:01:51 ID:IsV0akqP
>>971
  ------------------
  おれの見てた資料はこう
  ------------------
その資料の13ページ以降をどうぞ。それとも実わ、資料なんか見てないのがバレたすか?
  ------------------
  これに合せて(最大)とつけただけだ
  ------------------
それが内容を理解していない証拠なんすけど。。。
974,,・´∀`・,,)っ-○●◎:2008/10/05(日) 14:04:25 ID:PiRb9Agc
>>972
どうぞ?
勘違いをしてるのはどっちなのかは冷静に考えればわかること
975Socket774:2008/10/05(日) 14:04:42 ID:AU8yjwvo
確かにハードウェアスレッドは4本みたいだわ。調べておくべきだった。
頻繁にFiberが切り替わることが前提だと考えると、
一般的な実装のようにレジスタのメモリへの復帰と退避ではなく、
ループアンローリング的にビルドタイムにレジスタを割り当てて処理されるものと勘ぐってしまったんだけどどうなんでしょ?
そもそも1つHWスレッドに対してベクトルレジスタが16本かどうか探しきれなかったんだけど
GPUでちょっと長めのシェーダー使うとだいたい10〜16位レジスタを使うことを考えると
ベクトルレジスタに余裕がない。
マスクレジスタでレジスタを節約しながら使うのかもしれないけどマスクするって事は滅茶苦茶ALUが無駄なような。
976MACオタ>975 さん:2008/10/05(日) 14:09:20 ID:IsV0akqP
>>975
  ------------------
  一般的な実装のようにレジスタのメモリへの復帰と退避で
  ------------------
その一般的な実装す。>>153-159をどうぞ。
原文わ、>>113のリンク先のp.25す。
977,,・´∀`・,,)っ-○●◎:2008/10/05(日) 14:11:35 ID:PiRb9Agc
>>972
もう一度言おうか?

> この中に出てくるLarrabeeにおけるコンテキストの最小単位"Fiber"って、リソースがダブらないよう
> に複数の処理をするコードを自前で書けという意味にも取れるす。

これ「ソフトパイプライニング」と何が違うのかしら?AppleのAltiVec最適化マニュアルにも載ってるアレ。
でもLarrabeeのソフトGPUではJITで動的にx86コードを生成する際にインターリーブしてくれるから
十分に並列度の高いコードを書いていれば意識する必要はない。


WindowsにおけるFiberはあくまでソフトGPUでの処理単位で
SIMDユニットのベクトル長・レジスタセット・HWスレッドを隠蔽し
抽象化された単位。


ちなみにVC++には2008においてもスレッド数以上のコンテクストをサポートする機能なんてないぞ
.NET?しらね
978,,・´∀`・,,)っ-○●◎:2008/10/05(日) 14:12:34 ID:PiRb9Agc
>>975
だから>>941あたりからそういってるのにこの人たち聞かないんだから
979MACオタ>団子 さん:2008/10/05(日) 14:15:28 ID:IsV0akqP
>>977
それ間違いで、正しくわ>>153す。
レジスタが少ないのでリソースわダブるし、スタックへの退避も発生するす。

一ヶ月以上前の話を未だに誤解しているのもちょっと。。。
とにかく冷静になって過去ログを読み直して欲しいす。
980Socket774:2008/10/05(日) 14:15:57 ID:AU8yjwvo
>>976
申し訳ない。
カキコしてから気づきました。
今読んでます。
これってテクスチャフェッチなんかの長いレイテンシを隠すためにFiber使って、
データストール回避にHWスレッド使うって事になるのか。
混乱してきた。
981Socket774:2008/10/05(日) 14:17:39 ID:AU8yjwvo
>>980
×データストール
○データハザード
982,,・´∀`・,,)っ-○●◎:2008/10/05(日) 14:18:12 ID:PiRb9Agc
>>975
4スレッド全部使えばVPU1器に対して64本のSIMDレジスタがあることになるけどこれじゃ少ない?
そうは思わんがねぇ
レジスタ足りなきゃ別にL1に待避してもいいんでない?
メモリアドレッシングモードでロード・積和算を1命令で行えるわけだから。
983MACオタ>980 さん:2008/10/05(日) 14:18:54 ID:IsV0akqP
>>980
  ------------------
  これってテクスチャフェッチなんかの長いレイテンシを隠すためにFiber使って、
  データストール回避にHWスレッド使うって事になるのか。
  ------------------
逆す。ソースわ>>850
984,,・´∀`・,,)っ-○●◎:2008/10/05(日) 14:21:00 ID:PiRb9Agc
Win32 FiberとLarrabeeのFiberの実装は全くの別物です。


これ読んでもわからんか?MACヲタは
http://d.hatena.ne.jp/NyaRuRu/20070529/p1
985MACオタ@補足:2008/10/05(日) 14:25:13 ID:IsV0akqP
昨日からの団子さんの書き込みわ、恥ずかしい間違いをごまかすためにトンデモ論になっているので
マトモに受け取らないことをお勧めするす。

普段わ、これほど酷くも無いので、見捨てないであげて欲しいす。

>>984 団子 さん
SiggraphのLarrabee講演わ『ゲームプログラマ向け』す。
986,,・´∀`・,,)っ-○●◎:2008/10/05(日) 14:28:38 ID:PiRb9Agc
Win32 Fiberは端的に言えばRubyのThreadの実装と同じだよ。
べつに命令レベルでインターリーブするわけではない。
要するに古いゲームとか、組み込みとかで使われてる昔ながらのタスクシステムだよ。
987Socket774:2008/10/05(日) 14:29:56 ID:ToBxbpc8
>>973
> それが内容を理解していない証拠なんすけど。。。

はいはい
厳密なのはけっこうだが、ROBがx86用語である証拠は見つかったかい?

>>977
> これ「ソフトパイプライニング」と何が違うのかしら?AppleのAltiVec最適化マニュアルにも載ってるアレ。

っぽいけどちょっと違うな
パイプライン化するのが他イテレーションではなくて、他のファイバーになる
988MACオタ>団子 さん:2008/10/05(日) 14:33:36 ID:IsV0akqP
>>986
  --------------------
  命令レベルでインターリーブする
  --------------------
そちらわLarrabee用語でも『スレッド』。ファイバーわ、あなたが書いている通りの『協調型マルチタスク』す。
  --------------------
  要するに古いゲームとか、組み込みとかで使われてる昔ながらのタスクシステムだよ。
  --------------------
989,,・´∀`・,,)っ-○●◎:2008/10/05(日) 14:34:54 ID:PiRb9Agc
>>985
どこまでも恥ずかしいやつだな。

Win32のFiberがやってるのはあくまでこれだよ。
http://f3.aaa.livedoor.jp/~gsyoku/index.php?%5B%5BFiber%5D%5D


IntelがLarrabeeのFiberの実装は、JITコンパイラによって動的生成するx86命令をインターリーブすることで
レイテンシ隠蔽をするもの。1スレッドを更に分割するわけではない。4スレッドを1単位として更に時分割することができる。

だからまったくの別物なんだよ。

990Socket774:2008/10/05(日) 14:35:39 ID:hpAFqnz6
>>986
Rubyって表現はまずいよ。YARVはネイティブスレッドだ。
公式のインタプリタって言っておかないと。
991,,・´∀`・,,)っ-○●◎:2008/10/05(日) 14:35:48 ID:PiRb9Agc
>>988
は?RubyのThreadがハードウェアスレッドにもソフトウェアスレッドにも依存せずにやってることすら知らないのか?
992,,・´∀`・,,)っ-○●◎:2008/10/05(日) 14:37:01 ID:PiRb9Agc
>>990
まあそうだな。
ちなみにYARVは俺も開発にかかわってる某ライブラリによってネイティブコードを生成する
ように動いてるんだが。
993MACオタ>団子 さん:2008/10/05(日) 14:37:13 ID:IsV0akqP
>>989
  --------------------
  LarrabeeのFiberの実装
  --------------------
>>153に書いた通りすけど。。。 原文わ、>>113のリンク先のp.25す。
994Socket774:2008/10/05(日) 14:38:34 ID:KNap0rF0
>1ファイバーはハードウェア的には4スレッドなわけだよ
団子の謝罪マダー??
人に氏ねとかいえるくらい自信あったんだからな。
もちろんこのスレから引退覚悟ですよね。
995,,・´∀`・,,)っ-○●◎:2008/10/05(日) 14:39:26 ID:PiRb9Agc
>>993
関数レベルのインターリーブと命令レベルのインターリーブの違い。

だから別物って言ったの。

JITだから為しえる業。わかる?
996,,・´∀`・,,)っ-○●◎:2008/10/05(日) 14:40:43 ID:PiRb9Agc
>>994
別に。何も違いはしない。
複数ファイバーが同じコアで動く1〜4スレッドに割り振られることもある。
997Socket774:2008/10/05(日) 14:43:01 ID:KNap0rF0
最大64のファイバーのうち最大4つが1コアに割り当てられるだろ?
>1ファイバーはハードウェア的には4スレッドなわけだよ
ハードウエア的にはの意味は? なんで1ファイバーが4スレッドって書き方になるの?
素直に間違ったと認めろよ。
998Socket774:2008/10/05(日) 14:43:07 ID:ToBxbpc8
>>996
また団子ファイバーの定義が変わってる。。。

笹田さんもいい迷惑だな
999,,・´∀`・,,)っ-○●◎:2008/10/05(日) 14:43:56 ID:PiRb9Agc
JITに依存した技術を、ネイティブC/C++を使うプログラマがどうやって使うって言うの?
SIMDを直接叩くからNativeなんだが。
1000,,・´∀`・,,)っ-○●◎:2008/10/05(日) 14:44:21 ID:PiRb9Agc
フェンス君は氏ね
10011001
1台のマシンが組み上がりました。。。
新しい筐体を用意してくださいです。。。。

         自作PC板@2ch http://pc11.2ch.net/jisaku/