X



【C++】高速化手法【SSE】2 [転載禁止]©2ch.net
0107デフォルトの名無しさん
垢版 |
2015/07/06(月) 09:26:17.06ID:9h3CM3fP
386からは一発だな
その代わりマスクがかかる

286ま命令はあったがマイクロコード
8086はCLで回数指定以外、多ビットシフト命令が無かった

はず
0108デフォルトの名無しさん
垢版 |
2015/07/06(月) 17:03:51.46ID:obJwiAn/
cpuの命令セットて全部アセンブラに還元されるんですか?
もしそうなら命令セットてアセンブラで作ったライブラリみたいなものですよね?
0109デフォルトの名無しさん
垢版 |
2015/07/06(月) 17:18:20.33ID:hLGIY9Ls
アセンブラとCPU命令と機械語は一対一対応で見かけだけの違いだろ。
より人間よりの記法がアセンブラ。
0110デフォルトの名無しさん
垢版 |
2015/07/06(月) 17:19:36.84ID:g1ABbiM2
ライブラリ?
0111デフォルトの名無しさん
垢版 |
2015/07/06(月) 18:59:39.73ID:K/ajJWQg
アセンブラに、1語で複数インストラクションに対応する組み込み済みマクロはよくあるね。
ユーザーにとっては見かけ上機械語のニモニックと変わらん
0113デフォルトの名無しさん
垢版 |
2015/07/16(木) 18:53:32.86ID:l6l+0TT5
シフト命令がサイクル数変わらずって事は
もしや乗算命令も……?
0117デフォルトの名無しさん
垢版 |
2015/07/21(火) 08:40:49.05ID:JVfLP5Iv
効率て何?
回路規模?
速度とアルゴリズムのシンプルさなら表引きだけどな。
0118デフォルトの名無しさん
垢版 |
2015/07/21(火) 12:54:25.50ID:KUd+SBCt
表引きて何バイトの表用意するつもり?
0119デフォルトの名無しさん
垢版 |
2015/07/21(火) 13:57:35.38ID:tQ/auOKg
>>109
ニーモニックとオペコードは一対一とは限らないよ。
0121デフォルトの名無しさん
垢版 |
2015/07/22(水) 01:54:32.08ID:Vve5AGCV
>>116
まあ筆算は筆算だけどね、boothのアルゴリズムとかwallace treeとか調べてみるといいと思うよ
0122デフォルトの名無しさん
垢版 |
2015/07/29(水) 01:28:21.81ID:OiAbEds4
>>76は今の時点だとあたってるように思えるなあ
CPUと頻繁にデータやり取りしたり、十分長い時間計算させるのでなければオーバーヘッド大きすぎるし
0123デフォルトの名無しさん
垢版 |
2015/10/01(木) 15:36:21.06ID:X8BXmh6N
pcooがいいかboostがいいかって話もここでいいの?
0127デフォルトの名無しさん
垢版 |
2015/10/23(金) 09:29:13.47ID:I0uni5nx
☆ 日本の核武装は早急に必須ですわ。☆
総務省の『憲法改正国民投票法』、でググってみてください。
日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、日本人の悲願である
改憲の成就が決まります。皆様方、必ず投票に自ら足を運んでください。お願い致します。
0128デフォルトの名無しさん
垢版 |
2015/11/18(水) 22:46:47.01ID:LC5LQUuD
>>116
いろいろとある
筆算方式だと桁数が倍になれば計算時間や回路規模が4倍になるけど、
3倍で済む方法もあるし、
2倍ちょっとで済む方法もある。
0129デフォルトの名無しさん
垢版 |
2015/11/23(月) 15:07:59.69ID:ZNmYnLez
>>127
「米国におしつけられた憲法」「日本人悲願の」といいつつ
米の意向による改憲だけどな
さすが米国の金で設立された米の利益代表団体自民党、国民を騙すのに躊躇ないぜ
0130デフォルトの名無しさん
垢版 |
2015/11/23(月) 17:35:17.53ID:OK+rBFmG
intelの乗算がスループットが1clock、レイテンシが3clock。
どうやったら3clockで計算が終わるん?
0134デフォルトの名無しさん
垢版 |
2015/11/24(火) 19:32:05.64ID:4kZfiltG
テーブル参照で済ませてんのかな?
教えて、だんごの人!
0135デフォルトの名無しさん
垢版 |
2015/11/24(火) 21:52:15.52ID:VivS0v9A
Load, Storeは別でしょ
乗算は
53bit x 53bit の整数乗算
106bitから53bitへの丸め
指数部分の計算
などが必要
この中で53bit x 53bitが一番時間がかかる

3つに分けるとしたらたとえば
1. 53bit x 20bit
2. 前の結果 + 53bit x 20bit
3. 前の結果 + 53bit x 13bit, 丸め, 指数計算
とか
0136デフォルトの名無しさん
垢版 |
2015/11/24(火) 21:53:14.32ID:VivS0v9A
テーブルは割り算では使うけど、掛け算は使わないと思う
0137,,・´∀`・,,)っ-○○○
垢版 |
2015/11/25(水) 02:03:47.62ID:45GjjvYt
運転手が自動車のエンジンの内部構造を知る必要はない
車を動かすだけの最低限の知識さえあればいい
0138デフォルトの名無しさん
垢版 |
2015/11/25(水) 04:32:17.38ID:eJijZLoL
内部構造を知る事による運転技術の向上の可能性を否定出来ない。 (英訳せよ
0139デフォルトの名無しさん
垢版 |
2015/11/25(水) 08:50:00.26ID:s9hTLLjK
速いレーシングドライバーやライダーというものは、エンジンの内部構造だけではなく、
フレームの特性から、タイヤマネージメント、そしてメンタルをコントロールするための心理学まで詳しい。
0141デフォルトの名無しさん
垢版 |
2015/11/25(水) 16:07:40.71ID:9VrR2D9e
>>139
ペーパーテストでリアウイングを立てる効果を問われて
スポンサーロゴがよく見えるって答えたF1ドライバーが
ワールドチャンピオンになったぞ。
0142デフォルトの名無しさん
垢版 |
2015/11/25(水) 16:08:46.62ID:rHMnfdo0
これマジ?

65 名前:Socket774[sage] 投稿日:2015/11/22(日) 00:16:33.62 ID:0X8V8J8N [1/2]
>>16 の続き

調べたらいろいろとわかってきました。
非常に長い間(2ms程度でばらつきあり)書き換えていないレジスタを使用すると
レイテンシが1増加するようです

以下は私の予想
2msといえばWindowsのスレッドのタイムスライス値のオーダーなので、
XSAVE/XRSTORあたりにエラッタがあると予想
XRSTOR以降値を更新してないレジスタを使用するとレイテンシが1増えてしまう
通常2msも同じ値を保持することはマレなので特に大きな問題とはとらえられていない
が、Broadwellで直っているのでintelはこの問題を認識はしているのでしょう

----
発生することを確認した命令
vaddpd, vsubpd, vaddsubpd, vmulpd, fma***pd
vaddps, vsubps, vaddsubps, vmulps, fma***ps
(128bitでも256bitでも)

発生しないことを確認した命令 :
addpd, subpd, addsubpd, mulpd
addps, subps, addsubps, mulps
vandpd, vorpd, vpand, vpor

発生することを確認したプロセッサ : Haswell
発生しないことを確認したプロセッサ : SandyBridge, IvyBridge, Broadwell
0149デフォルトの名無しさん
垢版 |
2015/11/27(金) 00:58:51.08ID:B/NYVAdM
電源回路の一部をCPUに乗っけてノイズ乗りまくり不安定になった馬鹿設計のCPU。
0151デフォルトの名無しさん
垢版 |
2015/11/29(日) 17:12:51.03ID:U49gaUJj
intel の主力 CPU製品の世代・バージョンを表すコード名だよ
セレロンとか Core7 とか商品名に隠れて見えにくくされてる
ちなみに現行最新は broadwell に替わってるらしい
0156デフォルトの名無しさん
垢版 |
2015/12/01(火) 09:29:42.23ID:euK/mxZa
素晴らしいかどうかは兎も角、最適化の必要がないのは同意。
だってみかけねぇもんw
0157デフォルトの名無しさん
垢版 |
2015/12/01(火) 09:39:53.24ID:WgVnPdZx
haswell、amd64知らないっておまえらゆとりすぎだろ、おい。
and64っていわゆるx64命令セットのことだ。AMDのCPUのことじゃない。
0160デフォルトの名無しさん
垢版 |
2015/12/01(火) 13:22:36.19ID:BYRY3bxz
AMDはx86互換の64bitCPUを早い段階で提唱したのが最大の功績
MSもそれに乗っかった
Intelまかせだったら64bit環境のコンシューマへの普及が遅れていたか
満足なものにならなかった可能性がある
IntelはItaniumとかいう普通の人からしたらゴミな物を売りたかっただろうし
将来的にはIA-64に置き換えるつもりだったらしいが
未だに32bitアプリが溢れていることを考えると互換を切るのは良くなかった
一応激遅のx86エミュレーションは付いていたが
互換で食っていた会社の癖に互換を切り捨てるとは何事ぞ
0161デフォルトの名無しさん
垢版 |
2015/12/01(火) 16:31:29.60ID:xuYieJrT
互換切っちゃいけねえのは当然かもしんないけど
未だに4bitだか8bitのCPUに由来する制限や設計の歪みを引き継ぎ続けるのもなぁ……
カウンタレジスタとしてはRCXしか使えませんとかあまりにもウンコすぎる
0162デフォルトの名無しさん
垢版 |
2015/12/01(火) 17:19:11.09ID:yW8K+bhB
そんなん先読みやら最適化の都合じゃないの?

それに互換ぶっ壊していいのなら ARM にしちゃいなよ
0163デフォルトの名無しさん
垢版 |
2015/12/01(火) 20:49:07.03ID:DqfiEd0O
64bit化の時が、唯一のx86系命令のエンコードを変えるチャンスだった
汎用レジスタは16個に増えたけど、それ以外はしょぼいまま継ぎ足し継ぎ足しのエンコード
命令が複雑すぎるし効率的じゃないし汎用整数命令が2オペランドのままだし

汎用レジスタ数増大
2SRC, 1DEST の非破壊演算
3オペランドの自由論理演算
アドレス計算用の簡易で高速な積和命令追加 (いまだLEAが重要命令って異常だろ)
乗算除算命令のレジスタ縛り削除
フラグ未使用の演算増加 or フラグの多重化

一応ちまちまは増えてるけどそんなんじゃダメ
一気に増やさないと使われないから意味がない
0164デフォルトの名無しさん
垢版 |
2015/12/01(火) 21:11:09.22ID:lfUAYGEe
一切のしがらみを解き放って、ゼロベースで命令セットを設計したら、
どれくらいの性能を叩きだせるんだろうか?
0166デフォルトの名無しさん
垢版 |
2015/12/01(火) 21:23:08.46ID:DqfiEd0O
メニーコア系だな
GPUとCPUとDSPの良いところ取り
GPUとCPUは区別がなくなる
デコーダーやスケジューラーは極力小さく、
演算器と入出力に大きく回路を割く
0167デフォルトの名無しさん
垢版 |
2015/12/01(火) 21:26:16.98ID:DqfiEd0O
Itaniumの失敗は、
x86を軽視した
コンパイル時最適化がCPUの進化に合わなかった
こんな感じか?
0169,,・´∀`・,,)っ-○○○
垢版 |
2015/12/01(火) 21:28:26.40ID:woh9g3Fk
並列化は並列化できないクリティカルパスで行き詰る
パンの製造ラインをいくら増やそうが1つのパンの一次発酵と二次発酵を同時にできないのと同じ。
0170デフォルトの名無しさん
垢版 |
2015/12/01(火) 21:39:52.86ID:DqfiEd0O
その為に非対称メニーコアとかいう考えもあるけど...
今ある重い処理の多くは並列化可能でしょ
0174デフォルトの名無しさん
垢版 |
2015/12/01(火) 21:48:08.42ID:lfUAYGEe
>>166
Cellやララビの方向性かな?
いずれにせよ、プログラマがどこまでしんどい重いするかも重要やね。
0175デフォルトの名無しさん
垢版 |
2015/12/01(火) 21:49:36.60ID:WgVnPdZx
条件分岐あるからクリティカルパスも変動するから、消費電力を対価に投棄実行できなくもないよ。
0178,,・´∀`・,,)っ-○○○
垢版 |
2015/12/01(火) 22:21:53.65ID:woh9g3Fk
ハードの設計の努力を知らない下衆が偉そうに語ることは何一つないのよ
与えられたものをうまく使う方法だけ考えればいい
0179デフォルトの名無しさん
垢版 |
2015/12/01(火) 22:22:38.64ID:M545w8lo
クリティカルパスってそんな問題になるかなぁ。
コア数が1万とかになったら大問題かもしれんが、
コア数4とかじゃあんまり問題に成らなくね。
0180デフォルトの名無しさん
垢版 |
2015/12/01(火) 22:27:59.76ID:BYRY3bxz
最近の事情は良く知らないんだけど
IntelのCPUでGPU内臓じゃないのってあるの?
サーバー用じゃなく
0182デフォルトの名無しさん
垢版 |
2015/12/01(火) 22:57:39.27ID:BYRY3bxz
ちょっと一般向けとは言いがたいね
しかもHaswellだし
個人的にGPUはグラボ刺すからCPUに内蔵してほしくないんだよなぁ
GPU無しで、その分値段を落としたモデルがほしい
0185デフォルトの名無しさん
垢版 |
2015/12/02(水) 00:34:39.84ID:0XpBrEKR
GPUユニットは並列演算に利用できるのにそれが必要ない用途ねぇ。
Xeonでいいはずなのにキャッシュもメモリ帯域もコア数も必要ないってことですよねぇ。
結局、内臓GPU必要ないってことはゲーム用途でしょうねぇ。
0186デフォルトの名無しさん
垢版 |
2015/12/02(水) 04:57:08.43ID:rypJABRF
>>179
クリティカルパスってコア数が少ない方がループ回数が増えるから影響が大きくなると思うけどな
クリティカルセクションと勘違いしてない?

この話の流れでクリティカルパスがでてくるのがおかしいんだよ
アウトオブオーダにしろ、VLIWやメイニーコアにしろ、クリティカルパスの問題は一緒
違いがあるのは並列化の粒度でしょ
小さい粒度のはOoO、大きなのはメイニーコアが適していて、静的な並列化は中途半端だったということ
0188,,・´∀`・,,)っ-○○○
垢版 |
2015/12/02(水) 06:21:53.98ID:LTVoUgjb
同じコア性能なら多いほうが多い、それは当たり前だ
しかし低性能なコアを複数並べれば高機能なコアより常に速いというのは幻想

KNCのボトルネックがまさにイニシャル処理で、KNC側でやると遅いから大体ホスト側にやらせることになる
0189デフォルトの名無しさん
垢版 |
2015/12/02(水) 12:21:50.26ID:rypJABRF
また的外れなこと言ってる
団子って周りから人の話聞いてないって言われないか?

OoOはCPU内でディスパッチやリダクションしてる為に熱的に限界を迎えて
性能があげられなくなったからメイニーコアやGPUの方向性が出てきたんでしょ
用途によって向き不向きがあるから棲み分けするようになって、今はその匙加減を
調整してる状況なんだろうな
CELLみたいにバランスの悪いのは結局は残れないってことなんだろうね
0191デフォルトの名無しさん
垢版 |
2015/12/02(水) 14:17:02.16ID:aHX8DqFu
GPUユニットより柔軟性の高いSIMD演算器を高速なローカルストレージと一緒にCPUに内蔵させたい
GPGPU無駄多すぎ
0192デフォルトの名無しさん
垢版 |
2015/12/02(水) 15:49:04.71ID:tY3PsYOb
個人的にはSIMDが1024-wayとかになったら面白いんだが
サーバー用としてはメニーコアの方が相性が良いので
そういう流れにはならないだろうが
0193デフォルトの名無しさん
垢版 |
2015/12/02(水) 19:05:39.75ID:lLZXeX9n
ベクトルコンピューターがそんな感じだった
ベクトル化出来ない処理は急激に遅くなるから、
今はコア数とバランス良くって方向になってる

AVXが8way
AVX512が16way
Geforceが32way
Radeonが64way
最高でも64wayあたりに落ち着くのでは?
0194デフォルトの名無しさん
垢版 |
2015/12/02(水) 19:13:57.66ID:lSgAR6hy
>>191
SIMD、柔軟性高いかなぁ?
データの並びとか気を付けないといけないし、プレディケーションもプログラマが書かないとできない。
非アライメントのペナルティが軽減されたのは有難いけど、
せめてプレディケーションくらいはGPUのようにHWでサポートしてほしいなぁ。
0195デフォルトの名無しさん
垢版 |
2015/12/02(水) 20:17:39.20ID:rypJABRF
コストの掛かるOoOでもSIMDにすれば相対的にコストが下がるというのもあるし
マスク演算ができるようになればプリディケードとブランチをプログラマが選べるようになる
インテルが目指してる方向は手堅いものだと思うな
0196デフォルトの名無しさん
垢版 |
2015/12/02(水) 20:53:25.97ID:73uUfhWJ
早く1024bit SIMD実装してほしいぜ。
囲碁の処理が速くなりそう。
碁盤は19 x 19だから512bitだと微妙なんだよな。
0197デフォルトの名無しさん
垢版 |
2015/12/02(水) 21:01:41.94ID:OrMGyZIC
ハードウェアベクタをあまり長くしても大半のアプリケーションで無駄が出るだけだろ。
GPUのやりかたが落としどころとしてベストだと思うがな。
0199デフォルトの名無しさん
垢版 |
2015/12/02(水) 21:29:46.57ID:lSgAR6hy
いや、C++に限らないんじゃない?
スレタイの【C++】や【SSE】ってのは主な手段であって、
GPUやFPGAだって立派な高速化手段だ。
0200デフォルトの名無しさん
垢版 |
2015/12/02(水) 21:52:10.30ID:lLZXeX9n
>>197
GPUで速くなる処理はベクタ長アップでも確実に速くなるよ
0205デフォルトの名無しさん
垢版 |
2015/12/02(水) 23:16:28.02ID:rypJABRF
>>203
命令レベルの並列化にしろマルチプロセッサでの並列化にしろ
クリティカルパスじゃない部分を見つけて並列化してるという点では一緒で
並列化のアプローチの仕方が違ってるだけなのは理解してるんでしょ?
命令レベルの並列化であるOoOの方が直接的にクリティカルパスの影響を受けて
並列化が並列化が制限されるようになったからハイパースレッディングが投入されたのに
メイニーコアでクリティカルパスが問題になるって言い方は引っかかるんだよ
レスを投稿する


ニューススポーツなんでも実況