1 名前:デフォルトの名無しさん [2007/03/25(日) 21:19:33 ] アセンブラ全般に関するスレッドです。 【前スレ】 アセンブラ… (゜□゜) ↑アッー!↓ pc11.2ch.net/test/read.cgi/tech/1148402614/
448 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 12:08:21 ] HTテクノロジーなんか、1コア2スレッドの典型例ジャマイカ あれは1つのコアに2つのコンテキストを含んでるんじゃなかったっけ
449 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 12:23:20 ] 同時実行スレッド数の話でいいのかな? それだったらHTはそうだね。 で、8スレッドって話はどこから?
450 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 12:41:50 ] どっかに 8 スレッド使えるやつがあるのかな。
451 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 13:44:07 ] アセンブラ… ( ゚д゚)ウッウー って何?
452 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 13:50:02 ] (><)ワカンナイデス!
453 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 13:58:42 ] 同時に処理しなくていいなら、386ですら無限大のスレッド扱えるじゃん
454 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 14:31:00 ] ふーむ
455 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 14:47:12 ] >>448 1コア8スレッドの「8」は、たまたまそういう規格だっただけだろう。 実際、>>441 は同時4スレッドっぽいし。
456 名前:お約束の突っ込みだが (w mailto:sage [2007/07/22(日) 15:17:46 ] >>453 有限のメモリで無限のスレッドを管理できるんだ。 そんな凄いOSの名前をぜひ教えてくれまいか。
457 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 15:36:29 ] >>434 は2ちゃんでも繰り返されたなw
458 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 16:26:33 ] これってアセンブラに関係する話なのか?
459 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 17:50:30 ] これは「 ( ゚д゚)ウッウー」に関係する話
460 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 19:03:36 ] 「スレッド」の意味するものがコンテキストによって変化する例ですな
461 名前:デフォルトの名無しさん [2007/07/22(日) 19:28:06 ] ストリーミングすりゃ、どんなCPUでも無限のスレッド使えるよwww 今日一日20スレッド処理し明日20扱い・・・・・・ どんどん増えていくなw ド素人>>439 の考えてることはこういうことだろ?w
462 名前:デフォルトの名無しさん [2007/07/22(日) 19:28:48 ] 439 名前: デフォルトの名無しさん [sage] 投稿日: 2007/07/22(日) 06:11:42 同時に処理できるのは1コア1スレッドまでだけどな。 で、これの根拠はどこなのだろうね HTでも既に同時処理できているのに「1コア1スレッド」 団子無知すぎるw
463 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 20:04:52 ] >>462 おや、団子フォビアですか?
464 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 20:19:26 ] まんじゅう恐い
465 名前:・∀・)っ-○◎● mailto:sage [2007/07/22(日) 20:55:44 ] 馬鹿じゃね? シンメトリックFGMTは1サイクル毎にスレッドを切り替えて実行するもので「同時」とは言わない。 同時なのはPentium 4のSMT方式
466 名前:・∀・)っ-○◎● mailto:sage [2007/07/22(日) 21:01:09 ] >>434 on the flyがどう読んだらオン「ダ」フライになるんですか。中学生以下の英語力乙
467 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 21:16:53 ] >>466 オーストラリアをバカにするな!
468 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 21:21:49 ] アイゴートゥーオフィストゥダイ
469 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 21:35:31 ] もう荒れるから団子禁止にしようよ
470 名前:・∀・)っ-○◎● mailto:sage [2007/07/22(日) 21:37:40 ] 荒らしてるのはゲハのCellマンセー厨だろwww
471 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 23:13:05 ] そういうのを呼び寄せてるじゃんかw
472 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 23:45:22 ] レスの口調がすでにホイホイ全開だからなぁ 団子の欠点の1つだ
473 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 00:30:19 ] 1コア1スレッドということは、SMTすら否定してるんだからw 団子はどんだけバカなんだw
474 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 00:35:57 ] >>439 は俺じゃないけどwww ただFGMTやCGMTは「同時」実行機能はない。 レジスタファイルを多重化して高速にスレッドを切り替えてるだけ。 同じクロックタイミングに別々のスレッドが処理されることは原則的にあり得ない。
475 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 00:40:53 ] 保険が利いたのかw 「ヤバそうなことは名無しで」 あとはしらばっくれりゃいいとw
476 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 00:48:20 ] 名無しが卑怯だと思うならコテ付ければ?常時卑怯なクソGKさんwww 俺は外す理由はないが ちなみに>>439 はPPEやNiagaraに限っては何も間違ったことは言ってない。
477 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 00:49:27 ] 「スレッド」も「同時」も定義色々。 自分に都合のいい定義を選んだ上での議論に何の意味があるんだろう。
478 名前:デフォルトの名無しさん [2007/07/23(月) 01:02:39 ] >PPEや ハァ?????????? www-06.ibm.com/jp/developerworks/linux/library/pa-soc12/ このコードをダウンロードして実行した場合、 PPE SMT (同時マルチスレッド化) による加速が明らかになるのは、 フィボナッチ数列の実行が数千回以上繰り返された時点からです。 基本的に、スレッドの作成と管理によるオーバーヘッドは、 ある時点で、 スレッドを SMT で加速して実行することから 得られる高速化によって克服されます。
479 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 01:04:20 ] インオーダパイプラインで複数コンテクストの命令コードを交互にフェッチするのはSMTとは言わんよ。 エグゼキューションのタイミングもほぼ例外なくデコード順。 アウトオブオーダのスーパースケーラでこそ「同時」になりうる。 SMTはフルスピードのシングルプロセッサとしても使えるが、 シンメトリックFGMTは分割数に依存して1スレッドあたりの最大スループットが落ちる。 SunのNiagaraはサーバ用途に限定してコンテクストスイッチを回避するために使ってるからな。 シングルスレッド性能が落ちても痛くない用途でだけ番長になれればいいのよ。 この会社、Intelにシングルスレッド性能で負けるようになった頃からずっと負け惜しみのごとく 「スループットコンピューティング」を提唱してる。
480 名前:デフォルトの名無しさん [2007/07/23(月) 01:05:31 ] pc.watch.impress.co.jp/docs/2005/0208/kaigai153.htm さらに、PPEはIntelのHyper-Threadingと 類似のSMT(Simultaneous Multithreading)機能も搭載し、 2つのスレッドを同時に実行することができる。 2wayのSMTを実装したPPEと、8個のSPEで、 Cell全体では10スレッドを並列に実行できる。 つまり、ソフトウェア側から見るとCellの中に 10個のCPUがあるように見えることになる。 PPE は、512KBのL2キャッシュも備える。
481 名前:デフォルトの名無しさん [2007/07/23(月) 01:06:23 ] どうなっとんだ! オイコラ団子!! IBMですらSMTと言ってるんだよ!! で、挙動もまさしくHTと同じようなSMT。 団子!コラオイ!
482 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 01:10:46 ] そんな学術的権威のかけらもない頭の悪い子の書いた記事を真に受けるなんて(ry そこのSMTのSはSymmetricの略でSimultaneousじゃないだろw 同時実行じゃなくて交互実行。
483 名前:デフォルトの名無しさん [2007/07/23(月) 01:11:46 ] また何の反証もせずに捏造かよw
484 名前:デフォルトの名無しさん [2007/07/23(月) 01:12:31 ] www-06.ibm.com/jp/developerworks/linux/library/pa-soc12/ ここなんか設計・開発元じゃんw 権威も何も開発元wwwwwwwwwww
485 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 01:12:49 ] 全然 トレースキャッシュからのフェッチから実行まで2スレッドをごちゃ混ぜで処理できるHTと 尾っぽから先まで【交互】実行のFGMTが同じ技術なんて頭悪すぎ
486 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 01:14:45 ] IEEEの論文引っ張り出してきてくださいwww 訳文が間違ってるのか原文が間違ってるのか知らんが、そのドキュメント書いた奴は頭悪すぎる まあオン「ダ」フライなんて言ってる子にはわからんだろうけど
487 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 01:15:03 ] 先にSMTではない証拠を出さないといかんだろ
488 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 01:16:30 ] 後藤はコンピュータの仕事にかかわったこともないただの記者。 伝えられた情報もろくに検証せず嘘も嘘のまま書く。
489 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 01:18:11 ] Linuxのgnome-system-monitorで見ていると、HTのXeonはCPU1とCPU2が両方負荷が上がっていくのに PPEはCPU1とCPU2が交互にしか負荷が上がっていかないのはそういうわけか。
490 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 01:18:38 ] >>487 現実にはSymmetric MultithreadingもSMTと略されるので頭の悪い子は混同しがちなんですよ。 本当はHyperTransportとHyperThreadingくらい違うのに。 www.google.co.jp/search?num=100&hl=ja&rls=GGLJ%2CGGLJ%3A2006-43%2CGGLJ%3Aja&q=Symmetric++Multithreading&lr=
491 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 01:22:12 ] いやだからPPEがSMTではない証拠はどこなんだよ。
492 名前:デフォルトの名無しさん [2007/07/23(月) 01:22:50 ] どうせまた得意の捏造w ド素人が知ったかコイて「1コア1スレッド」などとホザくと恥をかくとw
493 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 01:23:42 ] www.radiumsoftware.com/0511.html この辺みてね。馬鹿でも理解できるように違いが書いてある。
494 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 01:24:45 ] だから「同時」実行できるスレッドは1つじゃん 交互実行できるのは2スレッドだけどな
495 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 01:26:02 ] だからSMTは同時じゃん 自分で言ってるのに分からんと?
496 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 01:26:36 ] 用語の使い方なんか聞いてない。 PPEがSMTではない証拠。
497 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 01:27:22 ] お前の大好きな後藤先生がSMTとFGMTが明確に違う、またPPEが後者であることを 明言してますよ pc.watch.impress.co.jp/docs/2005/0713/kaigai198.htm ●GPUは粒度の細かなスレッディングを採用 マルチスレッディングには、制御の方式によっていくつか種類がある。 SMT(Simultaneous Multithreading) Fine-Grained(細粒度) Multithreading Coarse-Grained(粗粒度) Multithreading SMTはPentium 4のHyper-Threadingのように、複数のスレッドの命令を1サイクルの中で同時に実行することが できるアーキテクチャだ。スレッドを切り替えるのではなく、異なるスレッドの命令を完全に混合して実行できる。 それに対して、Fine-Grained Multithreadingは、同じサイクルに複数スレッドの命令は同時実行できない。 1サイクル単位でスレッドを切り替えて実行できる。CellプロセッサのPPE(Power Processor Element)など のマルチスレッディングがこの方式だ。
498 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 01:30:56 ] んで、これの日付をみましょうね。 >pc.watch.impress.co.jp/docs/2005/0208/kaigai153.htm ↑後藤の悪い癖は過去の記事の間違いは訂正しないこと。 だから後からみると矛盾がある
499 名前:デフォルトの名無しさん [2007/07/23(月) 02:02:54 ] www.google.co.jp/search?hl=ja&q=PPE+SMT&btnG=Google+%E6%A4%9C%E7%B4%A2&lr= うんうん、PPEはSMTだねえ。 団子は後藤の言うことはすべてウソというので、 SMTではないと言う後藤の弁もウソなのだろうw よって真SMTであると。 「SMTではない証拠が一切ない」しね。
500 名前:デフォルトの名無しさん [2007/07/23(月) 02:04:33 ] PPEがSMTである証拠は山ほどあるが SMTではない証拠は一切なしw ひたすらド素人チョンが「用語の解説だけ」に終始しているザマw SMTである証拠 >PPEや ハァ?????????? www-06.ibm.com/jp/developerworks/linux/library/pa-soc12/ このコードをダウンロードして実行した場合、 PPE SMT (同時マルチスレッド化) による加速が明らかになるのは、 フィボナッチ数列の実行が数千回以上繰り返された時点からです。 基本的に、スレッドの作成と管理によるオーバーヘッドは、 ある時点で、 スレッドを SMT で加速して実行することから 得られる高速化によって克服されます。
501 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 02:21:09 ] 誤用をソースにされても。。。 1クロック毎に交互に実行するって公式に書いてあるのにそれすら読めない? まあマーケティング用語としては何とでも言えるしね。 Pentium 4と同じ方式って言えば聞こえがいいし。ほとんど詐欺だけど。
502 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 02:23:31 ] IBMの捏造は文化と化してるし
503 名前:デフォルトの名無しさん [2007/07/23(月) 03:03:41 ] 貶したかと思ったら突然採用するド素人チョンw 自分の言ったことすら分からんらしいw 488 名前: ・∀・)っ-○◎● [sage] 投稿日: 2007/07/23(月) 01:16:30 後藤はコンピュータの仕事にかかわったこともないただの記者。 伝えられた情報もろくに検証せず嘘も嘘のまま書く。 ↓ 497 名前: ・∀・)っ-○◎● [sage] 投稿日: 2007/07/23(月) 01:27:22 お前の大好きな後藤先生がSMTとFGMTが明確に違う、またPPEが後者であることを 明言してますよ
504 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 03:16:15 ] だから信用できないんだよ後藤は。情報の学位も持ってない素人だし。 俺が指摘するまで後藤の記事の矛盾に気づかなかったおばかさん。 仕事あるから寝るわ。
505 名前:デフォルトの名無しさん [2007/07/23(月) 03:39:18 ] 497 名前: ・∀・)っ-○◎● [sage] 投稿日: 2007/07/23(月) 01:27:22 お前の大好きな後藤先生がSMTとFGMTが明確に違う、またPPEが後者であることを 明言してますよ これそのものがウソなんじゃんw IBMでは明確に同時SMTといってるわけだしw それを覆してない団子の負けw
506 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 04:47:55 ] 同時にSMTやるのか 頭痛が痛い人だな インオーダコアで「同時」なんて無理だと何度言ったらわかるかなこのアホは。 学術論文を読みましょう。 ieeexplore.ieee.org/Xplore/login.jsp?url=/iel5/7126/19206/00888346.pdf あ?IEEEの会員じゃないから読めない? 私はCPUを語るに値しない馬鹿ですって言ってるようなもの。 あとここ読んだら?訳した奴が馬鹿だよ多分。 www-01.ibm.com/chips/techlib/techlib.nsf/products/Cell_Broadband_Engine
507 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 04:58:04 ] 恩田フライくんは英語もよめなそうだな > Well, fine-grained processing is used in a lot of CG type stuff, but it also allows for true multithreading > during cache misses and such. Say for example both threads passing through the PPE are active and > fine-grained. When one thread is not active or is stalled for whatever reason, the PPE will activate > the 2nd thread and that thread will issue an instruction each cycle while the other thread figures out > what has gone wrong,
508 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 05:22:27 ] インテルの次次世代コアはインオーダでHTありだよなw
509 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 05:41:55 ] Itanium 2に搭載されたCGMTもIntelはHyper-Threaingと称してるがな。 マーケティング用語としてなら何とでも言える。 同様に、教科書通りのFGMTなのにSMTっていうのはマーケティング用語としてだろう。 キャペリンをシシャモだと言って売るのと同じようなもんかな。
510 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 05:55:52 ] 32nmプロセスの「Gesher」までCoreマイクロアーキテクチャベースのロードマップが公開されてる上で 派生プロダクトとして出すストリーミングプロセッサが「次次世代」なんて(笑) Cellが正当進化だと思いたい電波らしい発言だなwww アレはGPGPUによるストリーミングプロセッシングを置き換えるもので既存のCPUを置き換えるものではない。 キャッシュの構成からして今のGPUに酷似してる。 大体に22nmプロセスなら今のCore2を32コア化できるのでコアを退化させる必要自体ない。
511 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 06:01:47 ] LarrabeeはPCI Express Gen2接続のアクセラレータボードで提供されるもの。 じゃあ、メインCPUのソケットには何が刺さるんだよwww 何に対して「次次世代」なのかよく考えて書くように。
512 名前:デフォルトの名無しさん [2007/07/23(月) 09:40:41 ] 自説がトンデモだと証明され intelにまでケチつけはじめた
513 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 09:46:22 ] 団子と取り巻き連中はスレタイ嫁
514 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 09:46:48 ] >>513 なんで?
515 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 10:12:51 ] 1クロックで命令が完結するわけではないので同時実行という認識も間違っているわけではない 齟齬の原因は団子がSMTの定義を狭めすぎている事
516 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 13:27:09 ] 命令が完結していなくても、処理が一時停止してるのであれば その状態では命令を「実行」しているとは言えないんじゃないのか。
517 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 20:25:53 ] つまり、スレッド1のレジスタへの書き戻しと、スレッド2のフェッチが 同時に実行されてないとか調べろ、とかか?
518 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:03:36 ] 実行はあくまでExecutionパイプだろ。 それはともかく、インオーダパイプラインのステージレベルの並列化なら90年代初頭からのFGMTの概念そのまんま。 SMTという言葉が確立したのはモダンなRISCアーキテクチャが出て来てからの話。Alphaみたいな。 てかSMTの実装自体、旧DECが特許を持ってて、Pentium4のHTはわざわざ買い上げて使ってる。 Cellのは名前だけパクったバッタモン実装と言われても仕方がない。
519 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:25:49 ] WindowsでJavaくらいしかいじったことないんですが、アセンブラに手を出したい時のおすすめの本ってありますか?
520 名前:・∀・)っ-○◎● mailto:sage [2007/07/23(月) 23:39:05 ] Larrabeeは特定用途向けの「アクセラレータ」だってIntelが明言してるのに Core 2の「後継」だと思ってるなんて馬鹿だな。 ピーク性能を引き上げるためにモダンアーキテクチャから削った機能は 汎用プロセッシングには決して無駄なものじゃないことは PS3 Linux界隈の惨状で既にわかったことだろう
521 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:40:46 ] とりあえず「The Java Virtual Machine Specification」でJava/JVM/Bytecodeの スペシャリストになるってのは? 幸い?Java界では自己書き換えコードとかがbytecode tailoringとかいって 数年前から流行ってるわけだし、近年のJavaベースシステムのトリッキーな 実装の中身を知るのも役に立つよ。
522 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:18:06 ] JavaVMっすか、渋いっすねw でもアレはなんかアセンブラバリバリ弄ってるぜって感じがしないんで 俺はx86を推しとく。なんつったって一番身近だしな。 だけどなー、最近はアセンブラに関する良書がめっきり減ってな。 とりあえず次の2つは教科書としては最悪だから避けとけ。(けっして内容が悪いわけではないんだけどな・・・) www.amazon.co.jp/dp/4839912025/ www.amazon.co.jp/dp/4839917183/ JavaVMなら、俺は↓の本しか知らん。おそらく>521が挙げてるやつだ。 www.amazon.co.jp/dp/0201432943/
523 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:24:43 ] あー、うん、ごめんよ。 おとなしく「はじめての〜」読んどく。
524 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:44:24 ] >>519 アスキー はじめて読む8086 \1,602 ISBN:978-4-87148-245-5 1987/4/1 ある意味教典。 いきなり32ビットの本などで目を回すよりは基本の8086で基礎を固める。 セグメントとオフセットの関係を徹底的に刷り込む。過去に全くかじった ことがないのであれば、まず頭をバイナリ脳にする必要がある。 日経BP プログラムはなぜ動くのか 第2版 \2,520 ISBN:978-4-8222-8315-5 2007/4/5 元々は2001年の書物。 そこから重版を重ね、更に今年になって改訂となってる辺りからも この本の評価の高さが伺える。アセンブラ一辺倒という訳ではなく ハードウェア周りからCなどの高級言語との兼ね合いなども網羅した 総合的な本。先にこの本で手応えを探ってみるのもアリ。
525 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 01:40:30 ] >>524 セグメントとオフセットは過去の遺物じゃないか。今更勧められたシロモノじゃない。 ページングの概念を学習する上で逆に邪魔になるだけだろ。
526 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 02:17:32 ] ああ、386のネイティブモード以前は、仮の姿だからな。 そんなもん覚えても無意味。
527 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 06:27:46 ] リアルモードや仮想86モードで何か書く時になってから調べればおっけ。 86のセグメントなんて、大層なもんじゃない。
528 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:17:49 ] RGBA→ARGBの変換を行いたいのですが、いったいどれが一番速いのでしょうか。 struct RGBA {unsigned char a, b, g, a; }; // rrggbbaa struct ABGR {unsigned char r, g, b, a; }; // aabbggrr void conv1(RGBA &x, ABGR &y) { x.r = y.r; x.g = y.g; x.b = y.b; x.a = y.a; } void conv2(RGBA &x, ABGR &y) { uint32_t t = *(uint32_t *)&y; *(uint32_t *)&x = (y.r << 24) | (y.g << 16) | (y.b << 8) | (y.a); } void conv3(RGBA &x, ABGR &y) { uint32_t t = *(uint32_t *)&y; *(uint32_t *)&x = ((t & 0x000000ff) << 24) | ((t & 0x0000ff00) << 8) | ((t & 0x00ff0000) >> 8) | ((t & 0xff000000) >> 24); } void conv4(RGBA &x, ABGR &y) { __m64 mm0 = _mm_cvtsi32_si64(*(uint32_t *)&y); mm0 = _mm_unpacklo_pi8(mm0, _mm_setzero_si64()); mm0 = _mm_shuffle_pi16(mm0, _MM_SHUFFLE(0, 1, 2, 3)); mm0 = _mm_packs_pu16(mm0, mm0); *(uint32_t *)&x = _mm_cvtsi64_si32(mm0); }
529 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:22:41 ] 試せば?
530 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:25:33 ] >>528 このスレ的には、アセンブリ出力を見比べてみろと言うことで。 どうせなら、inlineをつけるかなにかしてループ内で実際に使うロジックを見比べてみるといい。
531 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:39:38 ] インラインアセンブリでbswapはなしですか。
532 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 20:10:51 ] pshufb
533 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 23:00:19 ] void conv5(RGBA &x, ABGR &y) { #if defined(_MSC_VER) *(uint32_t *)&x = _byteswap_ulong(*(uint32_t *)&y); #elif defined(LITTLE_ENDIAN) // 自分で定義してね *(uint32_t *)&x = ntohl(*(uint32_t *)&y); #else conv1(x, y); #endif }
534 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 23:00:59 ] このスレ的には bswap しかないんじゃね。
535 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 23:04:19 ] 533はまずbswapになる。 アセンブラを使うまでもない。
536 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 23:15:05 ] RGBAをBGRAに変換だとどうだろ。 ror と bswap がシンプルに見えるんだが。
537 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 09:42:34 ] ( ゚д゚)ウッウー ってどんなニュアンス?
538 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 10:41:56 ] A 「つか教科書忘れたぁ??!」 B 「( ゚д゚)ウッウー」
539 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 10:43:17 ] IM@Sか!
540 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 11:26:20 ] オレもアイマスネタ書こうと思ってた・・・
541 名前:デフォルトの名無しさん [2007/07/28(土) 01:33:44 ] ハイ おさらい。 pc11.2ch.net/test/read.cgi/tech/1158559031/l50 SSE実行できないCellでSSEの実測をしたという捏造の瞬間wwwww 864 名前: ・∀・)っ-○◎● [sage] 投稿日: 2007/06/17(日) 16:22:27 movd xmm0, eax movd eax, xmm0 movd xmm0, eax movd eax, xmm0 movd xmm0, eax movd eax, xmm0 movd xmm0, eax movd eax, xmm0 こんな感じで繰り返せば一応往復のレイテンシは計測できるよね で、何クロックかかるのかな? 答えてね。俺より頭いい子ならすぐわかるはず。 もっとも俺は実測結果あるけど 866 名前: デフォルトの名無しさん [sage] 投稿日: 2007/06/17(日) 16:26:12 CellでSSEって
542 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 04:27:33 ] >>538 Uh-oh! のつもりか?
543 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 07:32:33 ] うっうー、全国のアセンブラーさん、おはようございます。
544 名前:デフォルトの名無しさん [2007/07/28(土) 09:06:14 ] 団子って知識があるのかないのかわからん
545 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 09:46:57 ] >>544 範囲が狭く時に間違っているが知識はある つまり普通だな
546 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 09:49:24 ] 86の各アセンブラ命令の実行サイクル数とかってマニュアルに載ってないよね? 基本的には命令数が少なければ速いでおk?
547 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 09:53:17 ] レイテンシとスループットなら Architecture Optimization の C に載ってるけど。
548 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 09:55:22 ] なるほど、レイテンシが実行サイクル数か! 探してみます、ありがとう