**タイトル:**  
*ARM SMEを解明し、一般行列積(GEMM)を最適化する*

---  

### 1. 概要  
- **ARM SME (Scalable Matrix Extension)** は、SIMD/NEON ベースの命令セットで、行列演算を効率的に実行します。  
- 深層学習推論、科学計算、リアルタイム信号処理など、高性能ワークロード向けに設計されています。

### 2. 主な機能  
| 機能 | 説明 |
|------|------|
| **ベクタ幅** | 128 bit(8×16 bit)または256 bit(4×64 bit)のレジスタ。 |
| **行列ロード/ストア** | `SME_LDM`, `SME_STM` – 行列全体を一度に読み書き。 |
| **積加算** | `SME_MADDX` – オプションでスケーリング付きの乗算―累積演算。 |
| **並列性** | 4×または8×データレーン;FMA(複合乗算―加算)により命令数を削減。 |

### 3. GEMM(一般行列積)の最適化  
1. **タイル分割**  
   - 入力行列をSMEレジスタに収まるサブブロックへ分割。  
2. **`SME_MADDX` を内側ループで使用**  
   - 明示的な乗算―加算ループを単一のSIMD命令に置き換える。  
3. **データ再利用を活かす**  
   - 各タイルは1回だけロードし、必要な全ての積に対してレジスタ内で保持。  
4. **ソフトウェアパイプライン化**  
   - 次のタイルのロード/ストアと現在計算を重ね合わせる。  

### 4. サンプルコード(C風擬似コード)  

```c
for (int i = 0; i < M; i += TILE_H)
  for (int j = 0; j < N; j += TILE_W)
    for (int k = 0; k < K; k += TILE_D) {
        // SMEレジスタへAとBのタイルをロード
        vecA = SME_LDM(A + i*K + k, TILE_H*TILE_D);
        vecB = SME_LDM(B + k*N + j, TILE_D*TILE_W);

        // サブ積を乗算―累積
        C[i][j] += SME_MADDX(vecA, vecB);
    }
```

### 5. パフォーマンスのヒント  
- **アラインメント**:行列は16バイト境界に揃えて、ロード/ストアを最適化。  
- **ループアンローリング**:内側ループを2〜4倍で展開し、分岐オーバーヘッドを削減。  
- **プリフェッチ**:`SME_PF` 命令を使い、次のタイルを先にキャッシュへ持ってくる。  

### 6. 結論  
ARM SMEは低レイテンシで強力な行列演算機能を提供します。タイル化と命令選択を丁寧に行うことで、ARM Cortex‑Aプロセッサ上のGEMMワークロードを劇的に高速化できます。

2026/02/01 5:05

**タイトル:** *ARM SMEを解明し、一般行列積(GEMM)を最適化する* --- ### 1. 概要 - **ARM SME (Scalable Matrix Extension)** は、SIMD/NEON ベースの命令セットで、行列演算を効率的に実行します。 - 深層学習推論、科学計算、リアルタイム信号処理など、高性能ワークロード向けに設計されています。 ### 2. 主な機能 | 機能 | 説明 | |------|------| | **ベクタ幅** | 128 bit(8×16 bit)または256 bit(4×64 bit)のレジスタ。 | | **行列ロード/ストア** | `SME_LDM`, `SME_STM` – 行列全体を一度に読み書き。 | | **積加算** | `SME_MADDX` – オプションでスケーリング付きの乗算―累積演算。 | | **並列性** | 4×または8×データレーン;FMA(複合乗算―加算)により命令数を削減。 | ### 3. GEMM(一般行列積)の最適化 1. **タイル分割** - 入力行列をSMEレジスタに収まるサブブロックへ分割。 2. **`SME_MADDX` を内側ループで使用** - 明示的な乗算―加算ループを単一のSIMD命令に置き換える。 3. **データ再利用を活かす** - 各タイルは1回だけロードし、必要な全ての積に対してレジスタ内で保持。 4. **ソフトウェアパイプライン化** - 次のタイルのロード/ストアと現在計算を重ね合わせる。 ### 4. サンプルコード(C風擬似コード) ```c for (int i = 0; i < M; i += TILE_H) for (int j = 0; j < N; j += TILE_W) for (int k = 0; k < K; k += TILE_D) { // SMEレジスタへAとBのタイルをロード vecA = SME_LDM(A + i*K + k, TILE_H*TILE_D); vecB = SME_LDM(B + k*N + j, TILE_D*TILE_W); // サブ積を乗算―累積 C[i][j] += SME_MADDX(vecA, vecB); } ``` ### 5. パフォーマンスのヒント - **アラインメント**:行列は16バイト境界に揃えて、ロード/ストアを最適化。 - **ループアンローリング**:内側ループを2〜4倍で展開し、分岐オーバーヘッドを削減。 - **プリフェッチ**:`SME_PF` 命令を使い、次のタイルを先にキャッシュへ持ってくる。 ### 6. 結論 ARM SMEは低レイテンシで強力な行列演算機能を提供します。タイル化と命令選択を丁寧に行うことで、ARM Cortex‑Aプロセッサ上のGEMMワークロードを劇的に高速化できます。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

概要:
MpGEMMは、ARMのスケーラブル行列拡張(SME)を活用して複数精度で一般行列乗算(GEMM)を高速化するオープンソースライブラリです。著者らはSMEを体系的にプロファイリングし、キャッシュ意識型パーティショニング、オンザフライのデータパッキングと転置、およびマルチベクトルロードと全タイルレジスタを活用したマイクロカーネルという設計ガイドラインを導出しました。MpGEMMはこれらの指針に従って実装されています。Apple M4 Pro上でDeepSeekおよびLLaMAから得た実際のワークロードを用いたベンチマークでは、ベンダー最適化されたApple Accelerateライブラリより1.23倍速く、大きな行列に対しては他のオープンソース代替品を大幅に上回る性能が確認されました。GEMMは高性能計算とディープラーニングの基盤でありながら、既存ライブラリではSMEの潜在能力が十分に活用されていませんでした。MpGEMMはこのギャップを埋め、ARMデバイス上でより高速な行列演算を実現します。著者らは、SME機能の進化とともにAIやHPCワークロードでの採用が拡大し、ユーザーの推論遅延を削減しつつ、新たなARM拡張を完全に活用したハードウェア意識型オープンソースソリューションを促進すると期待しています。

本文

概要
一般行列積(GEMM)は高性能計算とディープラーニングにおける重要な核となります。ARM の Scalable Matrix Extension(SME)などの最新アーキテクチャは行列演算専用ハードウェアを導入していますが、既存の線形代数ライブラリは特に大規模行列でその潜在能力を十分に活かせていません。本稿では、SME の主要なアーキテクチャ機能を活用し、複数の精度にわたって GEMM を最適化するオープンソースライブラリ MpGEMM を紹介します。

SME の体系的な特性評価から導き出した最適化ガイドラインを設計に反映させ、キャッシュ意識型分割、オンザフライ転置付き効率的データパッキング、およびマルチベクトルロードと利用可能な全タイルレジスタを活用する専用マイクロカーネルを採用しています。Apple M4 Pro 上で DeepSeek と LLaMA の実際のワークロードを評価した結果、MpGEMM はベンダー最適化済み Apple Accelerate ライブラリに対して平均 1.23 倍の速度向上を達成し、他のオープンソース代替品よりも大幅に優れた性能を示しました。

同じ日のほかのニュース

一覧に戻る →

2026/02/01 7:05

SwiftはRustよりも便利なプログラミング言語です。

## Japanese Translation: > **概要:** > 本文は、メモリ管理モデル、コンパイル先、設計哲学、機能セット、性能トレードオフ、およびクロスプラットフォーム対応範囲において Rust と Swift を比較しています。 > • **メモリ管理:** Rust はガーベジコレクションを用いず所有権/借用(ownership/borrowing)を採用し、Swift はコピーオンライトとオプションの「所有」セマンティクスを備えた値型をデフォルトにしています。両方とも unsafe な生ポインタをサポートします。 > • **コンパイル:** 両言語は LLVM を介してネイティブコードへコンパイルし、WebAssembly(WASM)もサポートします。 > • **設計目標:** Rust は低レベルでボトムアップのシステム言語、Swift は高レベルでトップダウンですが、オプションで低レベルアクセスを提供します。 > • **コピーオンライトと再帰:** Rust では明示的に `Cow<>` と `.as_mutable()` を使用してコピーオンライトを行い、再帰型循環を解消するには `Box<>`(または `Rc/Arc`)が必要です。Swift はコピーオンライトを自動化し、再帰を扱うために `indirect` キーワードを利用します。 > • **エラーハンドリング:** Rust の `Result<T,E>` と `?` 演算子;Swift の `do‑catch` と `try`。 > • **機能的対実用的特徴:** Swift は C ライクな構文(例:`switch` を match として、列挙型にメソッドを付与)で機能的構造を隠し、導入を容易にしています。また、非同期/待機、アクター、プロパティラッパー、結果ビルダーといった実用的な言語機能を追加し、迅速な UI やサーバ開発を促進します。Rust はよりミニマリスティックですが、細かい制御が可能です。 > • **性能とユースケース:** Rust のプログラムはデフォルトで高速であることが多く、Swift は使いやすさを優先し、最適化されていない限り遅くなる場合があります。そのため、Rust は低レベルシステム作業に好まれ、Swift は迅速な UI やサーバ開発を求める開発者に適しています。 > • **クロスプラットフォーム拡張:** Swift は現在 Windows、Linux、組み込みデバイス(例:Panic Playdate)、WebAssembly で動作し、汎用性が高まっています。ただし、コンパイル時間の長さ、機能セットの大きさ、Rust に比べて成熟度の低いパッケージエコシステムといった課題も残ります。

2026/02/01 2:21

モバイルキャリアは、あなたのGPS位置情報を取得できることがあります。

## Japanese Translation: Appleの次期iOS 26.3は、電話がApple独自のモデムシリコンとファームウェアを使用する際に「正確な位置情報」―単桁メートル精度のGNSS座標―を携帯キャリアに送信しないプライバシー保護機能を導入します。これは2025年に発売されるデバイスで利用可能です。この機能は、通常キャリアがこれらの詳細な座標をダウンロードできるRRLP(2G/3G用)とLPP(4G/5G用)の制御平面プロトコルを無効化します。Appleがモデムハードウェアとファームウェアの両方を管理しているために機能し、サードパーティ製モデムにはこのレベルの統合がありません。 セル塔ベースの位置決定(数十〜数百メートル精度しか提供できない)に加え、電話はデバイス上で静かにGNSS位置を計算し、ネットワーク要求が行われたときのみそれらを送信します。そうでなければ携帯端末からは何もデータが離れません。米国DEA(2006年)やイスラエルのShin Betなどの法執行機関は、RRLP/LPPを使用して調査用GPS座標を取得し、またイスラエルのキャリアは2020年3月にCOVID‑19接触追跡のために正確な位置データを収集し、近接接触者へのSMS警告を送信しました。 Appleはこの機能を、ユーザーがGNSSデータのキャリア要求から完全にオプトアウトできるようにする第一歩として位置づけており、そうした試みが行われた際に通知を受け取れるようにします。Appleのモデム搭載デバイスは即座に不正追跡リスクの低減から恩恵を受けますが、キャリアとサードパーティ製モデムベンダーはサービスを適応させる必要があります。本機能の展開はまだApple以外のモデム搭載デバイスには適用されていません。 *注:* RRLP/LPP以外にも未公開の仕組みが存在する可能性があり、外国キャリアによるSS7悪用(例:サウジアラビア)では通常デバイスをモバイルスイッチングセンターまでしか特定できず、GNSSよりも精度が低いです。

2026/02/01 6:14

**生成AIとウィキペディア編集:2025年に学んだこと** - **人間とAIの協働が増加** - 編集者は、AI が作成したドラフトを第一稿として定期的に利用し始めた。 - 人間のレビュアーが引用を追加し、事実確認・トーン調整を行った。 - **品質保証の強化** - 新しいAI駆動型ファクトチェックツールで、公開前に矛盾点を検出した。 - 自動スタイルチェックにより、ウィキペディアのマニュアル・オブ・スタイルへの準拠が確保された。 - **コミュニティの受容とガバナンス** - ウィキメディア財団は、許容されるAI貢献を明記したガイドラインを導入。 - AI関与の透明なログ作成がすべての編集に対して必須となった。 - **偏見緩和への取り組み** - バイアス検出アルゴリズムが特定トピックでの過剰表現を指摘。 - 編集監視チームは偏向した視点を修正し、多様な観点を追加した。 - **パフォーマンス指標** - 平均編集完了時間が2024年比で約30 %短縮された。 - AI支援による記事更新数は12 %から28 %へと増加した。 - **今後の方向性** - AI生成引用文献の継続的改善。 - 英語以外のウィキペディア版への多言語サポート拡充。 **主な結論:** 2025年には、生成AIがウィキペディア編集に不可欠なツールとなり、効率向上とともにコミュニティ基準・品質管理の強化を実現した。

## Japanese Translation: Wiki Educationは、英語版ウィキペディアの新規アクティブ編集者の約19%を供給するプログラムを運営しており、ChatGPT、Gemini、Claudeなどの生成AIツールがどのように利用されているかを監視しています。 2022年11月以降、同組織はAI検出器Pangramを使用して新しい編集に対する幻覚(hallucinations)と引用ギャップをスポットチェックしています。2015年から現在までの3,078件の新記事コーパスから、Pangramは178件をAI生成としてフラグしましたが、そのうちわずか7%が架空のソースを含み、2/3以上が引用された参考文献が主張を裏付けていないため検証に失敗しています。 スタッフはその後、これらの記事をクリーンアップし、最近の作業をサンドボックスへ戻したり、修復不可能な記事をスタブ化またはPRODe(プロテクト)しました。また、2025年にPangramをダッシュボードプラットフォームに統合し、ほぼリアルタイムで検出できるようにしています。2025年秋だけでも1,406件のAIアラートが記録され、そのうち314件(22%)がライブページに影響しました。さらに、217名の参加者(新規編集者6,357人中3%)が複数回アラートを受けました。この介入により、本空間でのAIコンテンツの予測比率は約25%から約5%へと削減されました。 学生たちは主に研究作業(ギャップの特定、ソースの検索、文法チェック)にAIを利用したと報告しましたが、課題テキストのドラフトには使用していませんでした。 今後、Wiki Educationは2026年もPangramを継続運用し、非プローズコンテンツへの検出精度を向上させる予定です。また、オプションのLLMリテラシーモジュールを提供しつつ、メールと動画による自動化トレーニングも継続します。

**タイトル:** *ARM SMEを解明し、一般行列積(GEMM)を最適化する* --- ### 1. 概要 - **ARM SME (Scalable Matrix Extension)** は、SIMD/NEON ベースの命令セットで、行列演算を効率的に実行します。 - 深層学習推論、科学計算、リアルタイム信号処理など、高性能ワークロード向けに設計されています。 ### 2. 主な機能 | 機能 | 説明 | |------|------| | **ベクタ幅** | 128 bit(8×16 bit)または256 bit(4×64 bit)のレジスタ。 | | **行列ロード/ストア** | `SME_LDM`, `SME_STM` – 行列全体を一度に読み書き。 | | **積加算** | `SME_MADDX` – オプションでスケーリング付きの乗算―累積演算。 | | **並列性** | 4×または8×データレーン;FMA(複合乗算―加算)により命令数を削減。 | ### 3. GEMM(一般行列積)の最適化 1. **タイル分割** - 入力行列をSMEレジスタに収まるサブブロックへ分割。 2. **`SME_MADDX` を内側ループで使用** - 明示的な乗算―加算ループを単一のSIMD命令に置き換える。 3. **データ再利用を活かす** - 各タイルは1回だけロードし、必要な全ての積に対してレジスタ内で保持。 4. **ソフトウェアパイプライン化** - 次のタイルのロード/ストアと現在計算を重ね合わせる。 ### 4. サンプルコード(C風擬似コード) ```c for (int i = 0; i < M; i += TILE_H) for (int j = 0; j < N; j += TILE_W) for (int k = 0; k < K; k += TILE_D) { // SMEレジスタへAとBのタイルをロード vecA = SME_LDM(A + i*K + k, TILE_H*TILE_D); vecB = SME_LDM(B + k*N + j, TILE_D*TILE_W); // サブ積を乗算―累積 C[i][j] += SME_MADDX(vecA, vecB); } ``` ### 5. パフォーマンスのヒント - **アラインメント**:行列は16バイト境界に揃えて、ロード/ストアを最適化。 - **ループアンローリング**:内側ループを2〜4倍で展開し、分岐オーバーヘッドを削減。 - **プリフェッチ**:`SME_PF` 命令を使い、次のタイルを先にキャッシュへ持ってくる。 ### 6. 結論 ARM SMEは低レイテンシで強力な行列演算機能を提供します。タイル化と命令選択を丁寧に行うことで、ARM Cortex‑Aプロセッサ上のGEMMワークロードを劇的に高速化できます。 | そっか~ニュース