Right off the back, when you build your CUDA project within Eclipse, it will FAIL! Determined not to use vi, I trolled Google for help. Additionally, I attempted to mimic a build similar to a simple Hello World Project.
Assumptions: Drop this Makefile (located after the Example Project Creation) at the top of your Project Directory to have a successful build.
MAC OS X
1. Create a new C++ Project
- ctrl + mouse click --> New --> C++ Project
2. Create an Empty Project
- Select Empty Project
- Create a project name
- Click Next
3. Click Advanced Settings
4. Remove Automatic Makefile Generation
- C/C++ Build --> Makefile Generation
- Uncheck Generate Makefile automatically
5. Apply and OK
6. Finish
7. Create a source directory within your project
- ctrl+mouse click on project --> New --> Source Folder
- Name the folder
- Finish
8. Create C++ source files within the source folder
9. Create a regular file for the associated Makefile
- ctrl+mouse click on the project --> New -->File
- Name the file Makefile
10. Copy the example Makefile from below into your Project
(using your own information)
##############################################
#
# Makefile for CUDA
#
# A hack created by Mark Lagatuz to compile .cu files within Eclipse
#
# This makefile assumes you separate the device and host code into
# separate files:
#
# HOST: _H appended to file name (code_H.cu)
# DEVICE: _D appended to file name (code_D.cu)
#
# Replace the following with your own information:
#
# CUDA_INSTALL_PATH: /path/to/your/cuda/installation
# PROGRAM: Name of Executable
#
##############################################
# CUDA Installation Path
CUDA_INSTALL_PATH = /usr/local/cuda
# Source Folder (Relative to where Makefile is located)
SRC_FOLDER = src
# Compiler
NVCC = $(CUDA_INSTALL_PATH)/bin/nvcc
# Includes
INCLUDE = $(CUDA_INSTALL_PATH)/include
# Program or Executable
PROGRAM = mandelbrotCUDA
# Device Code
DEVICE = _D
# Host Code
HOST = _H
all : $(PROGRAM)
# Create Executable by linking *.o (host and device object's)
$(PROGRAM) : $(PROGRAM)$(DEVICE).o $(PROGRAM)$(HOST).o
$(NVCC) -o $(PROGRAM) $^
# Compile device code to an object
$(PROGRAM)$(DEVICE).o : $(SRC_FOLDER)/$(PROGRAM)$(DEVICE).cu
$(NVCC) -I $(INCLUDE) -o $@ -c $< # Compile host code to an object $(PROGRAM)$(HOST).o : $(SRC_FOLDER)/$(PROGRAM)$(HOST).cu $(NVCC) -I $(INCLUDE) -o $@ -c $< # Remove *.o files and executables clean : rm *.o $(PROGRAM) -- Resources
1. MAC OS X
- /Developer/GPU Computing/C/common/common.mk (I utilized this file to help build my Makefile
2. Life of a Programmer Greek
- http://lifeofaprogrammergeek.blogspot.com/2008/07/using-eclipse-for-cuda-development.html
3. How to set up CUDA in Eclipse
- http://imonad.com/blog/how-to-set-cuda-in-eclipse/
No comments:
Post a Comment