summaryrefslogtreecommitdiff
path: root/src/cuda-sim/ptxinfo.y
diff options
context:
space:
mode:
authorTim Rogers <[email protected]>2025-02-18 10:29:07 -0500
committerGitHub <[email protected]>2025-02-18 15:29:07 +0000
commit287fe0aa17ec1ac5bdd595ca6e89aa97464bcac7 (patch)
treecf52817b95b99f61cf494af5536e32bf6d2889e3 /src/cuda-sim/ptxinfo.y
parent7934dfea8a6f44f592866414189970ef9ff994d6 (diff)
A bunch of maintenance fixes, the largest of which is getting the PTX simulation to work with CUDA 12. (#95)
* Fixing the formatter to always use a consistent format and running it on the codebase * Update linux-so-version.txt * Update Makefile * A couple of unnecessary files that are lingering around * Support CUDA 12 * Getting the PTX simulations to work with CUDA 12. The issue is that ptxas added more information (number of barriers and compile time). We have to parse these or lexx/yacc fail. * Update ptxinfo.l debug MACRO was ineffective * Update gpgpusim_check.cmake Update to make the CUDA version print a warning, not an error and updating the print to be more reflective of what the actual problem is.
Diffstat (limited to 'src/cuda-sim/ptxinfo.y')
-rw-r--r--src/cuda-sim/ptxinfo.y7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/cuda-sim/ptxinfo.y b/src/cuda-sim/ptxinfo.y
index b303958..7225207 100644
--- a/src/cuda-sim/ptxinfo.y
+++ b/src/cuda-sim/ptxinfo.y
@@ -49,6 +49,8 @@ typedef void * yyscan_t;
%token FUNC
%token USED
%token REGS
+%token BARRIERS
+%token COMPILETIME
%token BYTES
%token LMEM
%token SMEM
@@ -70,6 +72,8 @@ typedef void * yyscan_t;
%token <string_value> FUNCTION
%token <string_value> VARIABLE
%token FATAL
+%token PERIOD
+%token MS
%{
#include <stdlib.h>
@@ -81,6 +85,7 @@ typedef void * yyscan_t;
void yyerror(yyscan_t yyscanner, ptxinfo_data* ptxinfo, const char* msg);
void ptxinfo_function(const char *fname );
void ptxinfo_regs( unsigned nregs );
+ void ptxinfo_barriers( unsigned barriers );
void ptxinfo_lmem( unsigned declared, unsigned system );
void ptxinfo_gmem( unsigned declared, unsigned system );
void ptxinfo_smem( unsigned declared, unsigned system );
@@ -126,8 +131,10 @@ info: USED INT_OPERAND REGS { ptxinfo_regs($2); }
| INT_OPERAND BYTES LMEM { ptxinfo_lmem($1,0); }
| INT_OPERAND BYTES SMEM { ptxinfo_smem($1,0); }
| INT_OPERAND BYTES CMEM { ptxinfo_cmem($1,0); }
+ | USED INT_OPERAND BARRIERS { ptxinfo_barriers($2); }
| INT_OPERAND REGS { ptxinfo_regs($1); }
| INT_OPERAND TEXTURES {}
+ | COMPILETIME INT_OPERAND PERIOD INT_OPERAND MS {}
;
tuple: INT_OPERAND PLUS INT_OPERAND BYTES { g_declared=$1; g_system=$3; }