Hi, I am starting using CUDA, but I have a problem while I am trying to buld this Hello World:
// includes, system
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
// includes, project
#include <cutil.h>
// includes, kernels
#include <kernel.cu>
////////////////////////////////////////////////////////////////////////////////
// Program main
////////////////////////////////////////////////////////////////////////////////
int main(int argc, char** argv)
{
CUT_DEVICE_INIT(argc, argv);
// setup execution parameters
dim3 threads( 1, 2, 4 );
dim3 grid( 2, 1 );
// execute the kernel
helloWorld<<< grid, threads >>>( );
// check if kernel execution generated an error
CUT_CHECK_ERROR("Kernel execution failed");
return EXIT_SUCCESS;
}
#include <stdio.h>
////////////////////////////////////////////////////////////////////////////////
//! Simple test kernel for device functionality
////////////////////////////////////////////////////////////////////////////////
__global__ void helloWorld( )
{
// Synchronize to make sure data is loaded
__syncthreads();
// printf only works in Emulation mode, you must comment out all
// printfs this when running on actual GPU.
printf("Hello World! I am a thread with BlockID: {%d, %d}, ThreadID: {%d, %d, %d}\n",
blockIdx.x, blockIdx.y, threadIdx.x, threadIdx.y, threadIdx.z);
// Synchronize to make sure that the preceding
// computation is done before loading data for
// the next iteration
__syncthreads();
}
With this makefile.
############################################################
####################
#
# Copyright 1993-2006 NVIDIA Corporation. All rights reserved.
#
# NOTICE TO USER:
# This source code is subject to NVIDIA ownership rights under U.S. and
#
# international Copyright laws.
#
# NVIDIA MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE
# CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR
# IMPLIED WARRANTY OF ANY KIND. NVIDIA DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
# IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
# OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
# OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
# OR PERFORMANCE OF THIS SOURCE CODE.
#
# U.S. Government End Users. This source code is a "commercial item" as
# that term is defined at 48 C.F.R. 2.101 (OCT 1995), consisting of
# "commercial computer software" and "commercial computer software
# documentation" as such terms are used in 48 C.F.R. 12.212 (SEPT 1995)
# and is provided to the U.S. Government only as a commercial end item.
# Consistent with 48 C.F.R.12.212 and 48 C.F.R. 227.7202-1 through
# 227.7202-4 (JUNE 1995), all U.S. Government End Users acquire the
# source code with only those rights set forth herein.
#
############################################################
####################
#
# Build script for project
#
############################################################
####################
# Add source files here
EXECUTABLE := helloWorld
# CUDA source files (compiled with cudacc)
CUFILES := kernel.cu
# CUDA dependency files
CU_DEPS :=
# C/C++ source files (compiled with gcc / c++)
CCFILES := cpu.c
############################################################
####################
# Rules and targets
include ../../common/common.mk
When I run make emu=1 I get this error.
I don’t think the problem is with the SDK because I can build the sample projects and my hellWorld is in the project SDK directory.
Do you have idea on how to solve my problem?