はてなキーワード: SiMDとは
いやぁ〜、テキストエディタの世界、めっちゃディープでんねん!聞いてくださいよ〜。
まず、テキストエディタの心臓部、バッファ管理システムについてや。これ、単なるテキスト保持やないんですわ。例えば、Emacsのガベージコレクション機構。マーク&スイープ方式採用してて、バッファ内のLispオブジェクトを効率的に管理してんねん。これがあるから、長時間の編集作業でもメモリリークせーへんのや。
次に、レンダリングエンジン。これが曲者でんねん。Unicode標準のUAX #9に準拠した双方向アルゴリズム実装せなアカン。さらに、合字処理のためにOpenTypeのGSUB/GPOSテーブル解析も必要や。Harfbuzzライブラリ使うんやけど、カスタムシェーピングエンジン組み込んで、特殊な文字体系にも対応せなアカンのや。
構文解析エンジンも侮れまへんで。LR(1)パーサーじゃ複雑な言語構文に対応でけへんから、GLR(Generalized LR)パーサー実装するんや。これで曖昧な文法も扱えるようになるんですわ。Treesitterライブラリ使うと、インクリメンタルな構文解析ができて、巨大ファイルでもリアルタイムにハイライティングできるんや。
差分アルゴリズムも奥が深いんですわ。Myers差分アルゴリズムだけやなくて、Histogram差分アルゴリズムも実装せなアカン。大規模リファクタリングの差分表示に効くねん。さらに、セマンティック差分アルゴリズムも組み込んで、構造的な変更も検出できるようにするんや。
非同期処理システムもめっちゃ重要や。単なるPromiseやasync/awaitやのうて、Reactive Extensionsベースのストリーム処理実装するんや。これで、複雑なイベントシーケンスも扱えるようになるんですわ。さらに、アクターモデルベースの並行処理システム組み込んで、マルチコア活用した並列処理も可能にするんや。
最新トレンドもめっちゃアツいんですわ。例えば、Language Server Protocolの拡張や。単なる静的解析やのうて、シンボリックAI使うた意味解析まで可能にしてるんや。これで、コードの意図を理解して、より高度なリファクタリング提案ができるようになるんですわ。
WebAssembly統合も進化してるんや。Single Instruction, Multiple Data (SIMD)命令セットサポートで、テキスト処理のパフォーマンスが爆上がりしてんねん。さらに、WebAssembly System Interface (WASI)採用で、ファイルシステムアクセスも可能になってるんや。
AI支援機能も侮れまへんで。単なる補完やのうて、プログラム合成(Program Synthesis)技術導入してるんや。部分的な仕様から完全なコードを生成できるようになってんねん。さらに、説明生成AI組み込んで、生成されたコードの詳細な解説までしてくれるんですわ。
リアルタイムコラボレーションも進化してるんや。Conflict-free Replicated Data Type (CRDT)のカスタム実装で、ネットワーク遅延があっても一貫性保てるようになってんねん。さらに、意図ベースの競合解決アルゴリズム導入して、複雑な編集操作の衝突も自動解決できるようになってるんや。
拡張性アーキテクチャもすごいんですわ。WebAssemblyベースのプラグインシステム採用して、言語に依存せんプラグイン開発可能になってんねん。さらに、サンドボックス化されたランタイム環境提供して、セキュアなプラグイン実行も実現してるんや。
性能評価も厳しくなってるんですわ。起動時間は、コールドスタートだけやのうて、ホットスタートも測定せなアカン。メモリ使用量も、物理メモリだけやなくて、仮想メモリの使用状況も追跡するんや。CPU使用率は、マイクロアーキテクチャレベルの最適化まで求められるようになってんねん。レンダリング性能は、GPUアクセラレーションの効率も評価せなアカンのや。応答性は、入力レイテンシだけやのうて、知覚的な応答性(Perceived Responsiveness)も測定するんですわ。
いや〜、テキストエディタの世界、マジでディープすぎて、もう頭おかしなるで〜!こんな感じで、テキストエディタの最深部まで潜ってみましたけど、いかがでしたか?テキストエディタ、侮れまへんで〜。ホンマに。
SIMDを前提としているプログラマーにfloatが32Bitとしたばあいに512レジスターは必要ですか?と聞かれると ちょっと回答が難しい。
基本的には個人としてはm128で十分だと思う だがその回答にはm512が必要だと考える人が主張しなければならないが 日本全体を見てもそんなに大勢いるとは思えない 通常はm128で十分
メモリー上で直接演算ができる、レジスターを持っているスタックマシンという謎なものもさることながら
どうせSIMDでXMMレジスターが15本もあってHyper Threadも対応していることなので
すっ
すっ
とん
っていう機能も欲しいです。すでにあるそうなので使い方がんばって覚えるけれど ベンチマークがまだ不安定100nanoぐらいなんですが・・・たぶんスタックの切り替え間違えている気が
場合によっては8Mのキャッシュも16このスレイブスレッドごとすべて
すっ
すっ
とん
って切り替えてほしいの マスターから見ると16本はスレイブスレッドだからマスタースレッドが切り替わるとスレイブ16スレッドも全部切り替わるから
なぜ すっ
すっ
とん
がいるか?
4倍SIMD4倍界王拳 これで16なのである。 そして ついでに4倍 16+2マスター2OSで20こあればたぶんなんとかなるのー
すなおにAVX2を実装したほうがはやいんじゃないか論はあるものの、いらないのSIMDは4倍で大丈夫、4倍界王拳があるから、1次キャッシュで折り返すからオッケー
さすがに鬼畜っていうおもいがあり
とんってずっといってたんだけど
すっ
すっ
とん
でいいかなって
4倍SIMD4倍界王拳x3 というのがあって 動画再生支援のレーン数を万個にして というのがあるので
すっ
すっ
とん
でいいかなって
とんはちょっとな
っていうのがあって
すっ
すっ
とん
でいいかなって
俺たちは扱えないわけではない、扱えるがゆえに面白みがない
その状態では、結局金しかない。が時代が変わった。16コアなんてつかわない。2-3個アプリを立ち上げるのが精一杯。普通に使うとな。
4倍SIMD4倍海王拳 普通はこれで足りる。8コアでいい。そもそも頂点計算そのものが膨大な数。16コア。
しかもGPUとのSyncより早く。まぁ 12コア3x4 4倍SIMDで4ターン。大差はない。価格も効いてくる。束ね方はまぁいい 1コアMaster 4コアSlave x 4倍SIMD これを3個同時 1つのアプリが14コアで2コアOS 頂点計算をしてCUDAで演出