Skip to content

Commit 9243c3c

Browse files
authored
Sync with latest counter spec build (#99)
This PR is a major update syncing the counter definitions with the latest Arm internal counter definitions, and publishing a version of the underlying performance counter machine readable specification to enable better third-party developer integration of Mali GPU data into their tooling. Major changes in this release: Support for Midgard (Mali-Txxx) GPUs has been removed. Machine readable specification and Python library has been added. Reference documentation built from the MRS has been added and published on the project GitHub Pages site.
1 parent 7e3ea4d commit 9243c3c

File tree

132 files changed

+178162
-20560
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

132 files changed

+178162
-20560
lines changed

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,5 @@
1010
*.py text
1111
*.sh text
1212
*.txt text
13+
*.woff binary
14+
*.woff2 binary

README.md

Lines changed: 50 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,44 @@
11
# About
22

3-
libGPUCounters (formerly called HWCPipe) is a utility that allows applications to sample performance
4-
counters from Arm® Immortalis™ and Arm Mali™ GPUs. This information allows developers to profile and
5-
optimize their application workload using their existing in-house performance tooling, and gives the
3+
libGPUCounters (formerly called HWCPipe) is a utility that allows applications
4+
to sample performance counters from Arm® Immortalis™ and Arm Mali™ GPUs. This
5+
information allows developers to profile and optimize their application
6+
workload using their existing in-house performance tooling, and gives the
67
ability to display performance data live in the application user interface.
78

8-
The 2.x release series is a major rewrite of the library, capable of exposing all of the public
9-
performance counters accessible in the Arm Streamline profiler. This version of the library
10-
is not API compatible with the 1.x series, and no longer supports Arm CPU performance counters.
9+
The 2.x release series is a major rewrite of the library, capable of exposing
10+
all of the public performance counters accessible in the Arm Streamline
11+
profiler. This version of the library is not API compatible with the 1.x
12+
series, and no longer supports Arm CPU performance counters.
1113

1214
## Supported devices
1315

14-
This library aims to support all Arm GPU products from the Mali-T700 series onwards, ensuring
15-
developers have coverage of the vast majority of smartphones with Arm GPUs that are in use today.
16-
If you find a device with an Arm GPU which does not work, or gives inaccurate results, please open
17-
an Issue on the GitHub issue tracker.
16+
The project aims to support all Arm GPU products from the Mali-G71 series or
17+
later, covering all Arm GPU architectures since the Bifrost architecture. This
18+
ensures developers have coverage of the vast majority of smartphones with Arm
19+
GPUs that are in use today. If you find a device with an Arm GPU which does not
20+
work, or gives inaccurate results, please open an Issue on the GitHub issue
21+
tracker.
1822

1923
This library only supports devices using the Arm commercial driver.
2024

2125
## License
2226

23-
This project is licensed under the MIT license. By downloading any component from this repository
24-
you acknowledge that you accept terms specified in the [LICENSE.md](LICENSE.md) file.
27+
This project is licensed under the MIT license. By downloading any component
28+
from this repository you acknowledge that you accept terms specified in the
29+
[LICENSE.md](LICENSE.md) file.
2530

26-
# Building
31+
## Using the library
2732

28-
The library is designed to be embedded into existing CMake build process. Clone the GitHub
29-
repository and add it as a subdirectory to your `CMakeLists.txt`. The build generates two
30-
libraries:
33+
The library is designed to be embedded into existing CMake build process. Clone
34+
the GitHub repository and add it as a subdirectory to your `CMakeLists.txt`.
35+
The build generates two libraries:
3136

3237
* `device` is the low-level hardware sampling backend.
3338
* `hwcpipe` is the high-level query and sampling frontend.
3439

35-
You will need to include both libraries in your application link step. For example, your
36-
`CMakeLists.txt` could contain:
40+
You will need to include both libraries in your application link step. For
41+
example, your `CMakeLists.txt` could contain:
3742

3843
```cmake
3944
add_subdirectory(path/to/libGPUCounters)
@@ -44,16 +49,37 @@ target_link_libraries(
4449
hwcpipe)
4550
```
4651

47-
## Building the example
52+
### Building the example
4853

49-
A small example demonstrating the API usage is provided in the `examples` folder. To build the
50-
example enable the `HWCPIPE_BUILD_EXAMPLES` CMake build option.
54+
A small example demonstrating the API usage is provided in the `examples`
55+
folder. To build the example enable the `HWCPIPE_BUILD_EXAMPLES` CMake build
56+
option.
5157

5258
```sh
5359
cmake -DHWCPIPE_BUILD_EXAMPLES=ON -B build .
5460
```
5561

56-
# Support
62+
## Using the machine readable specification
63+
64+
In addition to the sampling library, this project includes a machine readable
65+
specification containing the definition of the hardware counters and derived
66+
expressions for all of the supported GPUs.
67+
68+
The specification defines all the counters and derived expressions for all of
69+
the supported GPUs, including full documentation for counter groups and
70+
individual counters. Programmatic access is provided via a Python wrapper,
71+
allowing third-party tooling to easily integrate Arm GPU data sources.
72+
73+
For more information see the [specification readme](./specification/README.md).
74+
75+
## Counter documentation
76+
77+
Interactive counter documentation for all of the GPU products supported by
78+
libGPUCounters can be found on the project GitHub Pages site:
79+
80+
* https://arm-software.github.io/libGPUCounters/
81+
82+
## Support
5783

5884
If you have issues with the library itself, please raise them in the project's GitHub issue tracker.
5985

@@ -62,6 +88,6 @@ graphics development or technology please submit them on the [Arm Community grap
6288

6389
- - -
6490

65-
_Copyright © 2023-2025, Arm Limited and contributors. All rights reserved._
91+
_Copyright © 2023-2025, Arm Limited and contributors._
6692

67-
[1]: https://community.arm.com/support-forums/f/graphics-gaming-and-vr-forum/
93+
[1]: https://community.arm.com/support-forums/f/mobile-graphics-and-gaming-forum

docs/css/bootstrap-5.3.8.min.css

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)