GPGPU-sim Working Benchmark

Dong-hyeon Park » 02 December 2013

After a long-long series of guessing, googling, text scrambling and copy&pastes, Akhil and I finally managed to get some of the example benchmarks in GPGPU-sim to build, and ONE benchmark to run successfully without giving us any segfaults. I'll add a blog post on how to add CUDA SDK into your directory later in the week. (probably by putting it on a GIT repository) There were a ton of semi-random, non-intuitive hacks we had to do to get the example code compiling, but hopefully we will be able to get it to work on everyone's directory. Out of 12 total...
Read more...

Benchmark Research

Fabiha Hannan » 02 December 2013

(edit: I always forget the .md at the end of my post titles :-( ) This week's goal was to work with Eric and Paul to organize metrics to characterize the benchmarks we will use. These are clarifications we established during the meeting and after emailing Professor Spjut: We do not want to compare simd and mimd or worry about that CUDA should run on either simd or mimd The metrics should be able to characterize instruction memory behavior of any given program for now The next step is to start characterizing certain benchmarks The metrics I found: Low vs...
Read more...

Instruction Cache Metrics

Eric Storm » 01 December 2013

Instruction Cache Metrics This week Fabiha, Paul, and I worked on developing metrics to characterize an instruction cache's behavior during execution of a program. When creating metrics, we did our best to create metrics that would be applicable for a wide range of potential instruction cache structures. Metrics Instructions loaded per cycle: the average number of instructions loaded into the cache would be a measurement of how much the cache is being used. By running identical programs with different cache configurations, a relative comparison will allow the effectiveness of one cache scheme to another. Average instruction read time: Depending on...
Read more...

first_run_gpgpu

Akhil Bagaria » 25 November 2013

I followed the instructions from DH's blogs to setup git on my tera account. After that I cloned the GP-GPU sim files from the git repo into my tera account. I setup GP-GPU sim on my tera account. The README file in the v3.x directory was very helpful for this. As well as DH's blog. Then I tried to execute the make file. I got a LOT of warnings which did not go away on repeated builds, but I assumed that everything compiled properly. At first I could not install Xming because I do not have root access. So if...
Read more...

Cache Conflicts

Paul Jolly » 25 November 2013

This week, I researched about common inter-thread conflicts that occur and summarized the proposed solution by a paper published by Sato et al. from Tohoku University. Two common conflicts are inter-thread kick out (ITKO) and capacity shortages. The former is the one we are more familiar with: cached data desired by a specific thread has already been evicted by another thread resulting in increased execution time for the second thread. For capacity shortages, if the total capacity required by all the threads accessing the cache exceeds the total capacity of the cache, the different threads end up competing for the...
Read more...

Benchmark Research

Fabiha Hannan » 25 November 2013

Terminology (including terms from last week): logical page: contains more data than can fit on the physical page direct-mapped cache: each memory location is mapped to one specific cache entry location fully associative cache: each memory location can be mapped to any cache entry location two-way set associative cache: each memory location can be mapped to only one of two cache entry locations kernel: grid of blocks of warps of scalar threads warp: groups of threads in hardware meant to execute in lockstep SIMT: Single Instruction, Multiple Thread, coined by NVIDIA to describe their GPU CUDA architecture ISA: instruction set...
Read more...

GPGPU-sim Setup Instructions

Dong-hyeon Park » 21 November 2013

Here are the instructions for setting up the GPGPU-sim to build successfully in Tera, with the CUDA Toolkit. I'm still having trouble getting the CUDA SDK to work properly For now, the only thing that is working is building the GPGPU-sim with the make command. The CUDA SDK is required to run the example codes, but I am having trouble getting CUDA SDK up and running with the code. SETTING UP GPGPU-SIM 1. Login to Tera and setup git in your repository. 2. Pull the GPGPU-sim code from the charlab repository. See instructions from my previous posts. 3. Go to...
Read more...

GPU Terminology

Eric Storm » 18 November 2013

This week, I tried to create a GPGPU configuration file for a more modern GPU. However, not long after I started, I came to realize that there were a lot of flags that were ambiguously named or the information could not be found on the internet. For example, it seems likely that the only way to find the latencies of particular instructions is by deducing the values by running a program on the actual GPU. One thing that I was surprised that I never found was the structure of a the GPU caches. It's easy to find the size of...
Read more...