« 2005年06月 | メイン | 2005年08月 »
2005年07月17日
勝海舟墓
勝海舟の墓参りに行って来ました。
勝海舟の墓は洗足池公園の中にあり、現在は大田区文化財となっています。勝海舟の墓と言いましたが、ここには正妻であるたみの墓も並んでいます。この連墓にもいわくがあり、たみは生前青山墓地に長男と一緒に埋葬されることを望んでいたそうです。くわしい話は諸所で見ていただくとして、ここでは言及しません。
また隣には勝海舟が西郷隆盛の死を悼んで立てた西郷隆盛留魂碑もあります。現在読んでいる「翔ぶが如く」は第3巻の始まり。まだ明治6年。時代は征韓論に関する廟議が行われています。
現地の写真をとってきましたが、なにぶん梅雨中の日本。曇天での撮影です。ほんと、日本のこの白い空には気分が晴れませんね。
この洗足公園と勝海舟夫妻の墓、西郷隆盛留魂碑と見てきましたが、非常に感心したことの一つに掃除が行き届いていることがあげられます。こういったところに現地のかたがたの心配りが現れているような気分になりました。
話は跳んで洗足池駅の隣にあうラーメン屋さんで昼食をとったんですが、普通のラーメンが一杯500円。豚骨ベースのラーメンで非常においしかったです。500円でこの味は久しぶりでした。近所にあったら通ってると思います(笑)
2005年07月16日
MMX (3) - register -
最初に書くべきですが、ここで MMX としている内容には SSE, SSE2 の内容も含められています(調べて気がつきました)。
ですが 2005 年になって書くような感じですので既に Pentium4 全盛、celeron にすら SSE2 が入ってます。web をまわっていると MMX, SSE, SSE2 に関して説明しているサイトがあるのですが、レジスタの大きさなども統一された形で書かれたものがなかったのでまとめているような感じです。
MMX レジスタ
63 | 0 |
64bit | mm7 | |||
---|---|---|---|---|
64bit | mm6 | |||
64bit | mm5 | |||
64bit | mm4 | |||
64bit | mm3 | |||
64bit | mm2 | |||
64bit | mm1 | |||
64bit | mm0 |
SSE レジスタ
127 | 0 |
128bit | xmm7 |
---|---|
128bit | xmm6 |
128bit | xmm5 |
128bit | xmm4 |
128bit | xmm3 |
128bit | xmm2 |
128bit | xmm1 |
128bit | xmm0 |
特に断ってありませんでしたが、長い方が 128bit の xmm レジスタ(または128bitメモリ)、短いほうが 64bit の mm レジスタ(または64bitメモリ)を表しています。
MMX (2) - Shuffle -
Shuffle に関して。これはデータの配置替えのような処理です。
Shuffle Packed Words
pshufw mm0,mm1,imm8 | ||||||||
---|---|---|---|---|---|---|---|---|
* | * | * | * | mm0 | ||||
W3 | W2 | W1 | W0 | mm1 | ||||
↓Wj = shuffle( Wi ) [例えば、imm8=0x1b (0,1,2,3) の場合] | ||||||||
W0 | W1 | W2 | W3 | mm0 |
Shuffle Packed Doublewords
pshufd xmm0,xmm1,imm8 | ||||||||
---|---|---|---|---|---|---|---|---|
* | * | * | * | xmm0 | ||||
D3 | D2 | D1 | D0 | xmm1 | ||||
↓Dj = shuffle( Di ) [例えば、imm8=0x1b (0,1,2,3) の場合] | ||||||||
D0 | D1 | D2 | D3 | xmm0 |
Shuffle Packed High Words
pshufhw xmm0,xmm1,imm8 | ||||||||
---|---|---|---|---|---|---|---|---|
* | * | * | * | w3 | w2 | w1 | w0 | xmm0 |
W7 | W6 | W5 | W4 | * | * | * | * | xmm1 |
↓Wj = shuffle( Wi ) [例えば、imm8=0x1b (0,1,2,3) の場合] | ||||||||
W4 | W5 | W6 | W7 | w3 | w2 | w1 | w0 | xmm0 |
Shuffle Packed Low Words
pshuflw xmm0,xmm1,imm8 | ||||||||
---|---|---|---|---|---|---|---|---|
w7 | w6 | w5 | w4 | * | * | * | * | xmm0 |
* | * | * | * | W3 | W2 | W1 | W0 | xmm1 |
↓Wj = shuffle( Wi ) [例えば、imm8=0x1b (0,1,2,3) の場合] | ||||||||
w7 | w6 | w5 | w4 | W0 | W1 | W2 | W3 | xmm0 |
2005年07月14日
MMX
Unpack/Pack に関して。でもこれ、対照的でないので合わせて書いていいものかどうか。。。
Unpack Low Data
punpcklbw mm0,mm1 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
* | * | * | * | b3 | b2 | b1 | b0 | mm0 | ||||||||
* | * | * | * | B3 | B2 | B1 | B0 | mm1 | ||||||||
↓ | ||||||||||||||||
B3 | b3 | B2 | b2 | B1 | b1 | B0 | b0 | mm0 |
punpcklbw xmm0,xmm1 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
* | * | * | * | * | * | * | * | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | xmm0 |
* | * | * | * | * | * | * | * | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 | xmm1 |
↓ | ||||||||||||||||
B7 | b7 | B6 | b6 | B5 | b5 | B4 | b4 | B3 | b3 | B2 | b2 | B1 | b1 | B0 | b0 | xmm0 |
punpcklwd mm0,mm1 | ||||||||
---|---|---|---|---|---|---|---|---|
* | * | w1 | w0 | mm0 | ||||
* | * | W1 | W0 | mm1 | ||||
↓ | ||||||||
W1 | w1 | W0 | w0 | mm0 |
punpcklwd xmm0,xmm1 | ||||||||
---|---|---|---|---|---|---|---|---|
* | * | * | * | w3 | w2 | w1 | w0 | xmm0 |
* | * | * | * | W3 | W2 | W1 | W0 | xmm1 |
↓ | ||||||||
W3 | w3 | W2 | w2 | W1 | w1 | W0 | w0 | xmm0 |
punpckldq mm0,mm1 | ||||
---|---|---|---|---|
* | d0 | mm0 | ||
* | D0 | mm1 | ||
↓ | ||||
D0 | d0 | mm0 |
punpckldq xmm0,xmm1 | ||||
---|---|---|---|---|
* | * | d1 | d0 | xmm0 |
* | * | D1 | D0 | xmm1 |
↓ | ||||
D1 | d1 | D0 | d0 | xmm0 |
punpcklqdq xmm0,xmm1 | ||
---|---|---|
* | q0 | xmm0 |
* | Q0 | xmm1 |
↓ | ||
Q0 | q0 | xmm0 |
Unpack High Data
punpckhbw mm0,mm1 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
b7 | b6 | b5 | b4 | * | * | * | * | mm0 | ||||||||
B7 | B6 | B5 | B4 | * | * | * | * | mm1 | ||||||||
↓ | ||||||||||||||||
B7 | b7 | B6 | b6 | B5 | b5 | B4 | b4 | mm0 |
punpckhbw xmm0,xmm1 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
b15 | b14 | b13 | b12 | b11 | b10 | b9 | b8 | * | * | * | * | * | * | * | * | xmm0 |
B15 | B14 | B13 | B12 | B11 | B10 | B9 | B8 | * | * | * | * | * | * | * | * | xmm1 |
↓ | ||||||||||||||||
B15 | b15 | B14 | b14 | B13 | b13 | B12 | b12 | B11 | b11 | B10 | b10 | B9 | b9 | B8 | b8 | xmm0 |
punpckhwd mm0,mm1 | ||||||||
---|---|---|---|---|---|---|---|---|
w3 | w2 | * | * | mm0 | ||||
W3 | W2 | * | * | mm1 | ||||
↓ | ||||||||
W3 | w3 | W2 | w2 | mm0 |
punpckhwd xmm0,xmm1 | ||||||||
---|---|---|---|---|---|---|---|---|
w7 | w6 | w5 | w4 | * | * | * | * | xmm0 |
W7 | W6 | W5 | W4 | * | * | * | * | xmm1 |
↓ | ||||||||
W7 | w7 | W6 | w6 | W5 | w5 | W4 | w4 | xmm0 |
punpckhdq mm0,mm1 | ||||
---|---|---|---|---|
d1 | * | mm0 | ||
D1 | * | mm1 | ||
↓ | ||||
D1 | d1 | mm0 |
punpckhdq xmm0,xmm1 | ||||
---|---|---|---|---|
d3 | d2 | * | * | xmm0 |
D3 | D2 | * | * | xmm1 |
↓ | ||||
D3 | d3 | D2 | d2 | xmm0 |
punpckhqdq xmm0,xmm1 | ||
---|---|---|
q1 | * | xmm0 |
Q1 | * | xmm1 |
↓ | ||
Q1 | q1 | xmm0 |
Pack with Signed Saturation
packsswb mm0,mm1 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
w3 | w2 | w1 | w0 | mm0 | ||||||||||||
W3 | W2 | W1 | W0 | mm1 | ||||||||||||
↓bj = SaturateSignedWordToSignedByte( wi ) | ||||||||||||||||
B7' | B6' | B5' | B4' | b3' | b2' | b1' | b0' | mm0 |
packsswb xmm0,xmm1 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
w7 | w6 | w5 | w4 | w3 | w2 | w1 | w0 | xmm0 | ||||||||
W7 | W6 | W5 | W4 | W3 | W2 | W1 | W0 | xmm1 | ||||||||
↓bj = SaturateSignedWordToSignedByte( wi ) | ||||||||||||||||
B7' | B6' | B5' | B4' | B3' | B2' | B1' | B0' | b7' | b6' | b5' | b4' | b3' | b2' | b1' | b0' | xmm0 |
packssdw mm0,mm1 | |||||||||
---|---|---|---|---|---|---|---|---|---|
d1 | d0 | mm0 | |||||||
D1 | D0 | mm1 | |||||||
↓wj = SaturateSignedDoublewordToSignedWord( di ) | |||||||||
W1' | W0' | w1' | w0' | mm0 |
packssdw xmm0,xmm1 | |||||||||
---|---|---|---|---|---|---|---|---|---|
d3 | d2 | d1 | d0 | xmm0 | |||||
D3 | D2 | D1 | D0 | xmm1 | |||||
↓wj = SaturateSignedDoublewordToSignedWord( di ) | |||||||||
W3' | W2' | W1' | W0' | w3' | w2' | w1' | w0' | xmm0 |
Pack with Unsigned Saturation
packuswb mm0,mm1 | |||||||||
---|---|---|---|---|---|---|---|---|---|
packuswb xmm0,xmm1 | |||||||||
これらは符合無しになるだけで飽和付き符合有りパック演算と同じですが、命令には packuswb しかありません。
|
2005年07月12日
2005.07.12
日テレ、番組をネット配信 今秋から、有料で
http://www.asahi.com/culture/update/0712/010.html
権利関係の問題がまだ片付いていないようです。以前にもテレビアニメの声優が、ビデオ販売に伴う「声の使用料」が支払われないのは契約違反だとして裁判をしたケースがありました。これは声優側の勝訴だったようです。
以前 2ch のななしさんの「HDDレコーダによるP2P」という発言を見たことがありますが、この環境が実現されればいいなぁと思います。SoftEther + RD Style で実現できそうな気もしますが:-)
KDDIも「おサイフケータイ」──au版モバイルSuica正式発表
http://www.itmedia.co.jp/mobile/articles/0507/11/news034.html
au の EZ FeliCa 対応機種が Suica にも対応するそうです。しかしあまりカッコよくないな・・・。
現在 talby を使っているため、なかなか機種変更しようという気が起きません。
2005年07月11日
Intel
MMX, SSE, SSE2 などを調べていたらどんどんディープな方向に進んでいき、たどり着いたところは Intel の日本語技術資料でした。
日本語技術資料ダウンロード
http://www.intel.co.jp/jp/developer/download/
膨大な数のドキュメントがあり、とりあえずため息が出ます。当面必要そうなのをピックアップすると、
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル、上巻: 基本アーキテクチャ [日本語: PDF 形式 5,411KB] [ia32_arh_dev_man_vol1_online_i.pdf]
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル、中巻 A: 命令セット・リファレンス A-M [日本語: PDF 形式 5,251KB] [ia32_arh_dev_man_vol2a_i.pdf]
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル、中巻 B: 命令セット・リファレンス N-Z [日本語: PDF 形式 4,215KB] [ia32_arh_dev_man_vol2b_i.pdf]
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル、下巻: システム・プログラミング・ガイド [日本語: PDF 形式 9,669KB] [ia32_arh_dev_man_vol3_i.pdf]
- AP-589 ストリーミング SIMD 拡張命令のソフトウェア規則 [日本語: PDF 形式 61KB] [swconv_j.pdf]
- AP-900 プロセッサおよびオペレーティング・システムのストリーミング SIMD 拡張命令のサポートの判定 [日本語: PDF 形式 35KB] [cpuosld_j.doc.pdf]
- AP-943 インテル® アーキテクチャ (IA) 浮動小数点ユニット (FPU)、ストリーミング SIMD 拡張命令 (SSE)、ストリーミング SIMD 拡張命令2 (SSE2) を使用した浮動小数点算術演算 [日本語: PDF 形式 386KB] [w_fp_precision_j.pdf]
- C++ SIMD 命令 クラス・ライブラリ: リファレンス・マニュアル [日本語: PDF 形式 612KB] [fvecfcs_j.pdf]
でしょうか。この C++ SIMD 命令クラス・スライブラリは Processor Pack 5.0 をインストールすれば使えるライブラリのようです。
以下、膨大な資料・・・。
IA-32 アーキテクチャ
- インテル® エクステンデッド・メモリ 64 テクノロジ・ソフトウェア・デベロッパーズ・ガイド、第1巻 [日本語: PDF 形式 3,637KB]
- インテル® エクステンデッド・メモリ 64 テクノロジ・ソフトウェア・デベロッパーズ・ガイド、第2巻 [日本語: PDF 形式 2,980KB]
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル、上巻: 基本アーキテクチャ [日本語: PDF 形式 5,411KB]
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル、中巻 A: 命令セット・リファレンス A-M [日本語: PDF 形式 5,251KB]
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル、中巻 B: 命令セット・リファレンス N-Z [日本語: PDF 形式 4,215KB]
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル、下巻: システム・プログラミング・ガイド [日本語: PDF 形式 9,669KB]
- インテル® Xeon™ プロセッサ 製品概要 [日本語: PDF 形式 349KB]
- 購入ガイド: 533MHz システムバス搭載 インテル® Xeon™ プロセッサ [日本語: PDF 形式 423KB]
- インテル® Pentium® 4 プロセッサおよびインテル® Xeon™ プロセッサ最適化リファレンス・マニュアル [日本語: PDF 形式 3,852KB]
- ハイパー・スレッディング・テクノロジのアーキテクチャとマイクロアーキテクチャ [日本語: PDF 形式 98KB]
- ハイパー・スレッディング・テクノロジのプリシリコン検証 [日本語: PDF 形式 53KB]
- スペキュレーティブ・プリコンピュテーション: マルチスレッディング・リソースの活用によるレイテンシの削減 [日本語: PDF 形式 118KB]
- ハイパー・スレッディング・テクノロジ対応インテル® Pentium® 4 プロセッサ [日本語: PDF 形式 371KB]
- IA-32 命令のレイテンシとスループット [日本語: PDF 形式 159KB]
- Application Communications Enhancements for Mobility ホワイト・ペーパー [日本語: PDF 形式 1,325KB]
- Application Power Management for Mobility ホワイト・ペーパー [日本語: PDF 形式 670KB]
- インテル® アーキテクチャ最適化リファレンス・マニュアル [日本語: PDF 形式 2,934KB]
- Pentium® III プロセッサのパフォーマンスを最大限に活かす 3D ソフトウェア・スタック・アーキテクチャ [日本語: PDF 形式 85KB]
- Pentium® III プロセッサの実装条件 [日本語: PDF 形式 126KB]
- Pentium® III プロセッサのシリアル番号機能とその活用 [日本語: PDF 形式 44KB]
- インターネット・ストリーミング SIMD 拡張命令 [日本語: PDF 形式 74KB]
- インターネット・ストリーミング SIMD 拡張命令を考慮したアプリケーション・チューニング [日本語: PDF 形式 175KB]
- インテル・アーキテクチャ最適化マニュアル [日本語: PDF 形式 820KB]
- AP-485 インテル® プロセッサの識別と CPUID 命令 [日本語: PDF 形式 688KB]
- AP-589 ストリーミング SIMD 拡張命令のソフトウェア規則 [日本語: PDF 形式 61KB]
- AP-900 プロセッサおよびオペレーティング・システムのストリーミング SIMD 拡張命令のサポートの判定 [日本語: PDF 形式 35KB]
- AP-935 ストリーミング SIMD 拡張命令2 (SSE2) を使用した SAXPY/DAXPY [日本語: PDF 形式 100KB]
- AP-936 ストリーミング SIMD 拡張命令2 (SSE2) を使用した遺伝的 2進アルゴリズムの一点交叉演算 [日本語: PDF 形式 114KB]
- AP-937 ストリーミング SIMD 拡張命令2 (SSE2) を使用した、倍精度浮動小数点ベクトルの最大/最小要素とそのインデックスの検出 [日本語: PDF 形式 147KB]
- AP-939 ストリーミング SIMD 拡張命令2 (SSE2) を使用した 3D トランスフォーメーション [日本語: PDF 形式 162KB]
- AP-940 ストリーミング SIMD 拡張命令2 (SSE2) を使用したブロック・マッチング、動体予測アルゴリズム [日本語: PDF 形式 120KB]
- AP-941 ストリーミング SIMD 拡張命令2 (SSE2) を使用した大数の乗算の実行 [日本語: PDF 形式 126KB]
- AP-942 ストリーミング SIMD 拡張命令2 (SSE2) を使用したビデオ・デコード/エンコードのためのモーション補正 [日本語: PDF 形式 386KB]
- AP-943 インテル® アーキテクチャ (IA) 浮動小数点ユニット (FPU)、ストリーミング SIMD 拡張命令 (SSE)、ストリーミング SIMD 拡張命令2 (SSE2) を使用した浮動小数点算術演算 [日本語: PDF 形式 386KB]
- AP-944 Pentium® III プロセッサと Pentium 4 プロセッサにおける NURBS (non-uniform rational B-spline) 曲面での高速化のパフォーマンス比較 [日本語: PDF 形式 311KB]
- AP-945 ストリーミング SIMD 拡張命令2 (SSE2) を使用した逆離散コサイン変換 [日本語: PDF 形式 274KB]
- AP-946 ストリーミング SIMD 拡張命令2 (SSE2) を使用した Viterbi デコーディングでの隠れマルコフ・モデルの評価 [日本語: PDF 形式 329KB]
- AP-949 インテル® Pentium® 4 プロセッサおよびインテル® Xeon™ プロセッサにおけるスピン・ループの使用 [日本語: PDF 形式 103KB]
ソフトウェア開発製品
- インテル® アーキテクチャ対応 インテル® インテグレーテッド・パフォーマンス・プリミティブ (IPP): リファレンス・マニュアル、第1巻: 信号処理 [日本語: PDF 形式 6,296KB]
- インテル® アーキテクチャ対応 インテル® インテグレーテッド・パフォーマンス・プリミティブ (IPP) : リファレンス・マニュアル、第2巻: 画像および動画処理 [日本語: PDF 形式 7,865KB]
- インテル® アーキテクチャ対応 インテル® インテグレーテッド・パフォーマンス・プリミティブ (IPP) : リファレンス・マニュアル、第3巻: 小行列 [日本語: PDF 形式 13,762KB]
- インテル® ソフトウェア開発製品 製品カタログ [日本語: PDF 形式 3,141KB]
- マルチスレッド・アプリケーションの開発 [日本語: PDF 形式 2,429KB]
- インテル® Pentium® 4 プロセッサ向けストリーミング SIMD 拡張命令 2 (SSE2) の紹介 [日本語: ZIP 形式 7,114KB]
- インテル® 数値演算ライブラリ (MKL) リファレンス・マニュアル [日本語: PDF 形式 6,034KB]
- インテル® C/C++ コンパイラ V4.0 (ストリーミング SIMD 拡張命令対応): ユーザーズ・ガイド [日本語: PDF 形式 1,417KB]
- C++ SIMD 命令 クラス・ライブラリ: リファレンス・マニュアル [日本語: PDF 形式 612KB]
- Itanium® プロセッサ: ソフトウェア規則およびランタイム・アーキテクチャ・ガイド [日本語: PDF 形式 995KB]
- インテル® Itanium® アーキテクチャ・アセンブラ・ユーザ・ガイド [日本語: PDF 形式 667KB]
- VTune™ パフォーマンス拡張環境の利用による、Pentium® III プロセッサのインターネット・ストリーミング SIMD 拡張命令を活用するためのプログラミング手法 [日本語: PDF 形式 898KB]