Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

GPU hardware effects

This repository demonstrates hardware effects that can affect application performance on Nvidia CUDA GPUs. For each effect I try to create a proof of concept program that is as small as possible so that it can be understood easily. My goal is to demonstrate effects that are caused by the underlying hardware architecture design and cannot be explained by looking at the source code alone.

Related repository with CPU hardware effects: https://github.com/kobzol/hardware-effects

The demonstrated effects of course depend heavily on your GPU microarchitecture and model. Right now there the example programs are focused on CUDA GPUs.

Currently the following effects are demonstrated:

  • bank conflicts
  • memory access coalescing
  • shared memory resource limits

Every example directory has a README that explains the individual effects.

Isolating those hardware effects can be very tricky, so it's possible that some of the examples are actually demonstrating something entirely else (or nothing at all :) ). If you have a better explanation of what is happening, please let me know in the issues.

Build

$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ make -j

If you want to use the benchmark scripts (written in Python 3), you should also install the Python dependencies:

$ pip install -r requirements.txt

Docker

You will need the Nvidia Docker runtime to use CUDA inside Docker containers:

$ sudo apt-get install nvidia-docker2

Build the image:

$ docker build -t hardware-effects-gpu .

Then run it:

# interactive run
$ docker run --runtime=nvidia --rm -it hardware-effects-gpu

# directly launch a program
$ docker run --runtime=nvidia hardware-effects-gpu build/bank-conflicts/bank-conflicts 1

License

MIT

Resources

关于 About

Demonstration of various hardware effects on CUDA GPUs.

语言 Languages

C++36.2%
Cuda33.4%
Python23.2%
CMake4.3%
Dockerfile2.8%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
0
Total Commits
峰值: 1次/周
Less
More

核心贡献者 Contributors