# 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": "tensorboard-plugin-profile",
"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.20.8",
"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": "8e274bb78b5fc82f37194e059770894d2830d7b8b03d046c3b17071d73992833",
"md5": "51c48f8401fb41d2120120830cb1c2af",
"sha256": "07e4699879885418182e9b37d89a0187683e6012bf3524f0e1559a15130b3ce3"
},
"downloads": -1,
"filename": "tensorboard_plugin_profile-2.20.8-cp310-none-macosx_12_0_arm64.whl",
"has_sig": false,
"md5_digest": "51c48f8401fb41d2120120830cb1c2af",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "!=3.0.*,!=3.1.*,>=2.7",
"size": 3707,
"upload_time": "2025-10-30T01:07:29",
"upload_time_iso_8601": "2025-10-30T01:07:29.132561Z",
"url": "https://files.pythonhosted.org/packages/8e/27/4bb78b5fc82f37194e059770894d2830d7b8b03d046c3b17071d73992833/tensorboard_plugin_profile-2.20.8-cp310-none-macosx_12_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cdf360f40a466d62a0e5ed19ea0cdb5d2e3b2d9de7798af7096faf2f01379259",
"md5": "d6f32cdd66a910f3dccf193ceb2d7002",
"sha256": "bfc630b9e98299e7c113003daf8520f1b413d3f424a8a22330adc631afb9a46f"
},
"downloads": -1,
"filename": "tensorboard_plugin_profile-2.20.8-cp310-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "d6f32cdd66a910f3dccf193ceb2d7002",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "!=3.0.*,!=3.1.*,>=2.7",
"size": 3733,
"upload_time": "2025-10-30T01:53:18",
"upload_time_iso_8601": "2025-10-30T01:53:18.499639Z",
"url": "https://files.pythonhosted.org/packages/cd/f3/60f40a466d62a0e5ed19ea0cdb5d2e3b2d9de7798af7096faf2f01379259/tensorboard_plugin_profile-2.20.8-cp310-none-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "dbe578af7cbe1ec55d4e9f4c4b01899c1207fc7037dc46ed9e41362910c72b4a",
"md5": "f5dfdd45a36df2475eaf3921c0d9c408",
"sha256": "aa4a7606d3113054db16a03ade7338ff77c78c116bba07e272e890318b0a5252"
},
"downloads": -1,
"filename": "tensorboard_plugin_profile-2.20.8-cp311-none-macosx_12_0_arm64.whl",
"has_sig": false,
"md5_digest": "f5dfdd45a36df2475eaf3921c0d9c408",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "!=3.0.*,!=3.1.*,>=2.7",
"size": 3709,
"upload_time": "2025-10-30T01:10:30",
"upload_time_iso_8601": "2025-10-30T01:10:30.094597Z",
"url": "https://files.pythonhosted.org/packages/db/e5/78af7cbe1ec55d4e9f4c4b01899c1207fc7037dc46ed9e41362910c72b4a/tensorboard_plugin_profile-2.20.8-cp311-none-macosx_12_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a14d6d0db96808db719d846439a56165a276791896ce76706d9e53cbbb97ae16",
"md5": "1b05c7c6dcd83ca4362bed7b5428a1d6",
"sha256": "8588cfb36406dbbb67fa41914e30ca7d06d2c312bd6e75c51d65627337c0e4dc"
},
"downloads": -1,
"filename": "tensorboard_plugin_profile-2.20.8-cp313-none-macosx_12_0_arm64.whl",
"has_sig": false,
"md5_digest": "1b05c7c6dcd83ca4362bed7b5428a1d6",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "!=3.0.*,!=3.1.*,>=2.7",
"size": 3708,
"upload_time": "2025-10-30T01:16:42",
"upload_time_iso_8601": "2025-10-30T01:16:42.808810Z",
"url": "https://files.pythonhosted.org/packages/a1/4d/6d0db96808db719d846439a56165a276791896ce76706d9e53cbbb97ae16/tensorboard_plugin_profile-2.20.8-cp313-none-macosx_12_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7b62114791e77057e781c8cebc65f72e66981806c79b2e73c5253950a9980c29",
"md5": "7de61e2219c7cde96859aacb296e5628",
"sha256": "199d6259801e734e757e5bcca808baf4732f739b55579d1abeea662420d23fd6"
},
"downloads": -1,
"filename": "tensorboard_plugin_profile-2.20.8-cp39-none-macosx_12_0_arm64.whl",
"has_sig": false,
"md5_digest": "7de61e2219c7cde96859aacb296e5628",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "!=3.0.*,!=3.1.*,>=2.7",
"size": 3709,
"upload_time": "2025-10-30T01:05:17",
"upload_time_iso_8601": "2025-10-30T01:05:17.411007Z",
"url": "https://files.pythonhosted.org/packages/7b/62/114791e77057e781c8cebc65f72e66981806c79b2e73c5253950a9980c29/tensorboard_plugin_profile-2.20.8-cp39-none-macosx_12_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "392c17eb412aa2634b4892fb05e9a3df27e292a91920b6115cd884abf345fe0c",
"md5": "68596d5d67b8c23e62181ecb12406870",
"sha256": "17b34de7dcb00dfeae01b0dbadfe2508a776a41bfce4e72a02dfd296bba635ba"
},
"downloads": -1,
"filename": "tensorboard_plugin_profile-2.20.8-cp39-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "68596d5d67b8c23e62181ecb12406870",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "!=3.0.*,!=3.1.*,>=2.7",
"size": 3732,
"upload_time": "2025-10-30T01:50:19",
"upload_time_iso_8601": "2025-10-30T01:50:19.146977Z",
"url": "https://files.pythonhosted.org/packages/39/2c/17eb412aa2634b4892fb05e9a3df27e292a91920b6115cd884abf345fe0c/tensorboard_plugin_profile-2.20.8-cp39-none-win_amd64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-30 01:07:29",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "openxla",
"github_project": "xprof",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "tensorboard-plugin-profile"
}