From 3217e38217e916954c94407f485ba9785183d6ec Mon Sep 17 00:00:00 2001 From: Nathan Marshak Date: Mon, 9 Sep 2013 22:40:57 -0400 Subject: [PATCH 1/3] CUDA test works on Fedora 18. --- PROJ0_LINUX/CUDA_test_screenshot.png | Bin 0 -> 16645 bytes PROJ0_LINUX/bin/CUDATEST | Bin 0 -> 509256 bytes PROJ0_LINUX/bin/makefile | 2 + PROJ0_LINUX/makefile | 30 +++ PROJ0_LINUX/run.sh | 3 + PROJ0_LINUX/shaders/passthroughFS.glsl | 8 + PROJ0_LINUX/shaders/passthroughVS.glsl | 9 + PROJ0_LINUX/src/glslUtility.cpp | 154 +++++++++++++ PROJ0_LINUX/src/glslUtility.h | 16 ++ PROJ0_LINUX/src/kernel.cu | 75 +++++++ PROJ0_LINUX/src/kernel.h | 20 ++ PROJ0_LINUX/src/main.cpp | 238 +++++++++++++++++++++ PROJ0_LINUX/src/main.h | 82 +++++++ PROJ0_LINUX/src/shaders/passthroughFS.glsl | 8 + PROJ0_LINUX/src/shaders/passthroughVS.glsl | 9 + 15 files changed, 654 insertions(+) create mode 100644 PROJ0_LINUX/CUDA_test_screenshot.png create mode 100755 PROJ0_LINUX/bin/CUDATEST create mode 100644 PROJ0_LINUX/bin/makefile create mode 100644 PROJ0_LINUX/makefile create mode 100644 PROJ0_LINUX/run.sh create mode 100644 PROJ0_LINUX/shaders/passthroughFS.glsl create mode 100644 PROJ0_LINUX/shaders/passthroughVS.glsl create mode 100644 PROJ0_LINUX/src/glslUtility.cpp create mode 100644 PROJ0_LINUX/src/glslUtility.h create mode 100644 PROJ0_LINUX/src/kernel.cu create mode 100644 PROJ0_LINUX/src/kernel.h create mode 100644 PROJ0_LINUX/src/main.cpp create mode 100644 PROJ0_LINUX/src/main.h create mode 100644 PROJ0_LINUX/src/shaders/passthroughFS.glsl create mode 100644 PROJ0_LINUX/src/shaders/passthroughVS.glsl diff --git a/PROJ0_LINUX/CUDA_test_screenshot.png b/PROJ0_LINUX/CUDA_test_screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..da0b658bcf48a1b70d7dd9ff81e0d4fbbb91ee4f GIT binary patch literal 16645 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 literal 0 HcmV?d00001 diff --git a/PROJ0_LINUX/bin/CUDATEST b/PROJ0_LINUX/bin/CUDATEST new file mode 100755 index 0000000000000000000000000000000000000000..9b617953289c50e5075abb1614b92ea33253c215 GIT binary patch literal 509256 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%0AfP!_GkVT*Y5F~_NOqR?eV#IrVbvU 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�=ZsG3_^U0qtfVtPgS^3oMGRYif)igKIO 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

t_c|L*EHKA1T3=IKH2n{SOvdgH-uPk0Lc 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Ⓢ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 BPPqU8 literal 0 HcmV?d00001 diff --git a/PROJ0_LINUX/bin/makefile b/PROJ0_LINUX/bin/makefile new file mode 100644 index 0000000..e6e4aea --- /dev/null +++ b/PROJ0_LINUX/bin/makefile @@ -0,0 +1,2 @@ +CC = /usr/bin/gcc -m64 +NVCC = $(CUDA_HOME)/bin/nvcc -m64 diff --git a/PROJ0_LINUX/makefile b/PROJ0_LINUX/makefile new file mode 100644 index 0000000..6101ed7 --- /dev/null +++ b/PROJ0_LINUX/makefile @@ -0,0 +1,30 @@ +NVCC = $(CUDA_HOME)/bin/nvcc -m64 +CC = /usr/bin/gcc -m64 + +#GLFW_INCLUDE_PATH = -Iglfw/include/ +#GLFW_LIB_PATH = -Lglfw/lib/ +#GLFW_INCLUDE_PATH = -Iglfw +#GLFW_LIB_PATH = -Lglfw +GLFW = $(GLFW_INCLUDE_PATH) $(GLFW_LIB_PATH) + +CUDA_SAMPLES = -I$(CUDA_HOME)/samples/common/inc +CUDA_INCLUDE = -I/usr/local/cuda/include +CUDASDK_C_LIB_PATH = -L/Developer/GPU\ Computing/C/lib +CUDASDK_C_INCLUDE_PATH = -I/Developer/GPU\ Computing/C/common/inc +CUDA = $(CUDA_INCLUDE) $(CUDASDK_C_LIB_PATH) $(CUDASDK_C_INCLUDE_PATH) $(CUDA_SAMPLES) + +#XLINKER = -Xlinker -framework,OpenGL,-framework,GLUT +LIBRARIES = -lglut -lGL -lGLU -lGLEW + +LFLAGS = $(GLFW) $(CUDA) $(LIBRARIES) -lglfw + +all: CUDATEST + +CUDATEST: src/main.cpp + $(NVCC) $(GLEW_PATH) $(LFLAGS) src/main.cpp src/kernel.cu src/glslUtility.cpp -o bin/CUDATEST + +clean: + rm bin/CUDATEST + rm *.o + +.PHONY : bin/CUDATEST diff --git a/PROJ0_LINUX/run.sh b/PROJ0_LINUX/run.sh new file mode 100644 index 0000000..b501c9e --- /dev/null +++ b/PROJ0_LINUX/run.sh @@ -0,0 +1,3 @@ +#!/bin/bash +export DYLD_LIBRARY_PATH='/usr/local/cuda/lib:glfw/lib'; +./bin/CUDATEST; diff --git a/PROJ0_LINUX/shaders/passthroughFS.glsl b/PROJ0_LINUX/shaders/passthroughFS.glsl new file mode 100644 index 0000000..fd4e15b --- /dev/null +++ b/PROJ0_LINUX/shaders/passthroughFS.glsl @@ -0,0 +1,8 @@ +varying vec2 v_Texcoords; + +uniform sampler2D u_image; + +void main(void) +{ + gl_FragColor = texture2D(u_image, v_Texcoords); +} diff --git a/PROJ0_LINUX/shaders/passthroughVS.glsl b/PROJ0_LINUX/shaders/passthroughVS.glsl new file mode 100644 index 0000000..a3dbe92 --- /dev/null +++ b/PROJ0_LINUX/shaders/passthroughVS.glsl @@ -0,0 +1,9 @@ +attribute vec4 Position; +attribute vec2 Texcoords; +varying vec2 v_Texcoords; + +void main(void) +{ + v_Texcoords = Texcoords; + gl_Position = Position; +} \ No newline at end of file diff --git a/PROJ0_LINUX/src/glslUtility.cpp b/PROJ0_LINUX/src/glslUtility.cpp new file mode 100644 index 0000000..bb07511 --- /dev/null +++ b/PROJ0_LINUX/src/glslUtility.cpp @@ -0,0 +1,154 @@ +// GLSL Utility: A utility class for loading GLSL shaders, for Patrick Cozzi's CIS565: GPU Computing at the University of Pennsylvania +// Written by Varun Sampath and Patrick Cozzi, Copyright (c) 2012 University of Pennsylvania + +#include "glslUtility.h" + +#include +#include +#include +#include + +using std::ios; + +namespace glslUtility { + + typedef struct { + GLuint vertex; + GLuint fragment; + } shaders_t; + + char* loadFile(const char *fname, GLint &fSize) + { + // file read based on example in cplusplus.com tutorial + std::ifstream file (fname, ios::in|ios::binary|ios::ate); + if (file.is_open()) + { + unsigned int size = (unsigned int)file.tellg(); + fSize = size; + char *memblock = new char [size]; + file.seekg (0, ios::beg); + file.read (memblock, size); + file.close(); + //std::cout << "file " << fname << " loaded" << std::endl; + return memblock; + } + + std::cout << "Unable to open file " << fname << std::endl; + exit(1); + } + + // printShaderInfoLog + // From OpenGL Shading Language 3rd Edition, p215-216 + // Display (hopefully) useful error messages if shader fails to compile + void printShaderInfoLog(GLint shader) + { + int infoLogLen = 0; + int charsWritten = 0; + GLchar *infoLog; + + glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLogLen); + + if (infoLogLen > 1) + { + infoLog = new GLchar[infoLogLen]; + // error check for fail to allocate memory omitted + glGetShaderInfoLog(shader,infoLogLen, &charsWritten, infoLog); + //std::cout << "InfoLog:" << std::endl << infoLog << std::endl; + delete [] infoLog; + } + } + + void printLinkInfoLog(GLint prog) + { + int infoLogLen = 0; + int charsWritten = 0; + GLchar *infoLog; + + glGetProgramiv(prog, GL_INFO_LOG_LENGTH, &infoLogLen); + + if (infoLogLen > 1) + { + infoLog = new GLchar[infoLogLen]; + // error check for fail to allocate memory omitted + glGetProgramInfoLog(prog,infoLogLen, &charsWritten, infoLog); + //std::cout << "InfoLog:" << std::endl << infoLog << std::endl; + delete [] infoLog; + } + } + + shaders_t loadShaders(const char * vert_path, const char * frag_path) { + GLuint f, v; + + char *vs,*fs; + + v = glCreateShader(GL_VERTEX_SHADER); + f = glCreateShader(GL_FRAGMENT_SHADER); + + // load shaders & get length of each + GLint vlen; + GLint flen; + vs = loadFile(vert_path,vlen); + fs = loadFile(frag_path,flen); + + const char * vv = vs; + const char * ff = fs; + + glShaderSource(v, 1, &vv,&vlen); + glShaderSource(f, 1, &ff,&flen); + + GLint compiled; + + glCompileShader(v); + glGetShaderiv(v, GL_COMPILE_STATUS, &compiled); + if (!compiled) + { + std::cout << "Vertex shader not compiled." << std::endl; + } + printShaderInfoLog(v); + + glCompileShader(f); + glGetShaderiv(f, GL_COMPILE_STATUS, &compiled); + if (!compiled) + { + std::cout << "Fragment shader not compiled." << std::endl; + } + printShaderInfoLog(f); + + shaders_t out; out.vertex = v; out.fragment = f; + + delete [] vs; // dont forget to free allocated memory, or else really bad things start happening + delete [] fs; // we allocated this in the loadFile function... + + return out; + } + + void attachAndLinkProgram( GLuint program, shaders_t shaders) { + glAttachShader(program, shaders.vertex); + glAttachShader(program, shaders.fragment); + + glLinkProgram(program); + GLint linked; + glGetProgramiv(program,GL_LINK_STATUS, &linked); + if (!linked) + { + std::cout << "Program did not link." << std::endl; + } + printLinkInfoLog(program); + } + + GLuint createProgram(const char *vertexShaderPath, const char *fragmentShaderPath, const char *attributeLocations[], GLuint numberOfLocations) + { + glslUtility::shaders_t shaders = glslUtility::loadShaders(vertexShaderPath, fragmentShaderPath); + + GLuint program = glCreateProgram(); + + for (GLuint i = 0; i < numberOfLocations; ++i) + { + glBindAttribLocation(program, i, attributeLocations[i]); + } + + glslUtility::attachAndLinkProgram(program, shaders); + + return program; + } +} diff --git a/PROJ0_LINUX/src/glslUtility.h b/PROJ0_LINUX/src/glslUtility.h new file mode 100644 index 0000000..00ab7e8 --- /dev/null +++ b/PROJ0_LINUX/src/glslUtility.h @@ -0,0 +1,16 @@ +// GLSL Utility: A utility class for loading GLSL shaders, for Patrick Cozzi's CIS565: GPU Computing at the University of Pennsylvania +// Written by Varun Sampath and Patrick Cozzi, Copyright (c) 2012 University of Pennsylvania + +#ifndef GLSLUTILITY_H_ +#define GLSLUTILITY_H_ + +#include + +namespace glslUtility +{ + +GLuint createProgram(const char *vertexShaderPath, const char *fragmentShaderPath, const char *attributeLocations[], GLuint numberOfLocations); + +} + +#endif \ No newline at end of file diff --git a/PROJ0_LINUX/src/kernel.cu b/PROJ0_LINUX/src/kernel.cu new file mode 100644 index 0000000..6a5b551 --- /dev/null +++ b/PROJ0_LINUX/src/kernel.cu @@ -0,0 +1,75 @@ +// CIS565 CUDA Checker: A simple CUDA hello-world style program for Patrick Cozzi's CIS565: GPU Computing at the University of Pennsylvania +// Written by Yining Karl Li, Copyright (c) 2012 University of Pennsylvania +// This file includes code from: +// Rob Farber for CUDA-GL interop, from CUDA Supercomputing For The Masses: http://www.drdobbs.com/architecture-and-design/cuda-supercomputing-for-the-masses-part/222600097 + +#include +#include +#include +//#include +#include "kernel.h" +#include + +void checkCUDAError(const char *msg) { + cudaError_t err = cudaGetLastError(); + if( cudaSuccess != err) { + fprintf(stderr, "Cuda error: %s: %s.\n", msg, cudaGetErrorString( err) ); + exit(EXIT_FAILURE); + } +} + +//Kernel that writes the image to the OpenGL PBO directly. +__global__ void createVersionVisualization(uchar4* PBOpos, int width, int height, int major, int minor){ + + int x = (blockIdx.x * blockDim.x) + threadIdx.x; + int y = (blockIdx.y * blockDim.y) + threadIdx.y; + int index = x + (y * width); + + if(x<=width && y<=height){ + // Each thread writes one pixel location in the texture (textel) + PBOpos[index].w = 0; + PBOpos[index].x = 0; + PBOpos[index].y = 0; + PBOpos[index].z = 0; + + if(y>>(PBOpos, width, height, major, minor); + // make certain the kernel has completed + cudaThreadSynchronize(); + + checkCUDAError("Kernel failed!"); +} diff --git a/PROJ0_LINUX/src/kernel.h b/PROJ0_LINUX/src/kernel.h new file mode 100644 index 0000000..0e305ed --- /dev/null +++ b/PROJ0_LINUX/src/kernel.h @@ -0,0 +1,20 @@ +// CIS565 CUDA Checker: A simple CUDA hello-world style program for Patrick Cozzi's CIS565: GPU Computing at the University of Pennsylvania +// Written by Yining Karl Li, Copyright (c) 2012 University of Pennsylvania +// This file includes code from: +// Rob Farber for CUDA-GL interop, from CUDA Supercomputing For The Masses: http://www.drdobbs.com/architecture-and-design/cuda-supercomputing-for-the-masses-part/222600097 + +#ifndef KERNEL_H +#define KERNEL_H + +#include +#include + +#if CUDA_VERSION >= 5000 + #include +#else + #include +#endif + +void cudaKernel(uchar4* pos, int width, int height, int major, int minor); + +#endif //KERNEL_H diff --git a/PROJ0_LINUX/src/main.cpp b/PROJ0_LINUX/src/main.cpp new file mode 100644 index 0000000..b9d5031 --- /dev/null +++ b/PROJ0_LINUX/src/main.cpp @@ -0,0 +1,238 @@ +// CIS565 CUDA Checker: A simple CUDA hello-world style program for Patrick Cozzi's CIS565: GPU Computing at the University of Pennsylvania +// Written by Yining Karl Li, Copyright (c) 2013 University of Pennsylvania +// This file includes code from: +// Rob Farber for CUDA-GL interop, from CUDA Supercomputing For The Masses: http://www.drdobbs.com/architecture-and-design/cuda-supercomputing-for-the-masses-part/222600097 +// Varun Sampath and Patrick Cozzi for GLSL Loading, from CIS565 Spring 2012 HW5 at the University of Pennsylvania: http://cis565-spring-2012.github.com/ + +#include "main.h" + +//------------------------------- +//-------------MAIN-------------- +//------------------------------- + +int main(int argc, char* argv[]){ + //Change this line to use your name! + yourName = "Nathan Marshak"; + + init(argc, argv); + initVAO(); + initTextures(); + initCuda(); + + GLuint passthroughProgram; + passthroughProgram = initShader("shaders/passthroughVS.glsl", "shaders/passthroughFS.glsl"); + + glUseProgram(passthroughProgram); + glActiveTexture(GL_TEXTURE0); + + glutDisplayFunc(display); + glutKeyboardFunc(keyboard); + + glutMainLoop(); + + return 0; +} + +//------------------------------- +//---------RUNTIME STUFF--------- +//------------------------------- + +void runCuda(){ + + // Map OpenGL buffer object for writing from CUDA on a single GPU + // No data is moved (Win & Linux). When mapped to CUDA, OpenGL should not use this buffer + + uchar4 *dptr=NULL; + cudaGLMapBufferObject((void**)&dptr, pbo); + + // Execute the kernel + cudaKernel(dptr, width, height, major, minor); + + // Unmap buffer object + cudaGLUnmapBufferObject(pbo); + +} + +void display(){ + runCuda(); + + glBindBuffer( GL_PIXEL_UNPACK_BUFFER, pbo); + glBindTexture(GL_TEXTURE_2D, image); + glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, + GL_RGBA, GL_UNSIGNED_BYTE, NULL); + + glClear(GL_COLOR_BUFFER_BIT); + + // VAO, shader program, and texture already bound + glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0); + + glutPostRedisplay(); + glutSwapBuffers(); +} + +void keyboard(unsigned char key, int x, int y) +{ + std::cout << key << std::endl; + switch (key) + { + case(27): + exit(1); + break; + } +} + +//------------------------------- +//----------SETUP STUFF---------- +//------------------------------- + +void init(int argc, char* argv[]){ + glutInit(&argc, argv); + glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA); + glutInitWindowSize(width, height); + + // Set window title to "Student Name: GPU Name" + string deviceName; + cudaDeviceProp deviceProp; + int gpudevice = 0; + int device_count = 0; + cudaGetDeviceCount( &device_count); + if (gpudevice > device_count) + { + printf("Error: GPU device number is greater than the number of devices! Perhaps a CUDA-capable GPU is not installed?\n"); + exit(1); + } + cudaGetDeviceProperties(&deviceProp, gpudevice); + deviceName = deviceProp.name; + deviceName = yourName + ": " + deviceProp.name; + major = deviceProp.major; + minor = deviceProp.minor; + glutCreateWindow(deviceName.c_str()); + + // Init GLEW + glewInit(); + GLenum err = glewInit(); + if (GLEW_OK != err) + { + /* Problem: glewInit failed, something is seriously wrong. */ + std::cout << "glewInit failed, aborting." << std::endl; + exit (1); + } +} + +void initPBO(GLuint* pbo){ + if (pbo) { + // set up vertex data parameter + int num_texels = width*height; + int num_values = num_texels * 4; + int size_tex_data = sizeof(GLubyte) * num_values; + + // Generate a buffer ID called a PBO (Pixel Buffer Object) + glGenBuffers(1,pbo); + // Make this the current UNPACK buffer (OpenGL is state-based) + glBindBuffer(GL_PIXEL_UNPACK_BUFFER, *pbo); + // Allocate data for the buffer. 4-channel 8-bit image + glBufferData(GL_PIXEL_UNPACK_BUFFER, size_tex_data, NULL, GL_DYNAMIC_COPY); + cudaGLRegisterBufferObject( *pbo ); + } +} + +void initCuda(){ + // Use device with highest Gflops/s +#if CUDA_VERSION >= 5000 + cudaGLSetGLDevice( gpuGetMaxGflopsDeviceId() ); +#else + cudaGLSetGLDevice( cutGetMaxGflopsDeviceId() ); +#endif + + initPBO(&pbo); + + // Clean up on program exit + atexit(cleanupCuda); + + runCuda(); +} + +void initTextures(){ + glGenTextures(1,&image); + glBindTexture(GL_TEXTURE_2D, image); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_BGRA, + GL_UNSIGNED_BYTE, NULL); +} + +void initVAO(void){ + GLfloat vertices[] = + { + -1.0f, -1.0f, + 1.0f, -1.0f, + 1.0f, 1.0f, + -1.0f, 1.0f, + }; + + GLfloat texcoords[] = + { + 1.0f, 1.0f, + 0.0f, 1.0f, + 0.0f, 0.0f, + 1.0f, 0.0f + }; + + GLushort indices[] = { 0, 1, 3, 3, 1, 2 }; + + GLuint vertexBufferObjID[3]; + glGenBuffers(3, vertexBufferObjID); + + glBindBuffer(GL_ARRAY_BUFFER, vertexBufferObjID[0]); + glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); + glVertexAttribPointer((GLuint)positionLocation, 2, GL_FLOAT, GL_FALSE, 0, 0); + glEnableVertexAttribArray(positionLocation); + + glBindBuffer(GL_ARRAY_BUFFER, vertexBufferObjID[1]); + glBufferData(GL_ARRAY_BUFFER, sizeof(texcoords), texcoords, GL_STATIC_DRAW); + glVertexAttribPointer((GLuint)texcoordsLocation, 2, GL_FLOAT, GL_FALSE, 0, 0); + glEnableVertexAttribArray(texcoordsLocation); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vertexBufferObjID[2]); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW); +} + +GLuint initShader(const char *vertexShaderPath, const char *fragmentShaderPath){ + GLuint program = glslUtility::createProgram(vertexShaderPath, fragmentShaderPath, attributeLocations, 2); + GLint location; + glUseProgram(program); + + if ((location = glGetUniformLocation(program, "u_image")) != -1) + { + glUniform1i(location, 0); + } + + return program; +} + +//------------------------------- +//---------CLEANUP STUFF--------- +//------------------------------- + +void cleanupCuda(){ + if(pbo) deletePBO(&pbo); + if(image) deleteTexture(&image); +} + +void deletePBO(GLuint* pbo){ + if (pbo) { + // unregister this buffer object with CUDA + cudaGLUnregisterBufferObject(*pbo); + + glBindBuffer(GL_ARRAY_BUFFER, *pbo); + glDeleteBuffers(1, pbo); + + *pbo = (GLuint)NULL; + } +} + +void deleteTexture(GLuint* tex){ + glDeleteTextures(1, tex); + *tex = (GLuint)NULL; +} + diff --git a/PROJ0_LINUX/src/main.h b/PROJ0_LINUX/src/main.h new file mode 100644 index 0000000..4cb7d59 --- /dev/null +++ b/PROJ0_LINUX/src/main.h @@ -0,0 +1,82 @@ +// CIS565 CUDA Checker: A simple CUDA hello-world style program for Patrick Cozzi's CIS565: GPU Computing at the University of Pennsylvania +// Written by Yining Karl Li, Copyright (c) 2012 University of Pennsylvania +// This file includes code from: +// Rob Farber for CUDA-GL interop, from CUDA Supercomputing For The Masses: http://www.drdobbs.com/architecture-and-design/cuda-supercomputing-for-the-masses-part/222600097 +// Varun Sampath and Patrick Cozzi for GLSL Loading, from CIS565 Spring 2012 HW5 at the University of Pennsylvania: http://cis565-spring-2012.github.com/ + +#ifndef MAIN_H +#define MAIN_H + +#include +#include +#include +#include + +#if CUDART_VERSION >= 5000 + #include + #include +#else + #include + #include +#endif + +#include +#include +#include +#include "kernel.h" +#include "glslUtility.h" + +using namespace std; + +//------------------------------- +//------------GL STUFF----------- +//------------------------------- + +GLuint positionLocation = 0; +GLuint texcoordsLocation = 1; +const char *attributeLocations[] = { "Position", "Tex" }; +GLuint pbo = (GLuint)NULL; +GLuint image; + +//------------------------------- +//----------CUDA STUFF----------- +//------------------------------- + +int major; int minor; +int width=800; int height=800; +string yourName; + +//------------------------------- +//-------------MAIN-------------- +//------------------------------- + +int main(int argc, char* argv[]); + +//------------------------------- +//---------RUNTIME STUFF--------- +//------------------------------- + +void runCuda(); +void display(); +void keyboard(unsigned char key, int x, int y); + +//------------------------------- +//----------SETUP STUFF---------- +//------------------------------- + +void init(int argc, char* argv[]); +void initPBO(GLuint* pbo); +void initCuda(); +void initTextures(); +void initVAO(); +GLuint initShader(const char *vertexShaderPath, const char *fragmentShaderPath); + +//------------------------------- +//---------CLEANUP STUFF--------- +//------------------------------- + +void cleanupCuda(); +void deletePBO(GLuint* pbo); +void deleteTexture(GLuint* tex); + +#endif \ No newline at end of file diff --git a/PROJ0_LINUX/src/shaders/passthroughFS.glsl b/PROJ0_LINUX/src/shaders/passthroughFS.glsl new file mode 100644 index 0000000..fd4e15b --- /dev/null +++ b/PROJ0_LINUX/src/shaders/passthroughFS.glsl @@ -0,0 +1,8 @@ +varying vec2 v_Texcoords; + +uniform sampler2D u_image; + +void main(void) +{ + gl_FragColor = texture2D(u_image, v_Texcoords); +} diff --git a/PROJ0_LINUX/src/shaders/passthroughVS.glsl b/PROJ0_LINUX/src/shaders/passthroughVS.glsl new file mode 100644 index 0000000..a3dbe92 --- /dev/null +++ b/PROJ0_LINUX/src/shaders/passthroughVS.glsl @@ -0,0 +1,9 @@ +attribute vec4 Position; +attribute vec2 Texcoords; +varying vec2 v_Texcoords; + +void main(void) +{ + v_Texcoords = Texcoords; + gl_Position = Position; +} \ No newline at end of file From 6347e7464835b48bc2a435f40cdb905408f7e77e Mon Sep 17 00:00:00 2001 From: Nathan Marshak Date: Mon, 9 Sep 2013 22:57:48 -0400 Subject: [PATCH 2/3] Added small HOWTO on getting it to work in Fedora 18 --- FEDORA_18_HOWTO | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 FEDORA_18_HOWTO diff --git a/FEDORA_18_HOWTO b/FEDORA_18_HOWTO new file mode 100644 index 0000000..3990b94 --- /dev/null +++ b/FEDORA_18_HOWTO @@ -0,0 +1,10 @@ +Here's what I had to do to get this homework assignment to build on Fedora 18: + +All the steps, based on http://www.r-tutor.com/gpu-computing/cuda-installation/cuda5.5-fc18: + +1. Uninstall the Nvidia drivers that I had installed from the RPMFusion repository. +2. Install the Nvidia drivers from the CUDA repository. The installer will fail to build the Nvidia Kernel modules because Fedora 18 currently runs kernel 3.10. Therefore, I had to apply this patch: http://pastebin.com/N0a5KMZa then manually execute the rest of the install scripts inside the RPM package. +3. Install CUDA per the tutorial in the link. +4. I couldn't get GLFW to work, so I used the Windows version as a starting point instead of the Mac Version :-P +5. I customized the Mac version's makefile to get it to compile. +6. I couldn't get Git to authenticate over HTTPS for some bizarre reason. I did it through SSH, by generating keys first: https://help.github.com/articles/generating-ssh-keys From e7b74f1b697cc21af3739554b88d70b530231cc4 Mon Sep 17 00:00:00 2001 From: Nathan Marshak Date: Wed, 11 Sep 2013 21:43:09 -0400 Subject: [PATCH 3/3] Updated README. --- README.md | 100 ++---------------------------------------------------- 1 file changed, 3 insertions(+), 97 deletions(-) diff --git a/README.md b/README.md index 5ac0a6d..6c33ced 100644 --- a/README.md +++ b/README.md @@ -1,97 +1,3 @@ -CIS565: Homework 0: Setting up CUDA and running CUDATEST -Fall 2013 - -Due Monday, 09/09/2013 -------------------------------------------------------------------------------- - -------------------------------------------------------------------------------- -NOTE: -------------------------------------------------------------------------------- -This homework requires an NVIDIA graphics card with CUDA capability! Any card after the Geforce 8xxx series will work. If you do not have an NVIDIA graphics card in the machine you are working on, fell free to use any machine in the SIG Lab or in Moore100 labs. All machines in the SIG Lab and Moore100 are equipped with CUDA capable NVIDIA graphics cards. If this too proves to be a problem, please contact Patrick or Liam as soon as possible. - -------------------------------------------------------------------------------- -INTRODUCTION: -------------------------------------------------------------------------------- -This homework is meant to get you started with CUDA through some simple tasks. In this homework, you will install the necessary CUDA 5.5 tools and drivers needed for the class, check out a test CUDA program from Github, build, and run the test program, and check the results back into Github. None of these steps are difficult, but there is a lot to do, so let's get started! - -A quick note: all of the projects for this semester will use CUDA 4.0 as their baseline, since that is the version of CUDA installed in the Moore100 labs. Versions of CUDA later than 4.0 will work too, but for Windows you may have to tweak the Visual Studio project file settings slightly. - -------------------------------------------------------------------------------- -PART 1- INSTALL CUDA: -------------------------------------------------------------------------------- -WINDOWS: - -* 1. Make sure you are running Windows XP/Vista/7 and that your graphics drivers are up to date. You will need support for OpenGL 3.2 or better in this class. -* 2. Make sure you have installed Visual Studio 2010 (available for free to Penn Engineering students from MSDN Academic Alliance). Visual Studio 2012 should also be compatible with a little elbow grease and supports some of the newer features of C++11. -* 3. Install the CUDA 4.0 (or greater) For Windows Toolkit, Development Drivers, and SDK from http://developer.nvidia.com/cuda/cuda-downloads or https://developer.nvidia.com/cuda-toolkit-archive. Make sure you download and install the appropriate versions of each package for your machine. (As of version 5.5 all three components are bundeled together in one package). -* 4. You're good to go! All Windows base code for CIS565 will make use of Visual Studio 2010 and will be distributed as Visual Studio 2010 projects. - -OSX: **NOTE: Karl was wonderful enough to provide OSX base code, however I've never developed on a Mac before** - -* 1. Make sure you are running OSX 10.7 or 10.8. We will need OpenGL 3.2 support in this class, so 10.7 or 10.8 are mandatory if you plan on using OSX as your development platform. -* 2. Make sure you have installed XCode 4.2 (available for free from the App Store). -* 3. Make sure you have installed the OSX Unix Command Line Development Tools (XCode->Preferences->Downloads->Command Line Tools->Install). -* 4. Install the CUDA 4.0 (or greater) For Mac Toolkit, Development Drivers, and SDK from http://developer.nvidia.com/cuda/cuda-downloads or https://developer.nvidia.com/cuda-toolkit-archive. (As of version 5.5 all three components are bundeled together in one package). -* 5. You're good to go! All OSX base code for CIS565 will make use of the Unix make toolchain, hence the need for OSX Unix Command Line Development Tools. - -------------------------------------------------------------------------------- -PART 2- FORK/CLONE PROJECT 0: -------------------------------------------------------------------------------- - -* 1. Using GitHub fork this repository into your own account. -* 2. Clone from GitHub onto your machine. - -------------------------------------------------------------------------------- -PART 3- BUILD/RUN CUDATEST: -------------------------------------------------------------------------------- -CUDATEST is a simple program that demonstrates CUDA and OpenGL functionality and interoperability on systems that CUDA has been properly installed on. If the machine you are working on has CUDA properly set up and has OpenGL 3.2 support, then when you run CUDATEST, you should see a window displaying either two horizonal colored bars OR one solid color. What gets displayed depends on your graphics card, so your results will most likely vary from some or many of your classmates. The window title should be a combination of your name and the model of your graphics card. - -Please note: The Windows version of Homework 0 uses GLEW/freeglut, whereas the OSX version of Homework 0 uses GLFW. The two versions of CUDATEST are functionally the same and share the same CUDA code, but the GL harnesses for each are slightly different. - -WINDOWS: - -Contents: - -The Windows version of CUDATEST is in the HW0_WIN/ folder. The contents of the folder are the following: - -* Build/ contains CUDA 4.0 build rules. Normally the CUDA build rules do not need to be included, but the Moore100 machines have broken CUDA 4.0 rules. The ones included with the project files are fixed to work properly in Moore100. -* CUDATEST/ contains the actual source code for CUDATEST -* shared/ contains the libraries and includes for freeglut and glew - -To Build: - -Open CUDATEST.sln in Visual Studio 2010. The project should build straight from Visual Studio 2010 without modification. - -To Run: - -CUDATEST should run straight from Visual Studio 2010 without modification after building if CUDA has been installed properly on your machine. - -OSX: - -Contents: - -The OSX version of CUDATEST is in the HW0_MAC/ folder. The contents of the folder are the following: -* bin/ is where the binary will be built to and run from. -* glfw/ contains the glfw OpenGL library's header and library files. -* shaders/ contains two simple GLSL shaders required for the OpenGL component of CUDATEST to run -* src/ contains the actual source code for CUDATEST - -To Build: - -The makefile for CUDATEST has already been created and set up for you. If you installed the CUDA SDK to its default location, you should be able to simply run the command "make" inside of the OSX/ folder in order to build CUDATEST. If you installed the CUDA SDK to a custom location, you will have to modify the makefile accordingly. - -To Run: - -Once you have successfully build CUDATEST, you can run CUDATEST by running the script run.sh in the OSX/ folder. run.sh will set up the necessary environment variables required to run CUDATEST, and then will run CUDATEST. Run.sh can be run with the command "./run.sh". You may need to run "chmod +x run.sh" beforehand, depending on how your system is set up. - -------------------------------------------------------------------------------- -PART 4- MODIFY CUDATEST, RUN, SCREENSHOT, AND SUBMIT -------------------------------------------------------------------------------- - -* 1. Line 15 of main.cpp contains a variable string set by default to "Your Name Here". Replace "Your Name Here" with your name, rebuild, and run CUDATEST. Take a screenshot of CUDATEST working on your machine. -* 2. ADD your screenshot to your Git repository and check in your modified main.cpp and added screenshot. -* 2.5 If you are using Windows, make sure your modified CUDATEST can run in Moore100 or the SIG Lab. -* 3. Open a Pull Request so we can see that you have finished. -* 4. Send an email to Liam With your name, github account name, and the grade you believe you deserve. -* 5. You're done with Homework 0! - +A small CUDA test project for the GPU Programming class (CIS565) at UPenn. I've +forked the official class repo and have added my own version of the test for +Fedora 18.