You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
GPUPerfAPI no longer uses git submodules to reference dependent repositories. Instead, you need to follow these instructions in
12
+
order to clone/update any dependent repositories.
13
+
#### Prerequisites
14
+
* This step requires that python be installed on the system. Python can be installed from https://www.python.org/
15
+
#### Instructions
16
+
* Simply execute the [UpdateCommon.py](Scripts/UpdateCommon.py) python script located in the [Scripts](Scripts) directory:
17
+
*__python Scripts/UpdateCommon.py__
18
+
This script will clone any dependent repositories that are not present on the system. If any of the dependent repositories are already
19
+
present on the system, this script will instead do a "git pull" on those repositories to ensure that they are up to date. Please re-run
20
+
this script everytime you pull new changes from GPA repository.
21
+
8
22
<AName="Windows">
9
23
## Windows Build Information
10
24
11
25
##### Prerequisites
12
-
* Microsoft Visual Studio 2015 Community Edition or higher + Update 1
26
+
* Microsoft Visual Studio 2015 Community Edition or higher + Update 3
13
27
* Windows 10 SDK Version 10.0.10586.0 from https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk
14
28
* You can override the version of the Windows 10 SDK used by modifying Common/Lib/Ext/Windows-Kits/Global-WindowsSDK.props
15
29
16
30
##### Build Instructions
17
31
* Load Build\VS2015\GPUPerfAPI.sln into Visual Studio
18
32
* Build the 64-bit and/or 32-bit configuration
19
-
* After a successful build, the GPUPerfAPI binaries can be found in __Build\VS2015\\$(Configuration)-$(Platform)__ (for example Build\VS2015\Release-x64)
33
+
* After a successful build, the GPUPerfAPI binaries can be found in __GPA\Output\\$(Configuration)\bin__ (for example GPA\Output\Release\bin)
20
34
21
35
#### Additional Information
22
36
* The Visual Studio solution includes a Documentation project that allows you to generate the HTML-based source code documentation using Doxygen. In order
23
-
to build that project, you'll need to modify [Documentation.vcxproj](GPUPerfAPI/Build/VS2015/Documentation.vcxproj) and modify the paths to the doxygen executable.
37
+
to build that project, you'll need to modify [Documentation.vcxproj](Build/VS2015/Documentation.vcxproj) and modify the paths to the doxygen executable.
24
38
* The Windows projects each include a .rc file that embeds the VERSIONINFO resource into the final binary. Internally within AMD, a Jenkins build system will dynamically update
25
-
the build number. The version and build numbers can be manually updated by modifying the [GPAVersion.h](GPUPerfAPI/GPUPerfAPI-Common/GPAVersion.h) file.
39
+
the build number. The version and build numbers can be manually updated by modifying the [GPAVersion.h](Src/GPUPerfAPI-Common/GPAVersion.h) file.
26
40
* Information on building the Internal version:
27
41
* To generate the internal version, two environment variables are required to be set prior to building in Visual Studio:
28
-
* GDT_BUILD=GDT_INTERNAL
29
-
* GDT_BUILD_SUFFIX=-Internal
30
-
* The output location of the binaries will be __Build\VS2015\\$(Configuration)-$(Platform)-Internal__ (for example Build\VS2015\Release-x64-Internal)
31
-
* Each binary filename will also have a "-Internal" suffix (for example GPUPerfAPIDX11-x64-Internal.dll)
42
+
* AMDT_BUILD=AMDT_INTERNAL
43
+
* AMDT_BUILD_SUFFIX=-Internal
44
+
* Each binary filename will have a "-Internal" suffix (for example GPUPerfAPIDX11-x64-Internal.dll)
32
45
33
46
<AName="Linux">
34
47
## Linux Build Information
@@ -47,7 +60,7 @@
47
60
*__quick__ or __incremental__: performs an incremental build (as opposed to a from-scratch build)
48
61
*__buildinternal__: builds the internal versions of GPUPerfAPI
49
62
*__hsadir__: overrides the location of the ROCm/HSA header files (by default they are expected to be in /opt/rocm/hsa)
50
-
* After a successful build, the GPUPerfAPI binaries can be found in their respective source file directories. For instance, the binaries for the OpenGL version of GPUPerfAPI (libGPUPerfAPIGL.so) can be found in the GPUPerfAPIGL subdirectory.
63
+
* After a successful build, the GPUPerfAPI binaries can be found in their respective source file directories. For instance, the binaries for the OpenGL version of GPUPerfAPI (libGPUPerfAPIGL.so) can be found in the Src/GPUPerfAPIGL subdirectory.
51
64
* Example build command line (builds the debug versions of the binaries, skipping the HSA library):
52
65
* ./build.sh debug skiphsa
53
66
* In addition to using the build.sh build script to build all of GPUPerfAPI, you can also build a single API library by executing __make__ in that library's directory. This is useful when making localized changes in a single version of GPUPerfAPI. When using __make__, the following default targets are supported:
@@ -76,8 +89,8 @@
76
89
## PublicCounterCompiler Tool
77
90
78
91
The PublicCounterCompiler Tool is a utility, written in C#, that will generate C++ code to define the public (or derived) counters.
79
-
It takes as input text files contained in the [PublicCounterCompilerInputFiles](GPUPerfAPI/PublicCounterCompilerInputFiles) directory and
80
-
outputs files in the [GPUPerfAPICounterGenerator](GPUPerfAPI/GPUPerfAPICounterGenerator) and [GPUPerfAPIUnitTests](GPUPerfAPI/GPUPerfAPIUnitTests) directories.
92
+
It takes as input text files contained in the [PublicCounterCompilerInputFiles](Src/PublicCounterCompilerInputFiles) directory and
93
+
outputs files in the [GPUPerfAPICounterGenerator](Src/GPUPerfAPICounterGenerator) and [GPUPerfAPIUnitTests](Src/GPUPerfAPIUnitTests) directories.
81
94
82
95
There are three ways to execute the tool:
83
96
* With no parameters - it opens the user interface with no fields prepopulated
@@ -91,7 +104,7 @@ There are three ways to execute the tool:
91
104
* Param 4: Test output Dir - the directory to generate the test output in (Ex: the path to the GPUPerfAPIUnitTests/counters directory)
92
105
* Param 5: Active section label - the label to take the counter names from (ex: dx11gfx6)
93
106
94
-
See the various PublicCounterDefinitions\*.txt files in the [PublicCounterCompilerInputFiles](GPUPerfAPI/PublicCounterCompilerInputFiles) directory. These contain all the counter definitions.
107
+
See the various PublicCounterDefinitions\*.txt files in the [PublicCounterCompilerInputFiles](Src/PublicCounterCompilerInputFiles) directory. These contain all the counter definitions.
95
108
Each counter is given a name, a description, a type, an optional usage type, a list of hardware counters required and a formula applied to the values of the hardware counters to calculate the value of the counter.
96
109
97
110
Counter formulas are expressed in a Reverse Polish Notation and are made up the following elements:
@@ -101,5 +114,5 @@ Counter formulas are expressed in a Reverse Polish Notation and are made up the
101
114
* functions: The supported functions are: min, max, sum, and ifnotzero. "max and "sum" have variants that work on multiple items at once (i.e. sum16, sum63, etc.)
102
115
* hardware params: The supported hardware params are "num_shader_engines". "num_simds", "su_clock_prim", "num_prim_pipes", and "TS_FREQ"
103
116
104
-
For more details, see the "EvaluateExpression" function in the [GPAPublicCounters.cpp](GPUPerfAPI/GPUPerfAPICounterGenerator/GPAPublicCounters.cpp) file.
117
+
For more details, see the "EvaluateExpression" function in the [GPAPublicCounters.cpp](Src/GPUPerfAPICounterGenerator/GPAPublicCounters.cpp) file.
0 commit comments