Skip to content

Commit

Permalink
Release 0.2.1
Browse files Browse the repository at this point in the history
  • Loading branch information
ilagunap committed Jun 9, 2021
1 parent e255c7f commit 3b1f776
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ make && make install

## Using the FPChecker Front-end Version

To use this version, make sure the `bin` directory is available in your `PATH` variable. In LLNL systems, run `module load fpchecker`. This version requires the use of c++11 or later, i.e., `-std=c++11` should be added to compilation flags.
To use this version, make sure the `bin` directory is available in your `PATH` variable. In LLNL systems, run `module load fpchecker`. This version requires the use of c++11 or later, so `-std=c++11` should be added to compilation flags.

Replace `nvcc` in your build system with `nvcc-fpc` (which acts as a wrapper for nvcc). For cmake, you can use `cmake -DCMAKE_CUDA_COMPILER=nvcc-fpc`. To instrument the code at build time, the `FPC_INSTRUMENT` environment variable must be set; this can be set when running `make`:

Expand All @@ -47,6 +47,14 @@ $ FPC_INSTRUMENT=1 make -j
```
If `FPC_INSTRUMENT` is not set, the application will be compiled without instrumentation.

As an alternative, we also provide an interception tool called `fpchecker` that automatically intercepts all nvcc calls from the build script and replaces them with `nvcc-fpc`. To use this tool, simply run `fpchecker` and pass the build script (and its parameters):

```sh
$ fpchecker make -j
```

The `fpchecker` works in Linux only; it uses the LD_PRELOAD trick to intercept all calls to nvcc (via intercepting execve()).

### Report of Instrumented Files

After the code is built, we can see a report of the processed files (which can contained instrumentation) and failed compilations:
Expand Down
4 changes: 4 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## Release 0.2.1
- Added 'fpchecker' tool that intercepts all calls to nvcc from build script (e..g, make)
- The interception tool uses the Linux LD_PRELOAD trick to intercept execve system calls

## Release 0.2.0
- Added a custom front-end that instruments CUDA. This front-end doesn't require clang/LLVM.
- The new front-end is work in progress and has limitations
Expand Down

0 comments on commit 3b1f776

Please sign in to comment.