Skip to content

ClasCat® AI Research

クラスキャット – 生成 AI, AI エージェント, MCP

Menu
  • ホーム
    • ClassCat® AI Research ホーム
    • クラスキャット・ホーム
  • OpenAI API
    • OpenAI Python ライブラリ 1.x : 概要
    • OpenAI ブログ
      • GPT の紹介
      • GPT ストアの紹介
      • ChatGPT Team の紹介
    • OpenAI platform 1.x
      • Get Started : イントロダクション
      • Get Started : クイックスタート (Python)
      • Get Started : クイックスタート (Node.js)
      • Get Started : モデル
      • 機能 : 埋め込み
      • 機能 : 埋め込み (ユースケース)
      • ChatGPT : アクション – イントロダクション
      • ChatGPT : アクション – Getting started
      • ChatGPT : アクション – アクション認証
    • OpenAI ヘルプ : ChatGPT
      • ChatGPTとは何ですか?
      • ChatGPT は真実を語っていますか?
      • GPT の作成
      • GPT FAQ
      • GPT vs アシスタント
      • GPT ビルダー
    • OpenAI ヘルプ : ChatGPT > メモリ
      • FAQ
    • OpenAI ヘルプ : GPT ストア
      • 貴方の GPT をフィーチャーする
    • OpenAI Python ライブラリ 0.27 : 概要
    • OpenAI platform
      • Get Started : イントロダクション
      • Get Started : クイックスタート
      • Get Started : モデル
      • ガイド : GPT モデル
      • ガイド : 画像生成 (DALL·E)
      • ガイド : GPT-3.5 Turbo 対応 微調整
      • ガイド : 微調整 1.イントロダクション
      • ガイド : 微調整 2. データセットの準備 / ケーススタディ
      • ガイド : 埋め込み
      • ガイド : 音声テキスト変換
      • ガイド : モデレーション
      • ChatGPT プラグイン : イントロダクション
    • OpenAI Cookbook
      • 概要
      • API 使用方法 : レート制限の操作
      • API 使用方法 : tiktoken でトークンを数える方法
      • GPT : ChatGPT モデルへの入力をフォーマットする方法
      • GPT : 補完をストリームする方法
      • GPT : 大規模言語モデルを扱う方法
      • 埋め込み : 埋め込みの取得
      • GPT-3 の微調整 : 分類サンプルの微調整
      • DALL-E : DALL·E で 画像を生成して編集する方法
      • DALL·E と Segment Anything で動的マスクを作成する方法
      • Whisper プロンプティング・ガイド
  • Gemini API
    • Tutorials : クイックスタート with Python (1) テキスト-to-テキスト生成
    • (2) マルチモーダル入力 / 日本語チャット
    • (3) 埋め込みの使用
    • (4) 高度なユースケース
    • クイックスタート with Node.js
    • クイックスタート with Dart or Flutter (1) 日本語動作確認
    • Gemma
      • 概要 (README)
      • Tutorials : サンプリング
      • Tutorials : KerasNLP による Getting Started
  • Keras 3
    • 新しいマルチバックエンド Keras
    • Keras 3 について
    • Getting Started : エンジニアのための Keras 入門
    • Google Colab 上のインストールと Stable Diffusion デモ
    • コンピュータビジョン – ゼロからの画像分類
    • コンピュータビジョン – 単純な MNIST convnet
    • コンピュータビジョン – EfficientNet を使用した微調整による画像分類
    • コンピュータビジョン – Vision Transformer による画像分類
    • コンピュータビジョン – 最新の MLPモデルによる画像分類
    • コンピュータビジョン – コンパクトな畳込み Transformer
    • Keras Core
      • Keras Core 0.1
        • 新しいマルチバックエンド Keras (README)
        • Keras for TensorFlow, JAX, & PyTorch
        • 開発者ガイド : Getting started with Keras Core
        • 開発者ガイド : 関数型 API
        • 開発者ガイド : シーケンシャル・モデル
        • 開発者ガイド : サブクラス化で新しい層とモデルを作成する
        • 開発者ガイド : 独自のコールバックを書く
      • Keras Core 0.1.1 & 0.1.2 : リリースノート
      • 開発者ガイド
      • Code examples
      • Keras Stable Diffusion
        • 概要
        • 基本的な使い方 (テキスト-to-画像 / 画像-to-画像変換)
        • 混合精度のパフォーマンス
        • インペインティングの簡易アプリケーション
        • (参考) KerasCV – Stable Diffusion を使用した高性能画像生成
  • TensorFlow
    • TF 2 : 初級チュートリアル
    • TF 2 : 上級チュートリアル
    • TF 2 : ガイド
    • TF 1 : チュートリアル
    • TF 1 : ガイド
  • その他
    • 🦜️🔗 LangChain ドキュメント / ユースケース
    • Stable Diffusion WebUI
      • Google Colab で Stable Diffusion WebUI 入門
      • HuggingFace モデル / VAE の導入
      • LoRA の利用
    • Diffusion Models / 拡散モデル
  • クラスキャット
    • 会社案内
    • お問合せ
    • Facebook
    • ClassCat® Blog
Menu

TensorFlow : Performance : XLA 概要

Posted on 03/21/2017 by Sales Information

TensorFlow : Performance : XLA 概要(翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 03/21/2017

* 本ページは、TensorFlow の本家サイトの Performance – XLA Overview を翻訳した上で
適宜、補足説明したものです:
https://www.tensorflow.org/performance/xla/
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

序

【注意】 XLA は実験的で alpha と考えられます。多くのユースケースではパフォーマンスにおける改善は見られないでしょう (速度あるいはメモリ使用量の減少)。XLA を早期にリリースしたのはオープンソース・コミュニティがハードウェア・アクセラレータとの統合のためのパスを作成できることに加えて、その開発に貢献できるようにするためです。

XLA (Accelerated Linear Algebra – 直訳すれば、加速された線形代数) は TensorFlow 計算を最適化する、線形代数のためのドメイン固有コンパイラ (domain-specific compiler) です。結果は速度、メモリ使用量、そしてサーバとモバイル・プラットフォーム上のポータビリティです。最初は、多くのユーザは XLA からの大きな恩恵を見ることはないでしょうが、just-in-time (JIT) コンピレーション あるいは ahead-of-time (AOT) コンピレーション を通じて XLA を使用することによる実験は歓迎するでしょう。新しいハードウェア・アクセラレータを対象とする開発者は XLA を試すことが特に奨励されるでしょう。

XLA フレームワークは実験的で活発に開発中です。特に、既存の演算のセマンティクスが変更されることはないものの、重要なユースケースをカバーするために更に演算が追加されることは期待されます。欠落している機能についてのコミュニティからのフィードバックや GitHub を通したコミュニティの貢献をチームは歓迎します。

 

何故 XLA を構築したのか?

XLA が TensorFlow と連携するために幾つかの目的を持ちました :

  • 実行スピードを改善する。サブグラフをコンパイルして一時的な Ops の実行時間を減少させ、TensorFlow ランタイムからオーバーヘッドを取り除き、メモリオーバーヘッドを減じるためにパイプライン化された演算を融合し、そしてより積極的な定数伝播を可能にするために既知のテンソル shape に特化します。
  • メモリ使用を改善する。メモリ使用を解析してスケジューリングし、原則的に多くの中間的なストレージ・バッファを取り除きます。
  • カスタム Op への依存を減じる。手動で融合されたカスタム Op の性能に匹敵するように自動的に融合された低位の Op の性能を改善することによって多くのカスタム Op への要求を取り除きます。
  • モバイル・フットプリントを減じる。サブグラフを ahead-of-time コンパイリングして他のアプリケーションに直接リンク可能なオブジェクト/ヘッダのファイル・ペアを発行する (emit) ことで TensorFlow ランタイムを取り除きます。結果はモバイル推論のためのフットプリントを桁違いに減少できます。
  • ポータビリティを改善する。 新しいハードウェアのための新しいバックエンドを書くことを比較的容易にします、その場所では TensorFlow プログラムの大きな断片がそのハードウェアで変更されることなく実行されます。これは新しいハードウェアのために個々のモノリシック Ops を特化するアプローチとの対比であり、それはこれらの Ops を利用するために TensorFlow プログラムが書き直されることを必要とします。

 

XLA はどのように動作するか?

XLA への入力言語は “HLO IR”、あるいは単に HLO (High Level Optimizer – 高位オプティマイザ) と呼ばれます。HLO のセマンティクスは Operation Semantics ページで記述されます。それは HLO を コンパイラ IR として考えることは便利です。(訳注: IR は中間表現。)

XLA は HLO で定義されたグラフ (“計算”) を取りそれらを各種アーキテクチャのマシン命令にコンパイルします。ある新規の H/W アーキテクチャを対象とする ために代替のバックエンドにスロットすることが容易であるという意味で XLA はモジュールです。NVIDIA GPU バックエンドに加えて x64 と ARM64 のための CPU バックエンドは TensorFlow ソース・ツリーにあります。

次の図は XLA におけるコンピレーション・プロセスを示します :

 
XLA は幾つかの最適化と解析が付属しています、これは CSE のようなターゲット独立、ターゲット独立演算の融合、そして計算のためのランタイム・メモリを割り当てるためのバッファ解析です。

ターゲット独立なステップの後、XLA は HLO 計算をバックエンドに送ります。バックエンドは更なる HLO-レベルの解析と最適化を行なうことができ、この時はターゲット固有情報と要請が念頭に置かれます。

例えば、XLA GPU バックエンドは GPU プログラミングモデルのために具体的に有益な演算の融合を実行してそしてどのように計算をストリームに分割するかを決定します。このステージでは、バックエンドはまたある演算や最適化されたライブラリ・コールに関連したコンビネーションをパターンマッチします。

次のステップはターゲット固有のコード生成です。XLA に含まれる CPU と GPU バックエンドは低位な IR、最適化、そしてコード生成のために LLVM を使用します。これらのバックエンドは効率的な流儀で XLA HLO 計算を表すに必要な LLVM IR を発行し、そしてそれからこの LLVM IR からネーティブ・コードを発行するために LLVM を呼び出します。

GPU バックエンドは現在 NVIDIA GPU を LLVM NVPTX バックエンドを通してサポートします; CPU バックエンドは複数の CPU ISA をサポートします。

 

サポートされるプラットフォーム

XLA は現在 x86-64 と NVIDIA GPU 上の JIT コンピレーションをサポートします; そして x86-64 と ARM のための AOT コンピレーションをサポートします。

 

以上

クラスキャット

最近の投稿

  • LangGraph Platform : 概要
  • LangGraph : Prebuilt エージェント : ユーザインターフェイス
  • LangGraph : Prebuilt エージェント : 配備
  • LangGraph : Prebuilt エージェント : マルチエージェント
  • LangGraph : Prebuilt エージェント : メモリ

タグ

AutoGen (13) ClassCat Press Release (20) ClassCat TF/ONNX Hub (11) DGL 0.5 (14) Eager Execution (7) Edward (17) FLUX.1 (16) Gemini (20) HuggingFace Transformers 4.5 (10) HuggingFace Transformers 4.6 (7) HuggingFace Transformers 4.29 (9) Keras 2 Examples (98) Keras 2 Guide (16) Keras 3 (10) Keras Release Note (17) Kubeflow 1.0 (10) LangChain (45) LangGraph (19) MediaPipe 0.8 (11) Model Context Protocol (16) NNI 1.5 (16) OpenAI Agents SDK (8) OpenAI Cookbook (13) OpenAI platform (10) OpenAI platform 1.x (10) OpenAI ヘルプ (8) TensorFlow 2.0 Advanced Tutorials (33) TensorFlow 2.0 Advanced Tutorials (Alpha) (15) TensorFlow 2.0 Advanced Tutorials (Beta) (16) TensorFlow 2.0 Guide (10) TensorFlow 2.0 Guide (Alpha) (16) TensorFlow 2.0 Guide (Beta) (9) TensorFlow 2.0 Release Note (12) TensorFlow 2.0 Tutorials (20) TensorFlow 2.0 Tutorials (Alpha) (14) TensorFlow 2.0 Tutorials (Beta) (12) TensorFlow 2.4 Guide (24) TensorFlow Deploy (8) TensorFlow Get Started (7) TensorFlow Graphics (7) TensorFlow Probability (9) TensorFlow Programmer's Guide (22) TensorFlow Release Note (18) TensorFlow Tutorials (33) TF-Agents 0.4 (11)
2017年3月
月 火 水 木 金 土 日
 12345
6789101112
13141516171819
20212223242526
2728293031  
« 2月   4月 »
© 2025 ClasCat® AI Research | Powered by Minimalist Blog WordPress Theme