# XProf (+ Tensorboard Profiler Plugin)
XProf includes a suite of profiling tools for [JAX](https://jax.readthedocs.io/), [TensorFlow](https://www.tensorflow.org/), and [PyTorch/XLA](https://github.com/pytorch/xla). These tools help you understand, debug and optimize machine learning programs to run on CPUs, GPUs and TPUs.
XProf offers a number of tools to analyse and visualize the
performance of your model across multiple devices. Some of the tools include:
*   **Overview**: A high-level overview of the performance of your model. This
    is an aggregated overview for your host and all devices. It includes:
    *   Performance summary and breakdown of step times.
    *   A graph of individual step times.
    *   High level details of the run environment.
*   **Trace Viewer**: Displays a timeline of the execution of your model that shows:
    *   The duration of each op.
    *   Which part of the system (host or device) executed an op.
    *   The communication between devices.
*   **Memory Profile Viewer**: Monitors the memory usage of your model.
*   **Graph Viewer**: A visualization of the graph structure of HLOs of your model.
To learn more about the various XProf tools, check out the [XProf documentation](https://openxla.org/xprof)
## Demo
First time user? Come and check out this [Colab Demo](https://docs.jaxstack.ai/en/latest/JAX_for_LLM_pretraining.html).
## Quick Start
### Prerequisites
* xprof >= 2.20.0
* (optional) TensorBoard >= 2.20.0
Note: XProf requires access to the Internet to load the [Google Chart library](https://developers.google.com/chart/interactive/docs/basic_load_libs#basic-library-loading).
Some charts and tables may be missing if you run XProf entirely offline on
your local machine, behind a corporate firewall, or in a datacenter.
If you use Google Cloud to run your workloads, we recommend the
[xprofiler tool](https://github.com/AI-Hypercomputer/cloud-diagnostics-xprof).
It provides a streamlined profile collection and viewing experience using VMs
running XProf.
### Installation
To get the most recent release version of XProf, install it via pip:
```
$ pip install xprof
```
Without TensorBoard:
```
$ xprof --logdir=profiler/demo --port=6006
```
With TensorBoard:
```
$ tensorboard --logdir=profiler/demo
```
If you are behind a corporate firewall, you may need to include the `--bind_all`
tensorboard flag.
Go to `localhost:6006/#profile` of your browser, you should now see the demo
overview page show up.
Congratulations! You're now ready to capture a profile.
## Nightlies
Every night, a nightly version of the package is released under the name of
`xprof-nightly`. This package contains the latest changes made by the XProf
developers.
To install the nightly version of profiler:
```
$ pip uninstall xprof tensorboard-plugin-profile
$ pip install xprof-nightly
```
## Next Steps
* [JAX Profiling Guide](https://jax.readthedocs.io/en/latest/profiling.html#xprof-tensorboard-profiling)
* [PyTorch/XLA Profiling Guide](https://cloud.google.com/tpu/docs/pytorch-xla-performance-profiling-tpu-vm)
* [TensorFlow Profiling Guide](https://tensorflow.org/guide/profiler)
* [Cloud TPU Profiling Guide](https://cloud.google.com/tpu/docs/cloud-tpu-tools)
* [Colab Tutorial](https://www.tensorflow.org/tensorboard/tensorboard_profiling_keras)
* [Tensorflow Colab](https://www.tensorflow.org/tensorboard/tensorboard_profiling_keras)
            
         
        Raw data
        
            {
    "_id": null,
    "home_page": "https://github.com/openxla/xprof",
    "name": "xprof-nightly",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "!=3.0.*,!=3.1.*,>=2.7",
    "maintainer_email": null,
    "keywords": "jax pytorch xla tensorflow tensorboard xprof profile plugin",
    "author": "Google Inc.",
    "author_email": "packages@tensorflow.org",
    "download_url": null,
    "platform": null,
    "description": "# XProf (+ Tensorboard Profiler Plugin)\nXProf includes a suite of profiling tools for [JAX](https://jax.readthedocs.io/), [TensorFlow](https://www.tensorflow.org/), and [PyTorch/XLA](https://github.com/pytorch/xla). These tools help you understand, debug and optimize machine learning programs to run on CPUs, GPUs and TPUs.\n\nXProf offers a number of tools to analyse and visualize the\nperformance of your model across multiple devices. Some of the tools include:\n\n*   **Overview**: A high-level overview of the performance of your model. This\n    is an aggregated overview for your host and all devices. It includes:\n    *   Performance summary and breakdown of step times.\n    *   A graph of individual step times.\n    *   High level details of the run environment.\n*   **Trace Viewer**: Displays a timeline of the execution of your model that shows:\n    *   The duration of each op.\n    *   Which part of the system (host or device) executed an op.\n    *   The communication between devices.\n*   **Memory Profile Viewer**: Monitors the memory usage of your model.\n*   **Graph Viewer**: A visualization of the graph structure of HLOs of your model.\n\nTo learn more about the various XProf tools, check out the [XProf documentation](https://openxla.org/xprof)\n\n## Demo\nFirst time user? Come and check out this [Colab Demo](https://docs.jaxstack.ai/en/latest/JAX_for_LLM_pretraining.html).\n\n## Quick Start\n\n### Prerequisites\n\n* xprof >= 2.20.0\n* (optional) TensorBoard >= 2.20.0\n\nNote: XProf requires access to the Internet to load the [Google Chart library](https://developers.google.com/chart/interactive/docs/basic_load_libs#basic-library-loading).\nSome charts and tables may be missing if you run XProf entirely offline on\nyour local machine, behind a corporate firewall, or in a datacenter.\n\nIf you use Google Cloud to run your workloads, we recommend the\n[xprofiler tool](https://github.com/AI-Hypercomputer/cloud-diagnostics-xprof).\nIt provides a streamlined profile collection and viewing experience using VMs\nrunning XProf.\n\n### Installation\n\nTo get the most recent release version of XProf, install it via pip:\n\n```\n$ pip install xprof\n```\n\nWithout TensorBoard:\n\n```\n$ xprof --logdir=profiler/demo --port=6006\n```\n\nWith TensorBoard:\n\n```\n$ tensorboard --logdir=profiler/demo\n```\nIf you are behind a corporate firewall, you may need to include the `--bind_all`\ntensorboard flag.\n\nGo to `localhost:6006/#profile` of your browser, you should now see the demo\noverview page show up.\nCongratulations! You're now ready to capture a profile.\n\n## Nightlies\n\nEvery night, a nightly version of the package is released under the name of\n`xprof-nightly`. This package contains the latest changes made by the XProf\ndevelopers.\n\nTo install the nightly version of profiler:\n\n```\n$ pip uninstall xprof tensorboard-plugin-profile\n$ pip install xprof-nightly\n```\n\n## Next Steps\n\n* [JAX Profiling Guide](https://jax.readthedocs.io/en/latest/profiling.html#xprof-tensorboard-profiling)\n* [PyTorch/XLA Profiling Guide](https://cloud.google.com/tpu/docs/pytorch-xla-performance-profiling-tpu-vm)\n* [TensorFlow Profiling Guide](https://tensorflow.org/guide/profiler)\n* [Cloud TPU Profiling Guide](https://cloud.google.com/tpu/docs/cloud-tpu-tools)\n* [Colab Tutorial](https://www.tensorflow.org/tensorboard/tensorboard_profiling_keras)\n* [Tensorflow Colab](https://www.tensorflow.org/tensorboard/tensorboard_profiling_keras)\n",
    "bugtrack_url": null,
    "license": "Apache 2.0",
    "summary": "XProf Profiler Plugin",
    "version": "2.21.9a20251102",
    "project_urls": {
        "Homepage": "https://github.com/openxla/xprof"
    },
    "split_keywords": [
        "jax",
        "pytorch",
        "xla",
        "tensorflow",
        "tensorboard",
        "xprof",
        "profile",
        "plugin"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3a8421d3b51ba3d7531a5e42fed39bf60719a4c4b4b8de98c8af55ca0f4900e0",
                "md5": "863e7f1c794237814b87424df4d2853e",
                "sha256": "11658b9317ccbba2d40d171a5bf58ce115148ced01bbdd0d6e27f1d688f01060"
            },
            "downloads": -1,
            "filename": "xprof_nightly-2.21.9a20251102-cp310-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "863e7f1c794237814b87424df4d2853e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": "!=3.0.*,!=3.1.*,>=2.7",
            "size": 13492104,
            "upload_time": "2025-11-02T10:45:08",
            "upload_time_iso_8601": "2025-11-02T10:45:08.642601Z",
            "url": "https://files.pythonhosted.org/packages/3a/84/21d3b51ba3d7531a5e42fed39bf60719a4c4b4b8de98c8af55ca0f4900e0/xprof_nightly-2.21.9a20251102-cp310-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9c9dc5311d6739dffd0fe55cf70475d81f338f2695e6b41d394551486bb41341",
                "md5": "79d47400ef6b9806db4742407846ca3a",
                "sha256": "2f7939154536a50924e172d2e21b67fefa22123f02ce5b114240ac6a9c4a4302"
            },
            "downloads": -1,
            "filename": "xprof_nightly-2.21.9a20251102-cp311-none-macosx_12_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "79d47400ef6b9806db4742407846ca3a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": "!=3.0.*,!=3.1.*,>=2.7",
            "size": 13602615,
            "upload_time": "2025-11-02T10:29:20",
            "upload_time_iso_8601": "2025-11-02T10:29:20.676187Z",
            "url": "https://files.pythonhosted.org/packages/9c/9d/c5311d6739dffd0fe55cf70475d81f338f2695e6b41d394551486bb41341/xprof_nightly-2.21.9a20251102-cp311-none-macosx_12_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "195b208874a87bca624ac74cac5b78ed940684fa9a4ebb6da36f7a56bb87ee27",
                "md5": "e5b4f4b62649a353434b6fc8533c3ae4",
                "sha256": "0d6db9215a997db423684a33a9d7a01635709ff321fd10a784f4d1270cc44e9e"
            },
            "downloads": -1,
            "filename": "xprof_nightly-2.21.9a20251102-cp311-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "e5b4f4b62649a353434b6fc8533c3ae4",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": "!=3.0.*,!=3.1.*,>=2.7",
            "size": 13494210,
            "upload_time": "2025-11-02T10:45:38",
            "upload_time_iso_8601": "2025-11-02T10:45:38.220602Z",
            "url": "https://files.pythonhosted.org/packages/19/5b/208874a87bca624ac74cac5b78ed940684fa9a4ebb6da36f7a56bb87ee27/xprof_nightly-2.21.9a20251102-cp311-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ba565ba945c2cd18c3faddebb6e945532f23d168f7a2b65b7931e935e5433c77",
                "md5": "f365f01e1cdf297776777f108bffb455",
                "sha256": "6cb3fec7a219d1090a85c799065537a781f47e8510cf2f3ba9ad1d27b7f1417f"
            },
            "downloads": -1,
            "filename": "xprof_nightly-2.21.9a20251102-cp312-none-macosx_12_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "f365f01e1cdf297776777f108bffb455",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": "!=3.0.*,!=3.1.*,>=2.7",
            "size": 13602424,
            "upload_time": "2025-11-02T10:20:26",
            "upload_time_iso_8601": "2025-11-02T10:20:26.190045Z",
            "url": "https://files.pythonhosted.org/packages/ba/56/5ba945c2cd18c3faddebb6e945532f23d168f7a2b65b7931e935e5433c77/xprof_nightly-2.21.9a20251102-cp312-none-macosx_12_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a2be8d0d7b809feee21ac3e3c8f592c471db229b592302d8d8b68228c9df09b3",
                "md5": "5d88304613a0cc35132ae2ba82ce57fb",
                "sha256": "e7088249cd2c58e209f7b66448abc0ae13e23d5db8f113ae4a8950b298a47867"
            },
            "downloads": -1,
            "filename": "xprof_nightly-2.21.9a20251102-cp312-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "5d88304613a0cc35132ae2ba82ce57fb",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": "!=3.0.*,!=3.1.*,>=2.7",
            "size": 13493460,
            "upload_time": "2025-11-02T10:45:59",
            "upload_time_iso_8601": "2025-11-02T10:45:59.820631Z",
            "url": "https://files.pythonhosted.org/packages/a2/be/8d0d7b809feee21ac3e3c8f592c471db229b592302d8d8b68228c9df09b3/xprof_nightly-2.21.9a20251102-cp312-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cb71ac8d3481e15bfcc08441dbbe58e6ff0d04baf911d060097332678c7840fd",
                "md5": "72084ca86c58b55b14d617c4d079b6e3",
                "sha256": "ed5bc3a21b896073c994a7b27abbb3712d8742a1743e022eb97b4d88b8dc39cb"
            },
            "downloads": -1,
            "filename": "xprof_nightly-2.21.9a20251102-cp313-none-macosx_12_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "72084ca86c58b55b14d617c4d079b6e3",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": "!=3.0.*,!=3.1.*,>=2.7",
            "size": 13602476,
            "upload_time": "2025-11-02T10:36:59",
            "upload_time_iso_8601": "2025-11-02T10:36:59.236734Z",
            "url": "https://files.pythonhosted.org/packages/cb/71/ac8d3481e15bfcc08441dbbe58e6ff0d04baf911d060097332678c7840fd/xprof_nightly-2.21.9a20251102-cp313-none-macosx_12_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f8a01869c7a3988799d376e4f677e42ceb7a0c90a8bd9fce3d8c8679342f83f1",
                "md5": "eee02db64b052894b5e2f0764f96464f",
                "sha256": "bfbb63ef83c8ae37d2cf4afdd72d74f2bf4993983461a5117fdf3cc80e9934f7"
            },
            "downloads": -1,
            "filename": "xprof_nightly-2.21.9a20251102-cp313-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "eee02db64b052894b5e2f0764f96464f",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": "!=3.0.*,!=3.1.*,>=2.7",
            "size": 13493668,
            "upload_time": "2025-11-02T10:46:59",
            "upload_time_iso_8601": "2025-11-02T10:46:59.288925Z",
            "url": "https://files.pythonhosted.org/packages/f8/a0/1869c7a3988799d376e4f677e42ceb7a0c90a8bd9fce3d8c8679342f83f1/xprof_nightly-2.21.9a20251102-cp313-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "381dae2f4af578a9523dde169ea5ff2950c5e1acb3924fa91e31126ca4809202",
                "md5": "e65e623f1e040ed8a2d7a832858a264b",
                "sha256": "1eaafe483328f861a3c6e948a01b7dbc26d6c452df3bea992150ebd0a2976aa1"
            },
            "downloads": -1,
            "filename": "xprof_nightly-2.21.9a20251102-cp39-none-macosx_12_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "e65e623f1e040ed8a2d7a832858a264b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "!=3.0.*,!=3.1.*,>=2.7",
            "size": 13601811,
            "upload_time": "2025-11-02T10:20:38",
            "upload_time_iso_8601": "2025-11-02T10:20:38.071888Z",
            "url": "https://files.pythonhosted.org/packages/38/1d/ae2f4af578a9523dde169ea5ff2950c5e1acb3924fa91e31126ca4809202/xprof_nightly-2.21.9a20251102-cp39-none-macosx_12_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dad6ff1e8286ee4b82323311ca485fedc42f583708c541f6db77dd2313afad5c",
                "md5": "42a1c3f396a309315dc36d594b8a9054",
                "sha256": "b1e6b6a589b8de148db676aca9f74399c2270e7c8663a8a6a7a9ec16a0b4c8f6"
            },
            "downloads": -1,
            "filename": "xprof_nightly-2.21.9a20251102-cp39-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "42a1c3f396a309315dc36d594b8a9054",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "!=3.0.*,!=3.1.*,>=2.7",
            "size": 13492244,
            "upload_time": "2025-11-02T10:41:08",
            "upload_time_iso_8601": "2025-11-02T10:41:08.377167Z",
            "url": "https://files.pythonhosted.org/packages/da/d6/ff1e8286ee4b82323311ca485fedc42f583708c541f6db77dd2313afad5c/xprof_nightly-2.21.9a20251102-cp39-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-11-02 10:45:08",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "openxla",
    "github_project": "xprof",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "xprof-nightly"
}