Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion src/cuda/GPU_Microbenchmark/hw_def/ampere_A100_hw_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@

#define L1_SIZE (192 * 1024) // Max L1 size in bytes

#define CLK_FREQUENCY 1410 // frequency in MHz
// NOTE: Frequency commented out since gpuConfig.h defines a `config` struct
// with a member also named CLK_FREQUENCY, so `#define CLK_FREQUENCY` collides

// #define CLK_FREQUENCY 1410 // frequency in MHz

#define ISSUE_MODEL issue_model::single // single issue core or dual issue
#define CORE_MODEL core_model::subcore // subcore model or shared model
Expand Down
36 changes: 36 additions & 0 deletions src/cuda/GPU_Microbenchmark/hw_def/ampere_RTX3060_MOBILE_hw_def.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
// These are the configration parameters that can be found publicly
// Sources:
// https://www.nvidia.com/content/dam/en-zz/Solutions/geforce/ampere/pdf/NVIDIA-ampere-GA102-GPU-Architecture-Whitepaper-V1.pdf
// https://en.wikipedia.org/wiki/GeForce_30_series
// https://en.wikipedia.org/wiki/CUDA

#ifndef AMPERE_RTX3060_DEF_H
#define AMPERE_RTX3060_DEF_H

#include "./common/common.h"
#include "./common/deviceQuery.h"

#define L1_SIZE (128 * 1024) // Max L1 size in bytes

// NOTE: Frequency commented out since gpuConfig.h defines a `config` struct
// with a member also named CLK_FREQUENCY, so `#define CLK_FREQUENCY` collides

// #define CLK_FREQUENCY 1132 // frequency in MHz

#define ISSUE_MODEL issue_model::single // single issue core or dual issue
#define CORE_MODEL core_model::subcore // subcore model or shared model
#define DRAM_MODEL dram_model::GDDR6 // memory type
#define WARP_SCHEDS_PER_SM 4 // number of warp schedulers per SM

// number of SASS HMMA per 16x16 PTX WMMA for FP16 - FP32 accumlate operation
// see slide 22 at
// https://developer.download.nvidia.com/video/gputechconf/gtc/2020/presentations/s21730-inside-the-nvidia-ampere-architecture.pdf
#define SASS_hmma_per_PTX_wmma 2

// These vars are almost constant between HW generation
// see slide 24 from Nvidia at
// https://developer.download.nvidia.com/video/gputechconf/gtc/2020/presentations/s21730-inside-the-nvidia-ampere-architecture.pdf
#define L2_BANKS_PER_MEM_CHANNEL 2
#define L2_BANK_WIDTH_in_BYTE 32

#endif
5 changes: 4 additions & 1 deletion src/cuda/GPU_Microbenchmark/hw_def/ampere_RTX3070_hw_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@

#define L1_SIZE (128 * 1024) // Max L1 size in bytes

#define CLK_FREQUENCY 1132 // frequency in MHz
// NOTE: Frequency commented out since gpuConfig.h defines a `config` struct
// with a member also named CLK_FREQUENCY, so `#define CLK_FREQUENCY` collides

// #define CLK_FREQUENCY 1132 // frequency in MHz

#define ISSUE_MODEL issue_model::single // single issue core or dual issue
#define CORE_MODEL core_model::subcore // subcore model or shared model
Expand Down
3 changes: 3 additions & 0 deletions src/cuda/GPU_Microbenchmark/hw_def/blackwell_B200_hw_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@

#define L1_SIZE (256 * 1024) // Max L1 size in bytes

// NOTE: Frequency commented out since gpuConfig.h defines a `config` struct
// with a member also named CLK_FREQUENCY, so `#define CLK_FREQUENCY` collides

// #define CLK_FREQUENCY 1665 // frequency in MHz

#define ISSUE_MODEL issue_model::single // single issue core or dual issue
Expand Down
5 changes: 4 additions & 1 deletion src/cuda/GPU_Microbenchmark/hw_def/hopper_H100_hw_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@

#define L1_SIZE (256 * 1024) // Max L1 size in bytes

#define CLK_FREQUENCY 1455 // frequency in MHz
// NOTE: Frequency commented out since gpuConfig.h defines a `config` struct
// with a member also named CLK_FREQUENCY, so `#define CLK_FREQUENCY` collides

// #define CLK_FREQUENCY 1455 // frequency in MHz

#define ISSUE_MODEL issue_model::single
#define CORE_MODEL core_model::subcore
Expand Down
9 changes: 6 additions & 3 deletions src/cuda/GPU_Microbenchmark/hw_def/hw_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,12 @@

//#include "ampere_RTX3070_hw_def.h"

// #include "volta_TITANV_hw_def.h"
#include "ampere_RTX3060_MOBILE_hw_def.h"

// #include "ampere_A100_hw_def.h"
#include "blackwell_B200_hw_def.h"
//#include "volta_TITANV_hw_def.h"

//#include "ampere_A100_hw_def.h"

//#include "blackwell_B200_hw_def.h"

#endif
5 changes: 4 additions & 1 deletion src/cuda/GPU_Microbenchmark/hw_def/kepler_TITAN_hw_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@

#define L1_SIZE (64 * 1024) // Max L1 size in bytes, when enabled

#define CLK_FREQUENCY 837 // frequency in MHz
// NOTE: Frequency commented out since gpuConfig.h defines a `config` struct
// with a member also named CLK_FREQUENCY, so `#define CLK_FREQUENCY` collides

// #define CLK_FREQUENCY 837 // frequency in MHz

#define ISSUE_MODEL issue_model::dual
#define CORE_MODEL core_model::shared
Expand Down
5 changes: 4 additions & 1 deletion src/cuda/GPU_Microbenchmark/hw_def/pascal_TITANX_hw_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@

#define L1_SIZE (24 * 1024) // Max L1 size in bytes, when enabled

#define CLK_FREQUENCY 1417 // frequency in MHz
// NOTE: Frequency commented out since gpuConfig.h defines a `config` struct
// with a member also named CLK_FREQUENCY, so `#define CLK_FREQUENCY` collides

//#define CLK_FREQUENCY 1417 // frequency in MHz

#define ISSUE_MODEL issue_model::dual
#define CORE_MODEL core_model::subcore
Expand Down
5 changes: 4 additions & 1 deletion src/cuda/GPU_Microbenchmark/hw_def/turing_RTX2060_hw_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@

#define L1_SIZE (64 * 1024) // Max L1 size in bytes

#define CLK_FREQUENCY 1365 // frequency in MHz
// NOTE: Frequency commented out since gpuConfig.h defines a `config` struct
// with a member also named CLK_FREQUENCY, so `#define CLK_FREQUENCY` collides

// #define CLK_FREQUENCY 1365 // frequency in MHz

#define ISSUE_MODEL issue_model::single // single issue core or dual issue
#define CORE_MODEL core_model::subcore // subcore model or shared model
Expand Down
5 changes: 4 additions & 1 deletion src/cuda/GPU_Microbenchmark/hw_def/volta_QV100_hw_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@

#define L1_SIZE (128 * 1024) // Max L1 size in bytes

#define CLK_FREQUENCY 1132 // frequency in MHz
// NOTE: Frequency commented out since gpuConfig.h defines a `config` struct
// with a member also named CLK_FREQUENCY, so `#define CLK_FREQUENCY` collides

// #define CLK_FREQUENCY 1132 // frequency in MHz

#define ISSUE_MODEL issue_model::single
#define CORE_MODEL core_model::subcore
Expand Down
5 changes: 4 additions & 1 deletion src/cuda/GPU_Microbenchmark/hw_def/volta_TITANV_hw_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@

#define L1_SIZE (128 * 1024) // Max L1 size in bytes

#define CLK_FREQUENCY 1200 // frequency in MHz
// NOTE: Frequency commented out since gpuConfig.h defines a `config` struct
// with a member also named CLK_FREQUENCY, so `#define CLK_FREQUENCY` collides

// #define CLK_FREQUENCY 1200 // frequency in MHz

#define ISSUE_MODEL issue_model::single
#define CORE_MODEL core_model::subcore
Expand Down
5 changes: 4 additions & 1 deletion src/cuda/GPU_Microbenchmark/hw_def/volta_V100_hw_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@

#define L1_SIZE (128 * 1024) // Max L1 size in bytes

#define CLK_FREQUENCY 1455 // frequency in MHz
// NOTE: Frequency commented out since gpuConfig.h defines a `config` struct
// with a member also named CLK_FREQUENCY, so `#define CLK_FREQUENCY` collides

// #define CLK_FREQUENCY 1455 // frequency in MHz

#define ISSUE_MODEL issue_model::single
#define CORE_MODEL core_model::subcore
Expand Down