From a3b87706bf481f31f5e750fed44dbe85ed6c2811 Mon Sep 17 00:00:00 2001 From: Terry Sun Date: Mon, 31 Aug 2015 14:14:35 -0400 Subject: [PATCH] Do assignment. --- README.md | 239 +-------------------------------------------- images/profile.png | Bin 0 -> 44499 bytes images/program.png | Bin 0 -> 13809 bytes src/main.cpp | 3 +- 4 files changed, 6 insertions(+), 236 deletions(-) create mode 100644 images/profile.png create mode 100644 images/program.png diff --git a/README.md b/README.md index 10dae8f..cf62bc4 100644 --- a/README.md +++ b/README.md @@ -3,240 +3,11 @@ CUDA Getting Started **University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 0** -* (TODO) YOUR NAME HERE -* Tested on: (TODO) Windows 22, i7-2222 @ 2.22GHz 22GB, GTX 222 222MB (Moore 2222 Lab) +Terry Sun; Arch Linux, Intel i5-4670, GTX 750 -### (TODO: Your README) +Images +------ -Include screenshots, analysis, etc. (Remember, this is public, so don't put -anything here that you don't want to share with the world.) +![](images/program.png) -Instructions (delete me) -======================== - -This is due **Wednesday, September 2**. - -**Summary:** In this project, you will set up your CUDA development tools and -verify that you can build, run, and do performance analysis. - -This project is a simple program that demonstrates CUDA and OpenGL functionality -and interoperability, testing that CUDA has been properly installed. If the -machine you are working on has CUDA and OpenGL 4.0 support, then when you run -the program, you should see either one or two colors depending on your -graphics card. - -This project (and all other CUDA projects in this course) requires an NVIDIA -graphics card with CUDA capability. Any card with Compute Capability 2.0 -(`sm_20`) or greater will work. Gheck your GPU on this [compatibility -table](https://developer.nvidia.com/cuda-gpus). If you do not have a personal -machine with these specs, you may use computers in the SIG Lab and Moore -100B/C. - -**If you need to use the lab computer for your development:** - -* Make sure that the computer you are on has a supported GPU! The first few - machines in each room should support CUDA Compute Capability 2.0. To check - the GPU model in a lab computer, open the NVIDIA Control Panel. The GPU model - is shown on the initial screen. (NVS 210 will work; GeForce 9300 GE will not.) -* You will not presently be able to do GPU performance profiling. This will be - very important for debugging performance bottlenecks in your program. If you - do not have administrative access to any CUDA-capable machine, please email - the TA. - - -## Part 1: Setting up your development environment - -Skip this part if you are developing on a lab computer. - -### Windows - -1. Make sure you are running Windows 7/8/10 and that your NVIDIA drivers are - up-to-date. You will need support for OpenGL 4.0 or better in this course. -2. Install Visual Studio 2013 (**not** 2015). - * 2010/2012 will also work, if you already have one installed. - * http://www.seas.upenn.edu/cets/software/msdn/ - * You need C++ support. None of the optional components are necessary. -3. Install [CUDA 7](https://developer.nvidia.com/cuda-downloads?sid=925343). - * CUDA 7.5 is recommended for its new performance profiling tools. - However, 7.0 is fine (and is the version on the lab computers). - * Use the Express installation. If using Custom, make sure you select - Nsight for Visual Studio. -4. Install [CMake](http://www.cmake.org/download/). (Windows binaries are - under "Binary distributions.") -5. Install [Git](https://git-scm.com/download/win). - -### OS X - -1. Make sure you are running OS X 10.9 or newer. -2. Install XCode (available for free from the App Store). - * On 10.10, this may not actually be necessary. Try running `gcc` - in a terminal first. -3. Install OS X Unix Command Line Development Tools (if necessary). -4. Install [CUDA 7](https://developer.nvidia.com/cuda-downloads?sid=925343) - (don't use cask; the CUDA cask is outdated). - * CUDA 7.5 is recommended for its new performance profiling tools. - * Make sure you select Nsight. -5. Install [Git](https://git-scm.com/download/mac) - (or: `brew install git`). -6. Install [CMake](http://www.cmake.org/download/) - (or: `brew cask install cmake`). - -### Linux - -Note: to debug CUDA on Linux, you will need an NVIDIA GPU with Compute -Capability 5.0. - -1. Install [CUDA 7](https://developer.nvidia.com/cuda-downloads?sid=925343). - * CUDA 7.5 is recommended for its new performance profiling tools. - * Make sure you select Nsight. -2. Install Git (`apt-get install git` on Debian/Ubuntu). -3. Install CMake (`apt-get install cmake` on Debian/Ubuntu). - - -## Part 2: Fork & Clone - -1. Use GitHub to fork this repository into your own GitHub account. -2. If you haven't used Git, you'll need to set up a few things. - * On Windows: In order to use Git commands, you can use Git Bash. You can - right-click in a folder and open Git Bash there. - * On OS X/Linux: Open a terminal. - * Configure git with some basic options by running these commands: - * `git config --global push.default simple` - * `git config --global user.name "YOUR NAME"` - * `git config --global user.email "GITHUB_USER@users.noreply.github.com"` - * (Or, you can use your own address, but remember that it will be public!) -3. Clone from GitHub onto your machine: - * Navigate to the directory where you want to keep your 565 projects, then - clone your fork. - * `git clone` the clone URL from your GitHub fork homepage. - -* [How to use GitHub](https://guides.github.com/activities/hello-world/) -* [How to use Git](http://git-scm.com/docs/gittutorial) - - -## Part 3: Build & Run - -* `src/` contains the source code. -* `external/` contains the binaries and headers for GLEW and GLFW. - -**CMake note:** Do not change any build settings or add any files to your -project directly (in Visual Studio, Nsight, etc.) Instead, edit the -`src/CMakeLists.txt` file. Any files you add must be added here. If you edit it, -just rebuild your VS/Nsight project to make it update itself. - -### Windows - -1. In Git Bash, navigate to your cloned project directory. -2. Create a `build` directory: `mkdir build` - * (This "out-of-source" build makes it easy to delete the `build` directory - and try again if something goes wrong with the configuration.) -3. Navigate into that directory: `cd build` -4. Open the CMake GUI to configure the project: - * `cmake-gui ..` or `"C:\Program Files (x86)\cmake\bin\cmake-gui.exe" ..` - * Don't forget the `..` part! - * Make sure that the "Source" directory is like - `.../Project0-CUDA-Getting-Started`. - * Click *Configure*. Select your version of Visual Studio, Win64. - (**NOTE:** you must use Win64, as we don't provide libraries for Win32.) - * If you see an error like `CUDA_SDK_ROOT_DIR-NOTFOUND`, - set `CUDA_SDK_ROOT_DIR` to your CUDA install path. This will be something - like: `C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v7.5` - * Click *Generate*. -5. If generation was successful, there should now be a Visual Studio solution - (`.sln`) file in the `build` directory that you just created. Open this. - (from the command line: `explorer *.sln`) -6. Build. (Note that there are Debug and Release configuration options.) -7. Run. Make sure you run the `cis565_` target (not `ALL_BUILD`) by - right-clicking it and selecting "Set as StartUp Project". - * If you have switchable graphics (NVIDIA Optimus), you may need to force - your program to run with only the NVIDIA card. In NVIDIA Control Panel, - under "Manage 3D Settings," set "Multi-display/Mixed GPU acceleration" - to "Single display performance mode". - -### OS X & Linux - -It is recommended that you use Nsight. - -1. Open Nsight. Set the workspace to the one *containing* your cloned repo. -2. *File->Import...->General->Existing Projects Into Workspace*. - * Select the Project 0 repository as the *root directory*. -3. Select the *cis565-* project in the Project Explorer. From the *Project* - menu, select *Build All*. - * For later use, note that you can select various Debug and Release build - configurations under *Project->Build Configurations->Set Active...*. -4. If you see an error like `CUDA_SDK_ROOT_DIR-NOTFOUND`: - * In a terminal, navigate to the build directory, then run: `cmake-gui ..` - * Set `CUDA_SDK_ROOT_DIR` to your CUDA install path. - This will be something like: `/usr/local/cuda` - * Click *Configure*, then *Generate*. -5. Right click and *Refresh* the project. -6. From the *Run* menu, *Run*. Select "Local C/C++ Application" and the - `cis565_` binary. - - -## Part 4: Modify - -1. Search the code for `TODO`: you'll find one in `src/main.cpp` on line 13. - Change the string to your name, rebuild, and run. - (`m_yourName = "TODO: YOUR NAME HERE";`) -2. Take a screenshot of the window (including title bar) and save it to the - `images` directory for Part 6. -3. You're done with some code changes now; make a commit! - * Make sure to `git add` the `main.cpp` file. - * Use `git status` to make sure you didn't miss anything. - * Use `git commit` to save a version of your code including your changes. - Write a short message describing your changes. - * Use `git push` to sync your code history to the GitHub server. - -## Part 5: Analyze - -**NOTE: This part *cannot* be done on the lab computers, as it requires -administrative access.** If you do not have a CUDA-capable computer of your -own, you may need to borrow one for this part. However, you can still do the -rest of your development on the lab computer. - -### Windows - -1. Go to the Nsight menu in Visual Studio. -2. Select *Start Performance Analysis...*. -3. Select *Trace Application*. Under *Trace Settings*, enable tracing for CUDA and OpenGL. -4. Under *Application Control*, click *Launch*. - * If you have switchable graphics (NVIDIA Optimus), see the note in Part 3. -5. Run the program for a few seconds, then close it. -6. At the top of the report page, select *Timeline* from the drop-down menu. -7. Take a screenshot of this tab and save it to `images`, for Part 6. - -### OS X & Linux - -1. Open your project in Nsight. -2. *Run*->*Profile*. -3. Run the program for a few seconds, then close it. -4. Take a screenshot of the timeline and save it to `images`, for Part 6. - - -## Part 6: Write-up - -1. Update ALL of the TODOs at the top of this README: - * Remove all of these instructions, so that your README - represents your own project, rather than the assignment. You can always - read the instructions on the original GitHub page. - * Add your name, computer, and whether it's a personal or lab computer. - * Embed the screenshots you took: `![](images/example.png)` - * Syntax help: https://help.github.com/articles/writing-on-github/ -2. Add, commit, and push your screenshots and README. - * Make sure your README looks good on GitHub! -3. If you have modified either of the `CMakeLists.txt` at all (aside from - the list of `SOURCE_FILES`), you **must** test your project in Moore 100B. - -## Submit -1. Open a GitHub pull request so that we can see that you have finished. - The title should be "Submission: YOUR NAME". -2. Send an email to the TA (gmail: kainino1+cis565@) with: - * **Subject**: in the form of `[CIS565] Project 0: PENNKEY` - * Direct link to your pull request on GitHub - * In the form of a grade (0-100+), evaluate your own performance on the - project. - (N/A for Project 0.) - * Feedback on the project itself, if any. - -And you're done! +![](images/profile.png) diff --git a/images/profile.png b/images/profile.png new file mode 100644 index 0000000000000000000000000000000000000000..1db5b87d450f76f601f776ef496060eded6451e3 GIT binary patch literal 44499 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 P05H-w(?j3=