Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Project 0: Jordan Hochman #30

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
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
559 changes: 559 additions & 0 deletions .gitignore

Large diffs are not rendered by default.

61 changes: 54 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,60 @@
Project 0 Getting Started
====================
=========================

**University of Pennsylvania, CIS 5650: GPU Programming and Architecture, Project 0**

* (TODO) YOUR NAME HERE
* (TODO) [LinkedIn](), [personal website](), [twitter](), etc.
* Tested on: (TODO) Windows 22, i7-2222 @ 2.22GHz 22GB, GTX 222 222MB (Moore 2222 Lab)
* Jordan Hochman
* [LinkedIn](https://www.linkedin.com/in/jhochman24), [Personal Website](https://jordanh.xyz), [GitHub](https://github.com/JHawk0224)
* Tested on: Windows 11, Ryzen 7 5800 @ 3.4GHz 32GB, GeForce RTX 3060 Ti 8GB (Compute Capability: 8.6)

### (TODO: Your README)
## Welcome to my Project 0!

Include screenshots, analysis, etc. (Remember, this is public, so don't put
anything here that you don't want to share with the world.)
This project is just to check the system readiness of my GPU and computer. This `README.md` follows along with the instructions in `INSTRUCTION.md`, and the images and reports from each section will be given below. The system information that these reports were gathered from is mentioned above.

### Part 2.1.1: Compute Capability of CUDA-compatible GPU

As you can see above, the [compute capability (SM)](https://developer.nvidia.com/cuda-gpus) of my GPU (NVIDIA GeForce RTX 3060 Ti) is 8.6.

### Part 2.1.2: Running the CUDA Project

Below is the image generated by running the CUDA project (`cuda-getting-started`) included in this repository:

![](images/getting_started_image.png)

### Part 2.1.3: Nsight Debugging

Below is the image of running the [Nsight Debugger](https://docs.nvidia.com/nsight-visual-studio-edition/index.html) on the CUDA project. It includes the information from the *Autos* window and the *Warp Info* window.

![](images/debugging_image.png)

### Part 2.1.4: Nsight Systems

Here are the images of running [Nsight Systems](https://docs.nvidia.com/nsight-systems/UserGuide/index.html) on my computer while running the CUDA project. The first one is from the *Analysis Summary* tab, and the second one is from the *Timeline* tab. The entire generated report is available [here](reports/nsight_systems_report.nsys-rep) as `reports/nsight_systems_report.nsys-rep`.

![](images/nsight_systems_summary_image.png)

![](images/nsight_systems_timeline_image.png)

### Part 2.1.5: Nsight Compute

Here are the images of running [Nsight Compute](https://docs.nvidia.com/nsight-compute/) on my computer while running the CUDA project. The first one is from the *Summary* tab, and the second one is from the *Details* tab. The entire generated report is available [here](reports/nsight_compute_output.ncu-rep) as `reports/nsight_compute_output.ncu-rep`.

![](images/nsight_compute_summary_image.png)

![](images/nsight_compute_details_image.png)

### Part 2.2: WebGL

Here are the screenshots for checking the status of WebGL support on my computer. The first one is from https://webglreport.com and the second one is from chrome:\\\\gpu. You can see that WebGL is supported on my machine, and the generated report from `chrome:\\gpu` is available [here](reports/about-gpu.txt) as `reports/about-gpu.txt`.

![](images/chrome_webglreport_image.png)

![](images/chrome_gpu_image.png)

### Part 2.3: WebGPU

Here are the screenshots for checking the status of WebGPU support on my computer. The first one is from https://webgpureport.org and the second one is from the `cornell` sample on https://webgpu.github.io/webgpu-samples/. You can see that WebGPU is supported on my machine, and the generated report from `https://webgpureport.org` is available [here](reports/webgpureport.txt) as `reports/webgpureport.txt`.

![](images/webgpu_report_image.png)

![](images/webgpu_sample_image.png)
3 changes: 1 addition & 2 deletions cuda-getting-started/src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@
* C main function.
*/
int main(int argc, char* argv[]) {
// TODO: Change this line to use your name!
m_yourName = "TODO: YOUR NAME HERE";
m_yourName = "Jordan Hochman";

if (init(argc, argv)) {
mainLoop();
Expand Down
Binary file added images/chrome_gpu_image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/chrome_webglreport_image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/debugging_image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/getting_started_image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/nsight_compute_details_image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/nsight_compute_summary_image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/nsight_systems_summary_image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/nsight_systems_timeline_image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/webgpu_report_image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/webgpu_sample_image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1,146 changes: 1,146 additions & 0 deletions reports/about-gpu.txt

Large diffs are not rendered by default.

Binary file added reports/nsight_compute_output.ncu-rep
Binary file not shown.
Binary file added reports/nsight_systems_report.nsys-rep
Binary file not shown.
105 changes: 105 additions & 0 deletions reports/webgpureport.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
WebGPU Report

#1 high-performance
=====================

adapter info:
---------------
* architecture: ampere
* description
* device
* vendor: nvidia

flags:
--------
* isFallbackAdapter: false

limits:
-------------------------------
* maxBindGroups: 4
* maxBindGroupsPlusVertexBuffers: 24
* maxBindingsPerBindGroup: 1000
* maxBufferSize: 2147483648 (2gb)
* maxColorAttachmentBytesPerSample: 128b
* maxColorAttachments: 8
* maxComputeInvocationsPerWorkgroup: 1k
* maxComputeWorkgroupSizeX: 1k
* maxComputeWorkgroupSizeY: 1k
* maxComputeWorkgroupSizeZ: 64
* maxComputeWorkgroupStorageSize: 32768 (32k)
* maxComputeWorkgroupsPerDimension: 65535 (64k)
* maxDynamicStorageBuffersPerPipelineLayout: 8
* maxDynamicUniformBuffersPerPipelineLayout: 10
* maxInterStageShaderComponents: 112
* maxInterStageShaderVariables: 28
* maxSampledTexturesPerShaderStage: 16
* maxSamplersPerShaderStage: 16
* maxStorageBufferBindingSize: 2147483644 (2gb)
* maxStorageBuffersPerShaderStage: 10
* maxStorageTexturesPerShaderStage: 8
* maxTextureArrayLayers: 2048 (2k)
* maxTextureDimension1D: 16384 (16k)
* maxTextureDimension2D: 16384 (16k)
* maxTextureDimension3D: 2048 (2k)
* maxUniformBufferBindingSize: 65536 (64k)
* maxUniformBuffersPerShaderStage: 12
* maxVertexAttributes: 30
* maxVertexBufferArrayStride: 2048 (2k)
* maxVertexBuffers: 8
* minStorageBufferOffsetAlignment: 256b
* minUniformBufferOffsetAlignment: 256b

features:
---------------------------------
* bgra8unorm-storage
* depth-clip-control
* depth32float-stencil8
* float32-filterable
* indirect-first-instance
* rg11b10ufloat-renderable
* shader-f16
* texture-compression-bc
* timestamp-query

WGSL language features:
-------------------------
* packed_4x8_integer_dot_product
* pointer_composite_access
* readonly_and_readwrite_storage_textures
* unrestricted_pointer_parameters

misc:
-------
* fallback adapter: not supported
* getPreferredCanvasFormat: bgra8unorm

dedicated workers:
====================
* webgpu API: exists
* requestAdapter: successful
* requestDevice: successful
* getContext("webgpu"): successful
* requestAnimationFrame: successful
* transferControlToOffscreen: successful
* OffscreenCanvas: successful
* CanvasRenderingContext2D: successful

shared workers:
=================
* webgpu API: exists
* requestAdapter: successful
* requestDevice: successful
* getContext("webgpu"): successful
* transferControlToOffscreen: successful
* OffscreenCanvas: successful
* CanvasRenderingContext2D: successful

service workers:
==================
* webgpu API: exists
* requestAdapter: successful
* requestDevice: successful
* getContext("webgpu"): successful
* transferControlToOffscreen: successful
* OffscreenCanvas: successful
* CanvasRenderingContext2D: successful