1 名前:デフォルトの名無しさん [2008/01/04(金) 14:25:44 ] 主にx86系で浮動小数点を扱う話題
360 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 20:51:37 ] >>359 それ何?
361 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 20:56:53 ] >>359 銀行で使ってるの見たことないんだけど 使ってる銀行ってあるの?
362 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 21:13:02 ] >>360 つ Banker's Rounding
363 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 21:55:45 ] ジンバブエで使ってるCPU使えばよい
364 名前: ◆0uxK91AxII mailto:sage [2009/02/21(土) 22:05:17 ] >>353 >>358 ia32_final_i.pdf 今時のCPUは十分に処理能力が高いから、遅くても問題ない。
365 名前:デフォルトの名無しさん [2009/02/21(土) 23:45:37 ] >>364 いや、シミュレーションの世界では早ければ早いほどよい。
366 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 00:04:04 ] >>358 「論理的」だろ。物理的に別ユニットっていつの時代のCPUだよ。 現行のCore MAなんかではx87とSSEは共用だよ。 大別してFADDがSIMD FP Adder, FMULがSIMD FP Multipler。 あとDividerとかFP ROMが同じポートにぶら下がってるかな まあ、fpスタック経由でしか80bit精度の演算ができない(XMMレジスタは使用できない)時点で 実効スループットは察して下さい。 >>364 英語版にしろよ。それPentium 4までしか載ってなくね?
367 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 00:19:58 ] www.intel.com/products/processor/manuals/ IntelR 64 and IA-32 Architectures Optimization Reference Manual SKU #248966 ゆっくり読んでいってね! SIMD FPユニットとx87用ユニットが別なのってIntelだとPentium IIIが最後だと思うんだが。 あんときはSSEは単精度までのサポートだったから共有化の機運がなかったのかな?
368 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:07:42 ] >>366 結局お前か。お前のウンチクなど聞きたいわけではないわ。 名無しで潜伏してないでちゃんと名を名乗れ。ニートwww
369 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:14:17 ] >>367 スループット云々よりもメイン・メモリとのレイテンしが改善されないから、もう頭打ちなんじゃないの? 結局fetchに頼るのみなら、80ビットやFPのフォーマットや機構(スタックとか)の問題じゃないし。 SSEは、レイテンシを考えると、ガバッと持ってくるようにするために16バイトとかケチってないで32バイト(double*4)でよかったんじゃないかと思う。
370 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 01:24:09 ] >>368 は?ww 被害妄想いいかげんにして。 ウェキは吹いたwww
371 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 01:25:14 ] >>369 >SSEは、レイテンシを考えると、ガバッと持ってくるようにするために16バイトとかケチってないで32バイト(double*4)でよかったんじゃないかと思う。 それがAVXなんだけど・・・。
372 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:38:55 ] >>346 > 整数四則演算より80ビット浮動小数の方が速いような変態CPUなんてどこにあるんだと。 Netburstだと、整数の乗除算よりFPの乗除算の方が速い
373 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 01:40:14 ] prefetch*はキャッシュライン単位だぞ。 あと、Core MAやAMD K8以降ではL1キャッシュの1ラインは64byteなんで。 シーケンシャルリードなら同一ラインの後続ブロックもL1から続けて読めるから >>369 の想定する用途では全然問題ないと思うんだが。 シーケンシャルとか定ストライドなどのパターン性のあるアクセスなんかだと いまのCPUではキャッシュ自体が自動的に先読みしてレイテンシ隠蔽してくれる機会がある。 ベクトル長伸ばしちゃうとそれはそれで厄介だぜ 座標を表すのですら、単精度だとx, y, zであと1要素分余らせたりすることが珍しくない。 現状のSSEの実装ではpermute演算はそこまで強力じゃないので128bitが妥協点だったのでは?
374 名前: ◆0uxK91AxII mailto:sage [2009/02/22(日) 01:55:30 ] >>367 thx >>369 >メイン・メモリとのレイテンし そこは、cacheが入り込むし、命令の並び換えで適当に隠せる。
375 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 02:06:22 ] >>373 >現状のSSEの実装ではpermute演算はそこまで強力じゃないので128bitが妥協点だったのでは? だからさ、その時代その時代に合わせたお前のウンチクなんて興味ないのよ。 3年後には全く逆のこといったりするだろ。 主張がコロコロ変わるからいつまでたってもお前は誰からも認められないんじゃないの?ニート君w
376 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 02:11:16 ] >>373 なんつーか、お前の浮動小数点の理念とか信念なんか聞きたいわけじゃないわけ。 fp80の精度が必要な人もいれば、高速な方がいいって人もいるわけで、インテルの洗脳されちゃってるお前の信念を押し付けないでくれないか? それも信念がコロコロ変わるんだろ。お前だって嫌だろ。草かみたい選挙が近くなるたびに草か信者が家に押しよせてきたら・・・
377 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 02:14:20 ] prefetchはINTELとAMDで細かいところに互換性がないから、(未知のバグになるから)できればユーザーが明示的にコード書いて使うようなものではない、ってことだったんじゃないの?
378 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 02:15:58 ] > 3年後には全く逆のこといったりするだろ。 言わねーよ池沼 10年前のPentium IIIではSIMD演算ユニットは単精度2並列分のスループットしか得られなかったが それでも10年前なりの技術水準でできるだけのことはやってた。 それを文句言う奴はいねーよ。
379 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 02:18:03 ] x64でのx87のレガシー化で主に動いたのはMSとAMDなんだが。 IntelはAMD64のコピー実装だし。 Intel信仰がどうとか言ってることがちゃんちゃらおかしい。 ウェキ(笑)
380 名前:デフォルトの名無しさん [2009/02/22(日) 02:21:28 ] >>372 よく分からないんだけど、bitwiseの観点からみれば整数四則もFP四則も同等でしょ。 両者に差が出るようところはどこにあるの? 整数もFPも、10進に直したり結果を出力して視覚化するところに差があるというなら、本質的には君>>346 が言うところの四則の計算とは関係ないわけで・・・
381 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 02:22:34 ] >>377 キャッシュのローカリティヒントなんて同じIntelでも、Pentium 4とCore MAでも動作が違う。 たとえばPen4ではprefetcht0を使ってもL1にはデータは置かれないがCore MAでは置かれる だがキャッシュのヒット率なんて演算結果に直接影響しないだろ? キャッシュローカリティで演算結果が変わるようなプログラム書いちゃう人はそれはそれで問題だが?
382 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 02:30:31 ] 昔のIntel独自実装の8087をマンセーしつつIntel信仰はキモイとかどんだけ〜 単精度と倍精度はIEEE754の規格にも入っててPowerPCやARMでも使えるんですが。 FP80(笑)
383 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 02:31:02 ] >>378 ,379 当時の水準でFPUとSSEは分離してたのが最良といいつつ、何でさっきの主張では「FPUはイラン!」とか文句言っちゃうんだ。 どうも当時の技術水準とその互換性「FP80」に文句あるみたいだけど、そんなに演算誤差を気にしなくてもいいプログラムをしてるのか? お前みたいな奴が「古い技術はイラン!」とか言って互換性を破壊していく元凶なんだよな・・・・そういうの世の中に出てみると分かるけど、即効で嫌われるから。 日本男児の固定観念もいいけど、英語の発音では一応「ウェキ」といってるようだが・・・なんかお気に入りのようだなw
384 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 02:32:17 ] なんで団子の周りには馬鹿が集まるんだ?
385 名前:デフォルトの名無しさん [2009/02/22(日) 02:36:00 ] >>379 インテル信仰とは、インテルのx86命令コード体系のことだと思うんだが・・・? 実際今の64ビット向けとかはAMD64の定義をコピーしてインテルが使ってるんだし。 もしかして団子は、会社としてのインテル(INTEL入ってる!)にあこがれてるのか? よく読んでみると所々に穴があるよね。団子はw
386 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 02:38:42 ] おまえ馬鹿だねぇ Pentium IIIのSSEはたかだか単精度のSIMDでしかない。 SSE2以降は倍精度も扱えるようになったんで共用化したほうがよくなったんだろ。 倍精度対応の演算ユニットは半導体のコストが大きいからね。 PowerPCのAltiVec(VMX)でも倍精度対応のスカラFPUと、単精度までのVFPUが共存してるが POWER7のVSXでようやくレジスタセットごと統合の運びになりましたが。
387 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 02:39:55 ] >>384 俺に噛みつく奴は馬鹿ってより 馬鹿だからこそ噛みつくんですよ。
388 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 02:44:25 ] というか業界人でもない普通の人(本業でPG含む)は、新作CPUの各ベンチ取るために毎度毎度CPUを買ったりしないから。 だからPen4では・・とかCoreでは・・とか言われても知らんわ。現状では、一般的に議論ができるのはSSE1/SSE2しかないな。 実際PC使いこなしてアプリ作ってるわけでもないくせに、お前の主張など、「ソニーのパソコンは・・・東芝のパソコンは・・・」とか言ってるカスタマーの戯言にしか聞こえんわw
389 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 02:45:39 ] 過渡期の実装は一見無駄に見える。近視眼の馬鹿には。
390 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 02:46:53 ] >>388 それで、x87とSSEが分かれてないPentium IIIのパソコンをいまだに使ってるんですね。 零細企業乙
391 名前:デフォルトの名無しさん [2009/02/22(日) 02:51:29 ] というか、団子はブログとかウェキでもやりながら、細々と「執筆募集!」をすればいいだろ。 隅々までマニュアル読んでるようだし、どこかの雑誌とかベンチャーが「ベンチとってくれない?」とかの依頼ぐらいはあるだろから。 少なくともお前の能書きを2chスレに書かなくていいからw
392 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 02:52:44 ] ウェキ(笑)
393 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 02:56:04 ] え!団子さんってブログもってなかったの?! ダサw
394 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 02:56:52 ] [wi]の発音は日本古来の「ヰ(ウィ)」に相当するものであってヱ(ウェ)じゃないんだよね
395 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 02:59:28 ] もしかして: ウィキ ウェキ(笑)
396 名前:,,・´∀`・,,)っ-基地外- mailto:sage [2009/02/22(日) 03:00:33 ] 真夜中ですが基地外警報
397 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 03:07:58 ] ホロン部の人なのかな? ja.wikipedia.org/wiki/ 左上のロゴよく読んでね。 これが「ェ」に見えちゃう人は目か頭がおかしいです
398 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 03:08:36 ] そんなに発狂するなよ。その情熱をブログにぶつけろwたまに読んでやるからw 一応言っておくと発音のときはスラッシュを使う。 で、wikiの/i/は/e/ではないので口が横に大げさに伸びるわけで、日本人の耳では「い」や「いぇ」ではなく「え」に聞こえるはず。 また、まえの/w/と重なって「い」のようにはっきり聞こえる事はない。 短母音にこだわっちゃう辺りも、団子は生粋の日本男児なのかねぇ。どこ出身?
399 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 03:10:07 ] ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A7%E3%82%AD%E3%83%9A%E3%83%87%E3%82%A3%E3%82%A2 ?????????
400 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 03:17:04 ] ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A7%E3%82%AD 項目無いから作ってよwww
401 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 03:23:22 ] >>398 大阪民国 団子はPGじゃないだろ?
402 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 03:31:43 ] >>399 こういうどうでもいいところに情熱を注ぐ意味が分からん。 ところで団子のINTELウンチクはもういいから、このスレでは小数の話題にしてくれないか?
403 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 03:32:55 ] wiki wiki(ウィキウィキ)は速いと言う意味のハワイ現地語であって英語じゃないからね。 ※いわゆるコラボレーションツールのWikiの由来も元々は地元の観光バスが由来です。 ハワイ原住民はムー大陸の末裔なんて言われるくらいガチのウラル・アルタイ語族。 a e i o uの発音はハッキリしてて、イとエを聞き間違えることなんて有りえませんよ。 ハワイ行ったこと有りますか?無いでしょうね。 ↓Google先生もお困りです。 www.google.co.jp/search?q=%E3%82%A6%E3%82%A7%E3%82%AD%E3%82%A6%E3%82%A7%E3%82%AD%E3%83%90%E3%82%B9 ウェキウェキバス に一致する情報は見つかりませんでした。
404 名前:デフォルトの名無しさん [2009/02/22(日) 03:34:27 ] >>401 層化かと思ったけど、ああ在日なのね。 別に層化も在日は嫌いじゃないんだけど、それならファビョーリやすいのも納得だわw
405 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 03:40:10 ] 吠えてますなwww 悪いがミンジョクではない。俺はシオレスト(笑)だぞ。
406 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 03:43:39 ] ウェキ君はみっともないな
407 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 03:49:10 ] 雑談はよそでやれや
408 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 03:54:47 ] >>403 そういうウンチもいらないからw ウンチするなら他でやってくんない?
409 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 03:59:35 ] ウェキ(笑)がどれだけ恥ずかしいかは知っておかないとね
410 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 04:09:06 ] 「ムー大陸の末裔」の方が数倍恥ずかしいと思うが…
411 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 04:10:15 ] そりゃ金融システムでFP80だとか非常識きわまりないことも言えるわけだ。 JavaやC#でPL/IやCOBOL同様に10進演算をサポートしてる理由を考えてみてくれ。 ちなみに754rのドラフトにも10進演算の項目入ってるよ。確認しる。 754r.ucbtest.org/ FP80(笑) ウェキ(笑)
412 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 04:14:55 ] >>410 ムー大陸は太平洋の島々の言語の構造や発音の共通性から言語学者が唱えた仮説だよ。 少なくとも母音の発音は同じアルタイ語族の日本と同じだってこと。
413 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 05:15:00 ] 陸地がないと人間は大規模な移動ができないと思い込んでいる大陸系らしい考え方
414 名前:デフォルトの名無しさん [2009/02/22(日) 05:18:46 ] 「実は日本人はムー大陸の末裔だった!」という衝撃の真実を聞いて駆けつけてきました
415 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 05:23:48 ] ムー大陸は民族とかの人間に関するカテゴリーに属してないからそれは間違っていないか?
416 名前: ◆0uxK91AxII mailto:sage [2009/02/22(日) 08:36:25 ] >>377 3DNow!のではなく、SSEのprefetchを使えば良い。 >>386 >SSE2以降は倍精度も扱えるようになったんで共用化したほうがよくなったんだろ。 共用を前提として、SSE2を作ったという考えをしてみる。
417 名前: ◆0uxK91AxII mailto:sage [2009/02/22(日) 08:38:34 ] 『共用化』っていうのは、『復号化』のように、頭が悪く見えるね:b
418 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 10:37:02 ] Pentium(R)III プロセッサの実装条件 download.intel.com/jp/developer/jpdoc/impliment_j.pdf P.9-10 > x87 加算器とパックドFP 加算器の統合も検討されましたが、こ > ちらは開発スケジュールの関係で実現には至りませんでした
419 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/22(日) 13:26:34 ] >>413 海洋民族の航海技術を無視した白人優位思想が根底にあるね。 白人ブルーブラッドが黄色人種を支配してたなんて電波な説だし。 自分たちの古代文明が見つかってないのでどこかにあったと思い込みたい白人に熱狂的に支持された。 ※もちろんブルーブラッドなんて比喩であって、実際に人の血を青くしてみた創作は○ーゼ○ォンくらいのものです。
420 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 13:32:17 ] アメリカとオーストラリアに大量移民した奴らがよく言うよ
421 名前:デフォルトの名無しさん [2009/02/22(日) 13:38:47 ] >>419 秋葉原のショップでは、こなた(らき☆すた)のフィギアは売ってますか?
422 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 00:11:19 ] 古い話を掘り返してみると、>359の書く「銀行型」って、ISO丸めのことなのね。 >362にあるように元は英語だろうけど、それを直訳した馬鹿がいるから >361のような「銀行で使う」と思い込む間抜けが出てくるんじゃないか。 寧ろ鉱工業などで測定結果の集計するのによく使うのに。
423 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 21:25:48 ] パイルバンカーの方?
424 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 22:34:38 ] 銀行は銀行だけど、「銀行家の」と言う意味だね。 まぁ、銀行でも使うケースと使わないケースがあるのだろうし、 「銀行型」って言い方をするよりも「ISO丸め」って言い方でいいんでない? まぁ、>422は言い過ぎだね。
425 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 22:49:06 ] 8087作ったときは、ISOじゃなかったのでは。
426 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 23:04:27 ] んじゃ、8087について語りたいときはansi丸めでw
427 名前:,,・´∀`・,,)っ-○○○ mailto:sage [2009/08/16(日) 13:27:05 ] >>423 エウレカ厨乙
428 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 13:20:35 ] 団子ってmixiにアカウントは持ってたよな。 嫌いなサイトが2chだとか書いてたろ。
429 名前:,,・´∀`・,,)っ-○○○ mailto:sage [2009/09/20(日) 19:09:53 ] それどころかVIPのコテとばっかしつるんでたが
430 名前:デフォルトの名無しさん [2010/01/30(土) 07:55:53 ] 貧乳について教えてください
431 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 04:58:05 ] 「インテル 64 アーキテクチャーおよびIA-32 アーキテクチャー最適化リファレンス・マニュアル」を読んでいて驚いたのだけど、 最近のCPUは除算のレイテンシとスループットが異様に小さいんだね。 FDIVでレイテンシとスループットが6と5って乗算とそんなに差がなくなっているね。 あとx87の表にNehalemがないのはNehalemってx87を積んでないの?
432 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 10:07:17 ] トランジスタの物量攻勢で、年々巨大なテーブルを引いて割り算するようになってんじゃないかな? バグ付きPentiumで有名になったアレ。まだまだ早くなるのかも。解説お願い。 float同士の割り算の全パターンを事前にテーブル化して焼いとくのもそう遠くない未来のような。 (仮数部だけでいいとして46bitのインデックスを引っ張るテーブルがあればいいのか?
433 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 10:39:40 ] 少なくとも一回計算した組み合わせくらいはキャッシュで持ってても良いよね
434 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 04:44:33 ] SSEを使うっているのは一般に、SSE命令を使っていればいいのか? 最近のコンパイラが吐くコードってスカラーでもaddssとかsubssを使っていることが多いので、 それだと何もしなくても”SSE”を使ったコードになってしまう気がする。 それともSIMDを使わないのはSSEを使っているとは言えないとなるのだろうか?
435 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 07:46:55 ] 単に8087由来FPUの80bitレジスタが嫌なだけじゃね? とエスパー回答してみる。
436 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 07:02:17 ] x86-64向けでなく組み込み関数でもなく、オプションも付けずにSSE命令を使うのはICCだけだろ
437 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 07:08:33 ] gccでも使うよ。適切にビルドされていれば
438 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 05:22:14 ] gccでも使うんだよ。でもさすがにパックドのコードを吐くことはないけど。
439 名前:デフォルトの名無しさん [2010/03/20(土) 17:58:41 ] インテルコンパイラを使っているのですが、WindowsとLinuxで結果が変わってきてしまいます。 精度を同じにするには、どのオプションを使えばよいのでしょうか?
440 名前:,,・´∀`・,,)っ-○○○ mailto:sage [2010/03/20(土) 18:07:52 ] >>432 Pentiumの除算ユニットはRadix-4 SRTっていうアルゴリズムを使っている。 journal.mycom.co.jp/column/architecture/090/index.html 45nm以降のCoreアーキテクチャはそれより強力なRadix-16 SRTで 4ビットずつ処理出来るから従来の倍程度は速い。
441 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 18:08:47 ] >>439
442 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 18:09:31 ] >>439 http://homepage1.nifty.com/herumi/prog/prog90.html#PRECISION
443 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 01:13:02 ] 新しいOpteron(Magny-Cours)で単精度のSSEのコードを走らせたんだけど、異様に遅い。 スカラーのコードの方が遙かに速いんだけど、そんなことってあるのかな? インテルのCPUなら概ね2倍になるコードなんだけど、2倍どころか1/3にもなりそうな感じだった。 ただ、倍精度になるとスカラーよりも速くなる。 ICCでやったりgccでいろんなオプション試したけど、あんまりかわらないので何が原因かわからずにいる。 これだけで原因がわかるエスパーな人がいると助かるんだが。
444 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 13:59:28 ] ttp://pc.watch.impress.co.jp/docs/news/20100329_357660.html >4つ目は省電力機能の拡張だ。Opteron 6100にはIstanbul世代で実装されていなかったC1E(CPUがスリープモードにあるときの電 >力を減らす機能)が実装されたほか、「AMD Cool Speed Technology」と呼ばれる省電力機能が実装されており、温度センサーで温 >度が限界を迎えたと判断したとき、プロセッサのPステートをより低い段階へと強制的に移行させる機能だ。これらの機能により、プロセ >ッサの電力効率を前世代に比べて高めている。 CPU温度が高くてクロックダウンしてるとか? 分からんけどw
445 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 20:14:14 ] >>443 ベクトル化が下手かOpteronの単精度がうんこかOpteronが不得意な命令を使っているか、 だと思う。 ICCはインテルCPU用の最適化しかしないという噂だけど、 gccはそんなことないはずだし。 プログラムの一部でもさらす気があるなら もうちょっと答えられるかも。 C++とIntrinsicライブラリ? C++とインラインアセンブラ? C++とアセンブラ? 32bit? 64bit?
446 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 20:57:24 ] >>443 スカラーのコード x87 or SSEのスカラー命令を使うコード? SSEのコード コンパイラの設定でSSEを使うようにしたスカラーコード or 並列化したコード?
447 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 01:45:18 ] >>444 これさ、一度CPUクーラーのファンを止めて、高負荷で動かしてみたことがあるんだけど、 マザーから警告のアラームがなって、ヒートシンクをさわったらさわれなくなる位めちゃくちゃ熱くなっていたけど、 実行しているプログラムが落ちることなく、動き続けていたから、相当熱くなるような環境でないと、 クロックが落ちることは無いと思う。よく負荷テストとかでPrime95とかいうFFTを馬鹿みたいに立ち上げる様な ことをしない限りは無いんじゃないかな。
448 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 01:54:08 ] >>445 レスサンクス。 使っているのはC++とIntrinsic。最初はインラインアセンブリで書いていたんだけど、 WindowsのVCCも考えて、Intrinsicに変更した。 コードをさらしたいのだけど、さすがにそれは出来ないので、 ちょっとシンプルなコードを書いて比較してみるよ。 何かわかったら書き込んでみる。 なんとなく思っているのは単精度だとシャッフルやらシフトを多用しているんだけど、 倍精度ではデータ幅の関係でそんなにやらなくていいので、Opteronはシャッフルとかシフトに弱いのかなあ? とか思っている。 >>446 64bitで使っているんで、もはやコンパイラがx87のコードを吐いてくれません。 ちょっと表現が悪かったけど、SSEと言っているのはベクトル化したSIMDコードという意味。
449 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 04:22:39 ] >>448 シャッフルのレイテンシ AMD Family 10h: 3 cycle Intel Penryn以降: 1 cycle
450 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 10:40:33 ] 「OpteronとIntel(Core2?)とで挙動が違う」のが問題であるなら、 キャッシュ構成を疑ってみるのはいかが。 Opteronの一次キャッシュって今も2-wayなの?
451 名前:443 mailto:sage [2010/06/29(火) 01:29:17 ] ちょこっと調べてみたら、クリティカルな部分は ループの中に for(;;) { //A,B,Cその他諸々のデータを取ってきて下記を実施 SSEの計算群1 -> 結果をxmm0に最終的に放り込む SSEの計算群2 -> 結果をxmm5に最終的に放り込む SSEの計算群3 -> 結果をxmm10に最終的に放り込む // メモリへの書き込み A[i] = xmm0; B[i] = xmm5; C[i] = xmm10; } と言うような感じなんだけど、メモリへの書き込みの段階で偉く遅くなっていた。 >>450 が言うようにキャッシュの問題なんだろうけど、解決方法は無いのかな? Opteronはライトスルーなのかな? A、B、Cの結果は再利用されることはないので_mm_stream_ps()でやってみたけど、そっちはもっと遅くなった。
452 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 03:11:14 ] 配列A,B,Cのサイズを 32kBの倍数+64*n(n=1,2,...,511) に変える
453 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 19:57:17 ] >>451 A,B,Cのサイズは? SSEの計算群1 -> 結果をxmm0に最終的に放り込む A[i] = xmm0; SSEの計算群2 -> 結果をxmm5に最終的に放り込む B[i] = xmm5; SSEの計算群3 -> 結果をxmm10に最終的に放り込む C[i] = xmm10; とやってみるとか。 Cだけ_mm_stream_psにしてみるとか。
454 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 22:57:53 ] キャッシュスラッシングが原因だとすると スカラーコードではA,B,Cは独立した ループで処理してるのかな?
455 名前:443 mailto:sage [2010/06/30(水) 02:18:30 ] >>453 レスありがとう。 実はすでにやってみたけど変わらなかった。 ひょっとしてレジスタが足りなくなって、xmm0とかが、メモリに待避させられているのでは? と思ったんだけど。 A,B,Cのサイズ自体多次元配列で、すごく大きいけど、ループの中では4K以下になるように処理している。 たとえば AAA[i][j][k]の3次元配列があった場合、 A = AAA[i][j] と1次元は配列として扱っている。そしてA[max]が4KB以下になるようにしている。 >>454 スカラーのコードもA,B,Cでループ内で処理している。 やっぱり、スラッシングが原因なのかなあ?
456 名前: ◆0uxK91AxII mailto:sage [2010/06/30(水) 18:03:29 ] とりあえず、境界を合わせて128[bit]ずつnon temporalな書込みをする。
457 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 19:03:04 ] Cだけ_mm_stream_psにしても変わらないならA,B,Cだけが原因じゃなさそうだ。 計算群1,2,3で参照しているメモリがA,B,Cとスラッシングしてるんじゃないかな。 なので、こうしたらどうだろう? for () {SSEの計算群1-> 結果をA[i]} for () {SSEの計算群2-> 結果をB[i]} for () {SSEの計算群3-> 結果をC[i]} これでも計算群1で参照しているメモリがA[i]とスラッシングしてたらお手上げなんだけど。
458 名前:443 mailto:sage [2010/07/01(木) 01:21:40 ] >>456 >>457 いろいろと調べてみたら、キャッシュの問題ではなくて、 NUMAノードの設定が問題だったようだ。 メモリの確保をmalloc()ではなく、numa_alloc_onnode()でダイレクトにNUMAノードを指定してあげたら、 ほぼスカラーの倍の速度が得られたよ。 numactlをつかって、--preferred=nodes --localallocとかいろいろといろいろとオプションを つけてやってみたけど、うまく指定したノードでのメモリ割り当てが出来ていなかったみたい。 いずれにしてもSSEの問題ではなかったので、変な質問をして申し訳ない。 レスしてくれた人ありがとう。 ただ、プリフェッチの指定をしていた部分でNehalemではかなり効果があったのが、 Opteronでは全く効果が無いので、プリフェッチの距離とかはOpteron用に考えないといけない様だ。
459 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 08:56:52 ] OpteronのNUMAは諸刃の剣だな。ハマればメモリの許す限りスケールするしな。 ていうかSMP Opteron由来の問題とは俺も気付かなかった。
460 名前:デフォルトの名無しさん [2010/07/23(金) 11:32:54 ] (000、000)10 ー10、835 とかいう問題
461 名前:デフォルトの名無しさん mailto:sage [2010/07/27(火) 16:59:37 ] >>458 First touch 問題だね