Skip to content

Commit

Permalink
updated GPU Occupancy Calculator (#2353)
Browse files Browse the repository at this point in the history
  • Loading branch information
krisrak authored May 31, 2024
1 parent ccd57a1 commit 4c61931
Show file tree
Hide file tree
Showing 2 changed files with 511 additions and 333 deletions.
30 changes: 12 additions & 18 deletions Tools/GPU-Occupancy-Calculator/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,20 @@ for GPU/HPC application development.

## Tool Details

* Allows user to pick a GPU SKU, input Global Size of HPC application,
Work-Group(WG) size, Sub-Group size, Shared Local Memory(SLM) size and barrier
usage.
* Computes Sub-Slice/Dual Sub-Slice (SS/DSS) Theoretical Occupancy based
on the inputs.
* Generates charts for Impact of varying Work-Group size and
Impact of varying Shared Local Memory size.
* Generates a list of all valid
Work-Group sizes that can be used and corresponding Occupancy.
* Generates a list of optimal configuration values for WG, SG and SLM limit that
will get 100% Occupancy.
The Intel GPU Occupancy tool will compute the theoretical GPU Occupancy for Intel GPU devices based on GPU Kernel code parameters. The Occupancy value will determine whether the GPU is efficiently utilizing all the GPU hardware resources. The tool will also generate graphs that will help optimize GPU Occupancy.

* Allows user to select a GPU, input Global Size of HPC application,
Work-Group(WG) size, Sub-Group(SG) size and Shared Local Memory(SLM) size.
* Computes Theoretical Occupancy based on the inputs.
* Generates charts for Impact of varying Work-Group size, Impact of varying Shared Local Memory size and GPU Occupancy graph for the workload.

## Usage
* Open Page: [oneapi-src.github.io/oneAPI-samples/Tools/GPU-Occupancy-Calculator/](https://oneapi-src.github.io/oneAPI-samples/Tools/GPU-Occupancy-Calculator/)
* Select a GPU from the dropdown and change "EU Count" if necessary OR select
* Select a GPU from the dropdown and change "XVE Count" if necessary OR select
the option to enter PCI ID for GPU.
* The tool will load some default values for Global Size, WG size, SG size,
SLM size and will compute Occupancy and generate graphs.
* Change the values of GPU target, Global size, WG size, SG size, SLM size or
Barrier usage based on your HPC application to calculate Occupancy and tune application.
* The tool will load some default values for Global Size, Work-Group size, Sub-Group size,
Local Memory size and will compute Occupancy and generate graphs.
* Change the values of Global size, Work-Group size, Sub-Group size or Local Memory size based on your HPC application to calculate Occupancy and tune application.


### Custom GPU Configuration:
Expand All @@ -36,7 +30,7 @@ An example of a custom configuration and corresponding description are listed be

Example of Intel GPU Occupancy Calculator with Custom GPU configuration:

`https://oneapi-src.github.io/oneAPI-samples/Tools/GPU-Occupancy-Calculator/?gpu=8;8;512;64;true;[32,16];128;128;[0,1,2,4,8,16,24,32,48,64,96,128];1024;64;32;My_GPU`
`https://oneapi-src.github.io/oneAPI-samples/Tools/GPU-Occupancy-Calculator/?gpu=8;8;512;64;true;[32,16];128;128;[0,1,2,4,8,16,24,32,48,64,96,128];1024;64;64;My_GPU`

URL Parameters details are as follows:
```
Expand All @@ -51,7 +45,7 @@ URL Parameters details are as follows:
TG_SLM_Sizes = [0,1,2,4,8,16,24,32,48,64,96,128]
Max_Work_Group_Size = 1024
Max_Num_Of_Workgroups = 64
Max_Num_Of_Barrier_Registers = 32
Max_Num_Of_Barrier_Registers = 64
Custom_GPU_Name (Optional) = My_GPU
```
## License
Expand Down
Loading

0 comments on commit 4c61931

Please sign in to comment.