<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">​<span style="color:rgb(36,39,41);font-size:15px;line-height:19.5px;font-family:arial,helvetica,sans-serif">Hello,</span></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"><span style="color:rgb(36,39,41);font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"><span style="color:rgb(36,39,41);font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"><span style="color:rgb(36,39,41);font-size:15px;line-height:19.5px">I am trying to write a CMake file for my project which involves using CUDA and VTK. I generate the code for VS12 but during compilation I receive couple of errors. In order to find the problem, I have separated my code into distinct CUDA and VTK sections and ran them as two different VS Solutions and they work fine. However, when I combine VTK and CUDA in a same CMake file it fails. Apparently there has been some limitations in using VTK and CUDA together in a CMake file as mentioned </span><a href="http://www.vtk.org/pipermail/vtk-developers/2013-April/013780.html" rel="nofollow" target="_blank" style="color:rgb(0,89,153);margin:0px;padding:0px;border:0px;font-size:15px;text-decoration:none;line-height:19.5px">here</a><span style="color:rgb(36,39,41);font-size:15px;line-height:19.5px">. However, there are some </span><a href="https://github.com/mrGexogen" rel="nofollow" target="_blank" style="color:rgb(0,89,153);margin:0px;padding:0px;border:0px;font-size:15px;text-decoration:none;line-height:19.5px">implementations</a><span style="color:rgb(36,39,41);font-size:15px;line-height:19.5px"> that use these two together properly (I have been able to properly run the github-rep code in my computer but when I try to apply the same method of CMake coding for my project, it fails.). Here are the CMake code that I use to generate CUDA + VTK:</span><br></font></div><div class="gmail_default"><span style="color:rgb(36,39,41);font-size:15px;line-height:19.5px"><font face="arial, helvetica, sans-serif"><br></font></span></div><div class="gmail_default" style="font-size:12.8px"><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">cmake_minimum_required(VERSION 2.8)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">project(Test)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">find_package(VTK REQUIRED)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">include(${VTK_USE_FILE})</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">find_package(CUDA REQUIRED)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">if (CUDA_FOUND)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    message("CUDA found!")</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">else()</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    message("CUDA not found, doing something alternatively")</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">endif()</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -D_FORCE_INLINES")</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} --gpu-architecture sm_20)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">CUDA_ADD_EXECUTABLE(Test <a href="http://source.cu/" target="_blank">source.cu</a>)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">target_link_libraries(</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        Test</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">       ${VTK_LIBRARIES}</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"><span style="color:rgb(36,39,41);font-size:15px;line-height:19.5px">I am using CUDA 7.5, VTK 7.0.0 and CMake 3.6.0. Here is the <a href="http://source.cu/" target="_blank">source.cu</a>. It is basically combination of VTK Hello World example (Rendering a Cylinder) and vectorAdd.cu in CUDA samples and both are working separately.</span><font color="#242729"><span style="font-size:15px;line-height:19.5px"><br></span></font></font></div><div class="gmail_default"><span style="color:rgb(36,39,41);font-size:15px;line-height:19.5px"><font face="arial, helvetica, sans-serif"><br></font></span></div><div class="gmail_default"><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">#include <stdio.h></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">#include <cuda_runtime.h></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">#include "vtkCylinderSource.h"</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">#include "vtkPolyDataMapper.h"</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">#include "vtkActor.h"</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">#include "vtkRenderer.h"</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">#include "vtkRenderWindow.h"</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">#include "vtkRenderWindowInteractor.h"</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">#include "vtkProperty.h"</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">#include "vtkCamera.h"</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">#include "vtkSmartPointer.h"</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">/**</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"> * CUDA Kernel Device code</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"> *</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"> * Computes the vector addition of A and B into C. The 3 vectors have the same</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"> * number of elements numElements.</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"> */</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">__global__ void</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">vectorAdd(const float *A, const float *B, float *C, int numElements)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">{</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    int i = blockDim.x * blockIdx.x + threadIdx.x;</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    if (i < numElements)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    {</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        C[i] = A[i] + B[i];</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    }</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">}</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">/**</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"> * Host main routine</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"> */</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">int</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">main(void)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">{</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // Error code to check return values for CUDA calls</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    cudaError_t err = cudaSuccess;</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // Print the vector length to be used, and compute its size</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    int numElements = 50000;</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    size_t size = numElements * sizeof(float);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    printf("[Vector addition of %d elements]\n", numElements);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // Allocate the host input vector A</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    float *h_A = (float *)malloc(size);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // Allocate the host input vector B</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    float *h_B = (float *)malloc(size);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // Allocate the host output vector C</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    float *h_C = (float *)malloc(size);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // Verify that allocations succeeded</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    if (h_A == NULL || h_B == NULL || h_C == NULL)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    {</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        fprintf(stderr, "Failed to allocate host vectors!\n");</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        exit(EXIT_FAILURE);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    }</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // Initialize the host input vectors</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    for (int i = 0; i < numElements; ++i)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    {</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        h_A[i] = rand()/(float)RAND_MAX;</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        h_B[i] = rand()/(float)RAND_MAX;</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    }</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // Allocate the device input vector A</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    float *d_A = NULL;</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    err = cudaMalloc((void **)&d_A, size);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    if (err != cudaSuccess)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    {</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        fprintf(stderr, "Failed to allocate device vector A (error code %s)!\n", cudaGetErrorString(err));</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        exit(EXIT_FAILURE);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    }</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // Allocate the device input vector B</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    float *d_B = NULL;</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    err = cudaMalloc((void **)&d_B, size);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    if (err != cudaSuccess)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    {</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        fprintf(stderr, "Failed to allocate device vector B (error code %s)!\n", cudaGetErrorString(err));</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        exit(EXIT_FAILURE);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    }</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // Allocate the device output vector C</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    float *d_C = NULL;</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    err = cudaMalloc((void **)&d_C, size);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    if (err != cudaSuccess)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    {</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        fprintf(stderr, "Failed to allocate device vector C (error code %s)!\n", cudaGetErrorString(err));</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        exit(EXIT_FAILURE);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    }</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // Copy the host input vectors A and B in host memory to the device input vectors in</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // device memory</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    printf("Copy input data from the host memory to the CUDA device\n");</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    err = cudaMemcpy(d_A, h_A, size, cudaMemcpyHostToDevice);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    if (err != cudaSuccess)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    {</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        fprintf(stderr, "Failed to copy vector A from host to device (error code %s)!\n", cudaGetErrorString(err));</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        exit(EXIT_FAILURE);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    }</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    err = cudaMemcpy(d_B, h_B, size, cudaMemcpyHostToDevice);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    if (err != cudaSuccess)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    {</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        fprintf(stderr, "Failed to copy vector B from host to device (error code %s)!\n", cudaGetErrorString(err));</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        exit(EXIT_FAILURE);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    }</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // Launch the Vector Add CUDA Kernel</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    int threadsPerBlock = 256;</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    int blocksPerGrid =(numElements + threadsPerBlock - 1) / threadsPerBlock;</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    printf("CUDA kernel launch with %d blocks of %d threads\n", blocksPerGrid, threadsPerBlock);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    vectorAdd<<<blocksPerGrid, threadsPerBlock>>>(d_A, d_B, d_C, numElements);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    err = cudaGetLastError();</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    if (err != cudaSuccess)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    {</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        fprintf(stderr, "Failed to launch vectorAdd kernel (error code %s)!\n", cudaGetErrorString(err));</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        exit(EXIT_FAILURE);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    }</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // Copy the device result vector in device memory to the host result vector</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // in host memory.</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    printf("Copy output data from the CUDA device to the host memory\n");</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    err = cudaMemcpy(h_C, d_C, size, cudaMemcpyDeviceToHost);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    if (err != cudaSuccess)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    {</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        fprintf(stderr, "Failed to copy vector C from device to host (error code %s)!\n", cudaGetErrorString(err));</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        exit(EXIT_FAILURE);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    }</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // Verify that the result vector is correct</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    for (int i = 0; i < numElements; ++i)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    {</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        if (fabs(h_A[i] + h_B[i] - h_C[i]) > 1e-5)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        {</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">            fprintf(stderr, "Result verification failed at element %d!\n", i);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">            exit(EXIT_FAILURE);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        }</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    }</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    printf("Test PASSED\n");</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // Free device global memory</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    err = cudaFree(d_A);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    if (err != cudaSuccess)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    {</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        fprintf(stderr, "Failed to free device vector A (error code %s)!\n", cudaGetErrorString(err));</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        exit(EXIT_FAILURE);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    }</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    err = cudaFree(d_B);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    if (err != cudaSuccess)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    {</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        fprintf(stderr, "Failed to free device vector B (error code %s)!\n", cudaGetErrorString(err));</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        exit(EXIT_FAILURE);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    }</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    err = cudaFree(d_C);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    if (err != cudaSuccess)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    {</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        fprintf(stderr, "Failed to free device vector C (error code %s)!\n", cudaGetErrorString(err));</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        exit(EXIT_FAILURE);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    }</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // Free host memory</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    free(h_A);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    free(h_B);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    free(h_C);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // Reset the device and exit</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // cudaDeviceReset causes the driver to clean up all state. While</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // not mandatory in normal operation, it is good practice.  It is also</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // needed to ensure correct operation when the application is being</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // profiled. Calling cudaDeviceReset causes all profile data to be</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // flushed before the application exits</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    err = cudaDeviceReset();</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    if (err != cudaSuccess)</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    {</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        fprintf(stderr, "Failed to deinitialize the device! error=%s\n", cudaGetErrorString(err));</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        exit(EXIT_FAILURE);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    }</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    printf("Done\n");</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // This creates a polygonal cylinder model with eight circumferential facets</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // (i.e, in practice an octagonal prism).</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    vtkSmartPointer<vtkCylinderSource> cylinder =</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        vtkSmartPointer<vtkCylinderSource>::New();</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    cylinder->SetResolution(8);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // The mapper is responsible for pushing the geometry into the graphics library.</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // It may also do color mapping, if scalars or other attributes are defined.</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    vtkSmartPointer<vtkPolyDataMapper> cylinderMapper =</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        vtkSmartPointer<vtkPolyDataMapper>::New();</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    cylinderMapper->SetInputConnection(cylinder->GetOutputPort());</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // The actor is a grouping mechanism: besides the geometry (mapper), it</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // also has a property, transformation matrix, and/or texture map.</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // Here we set its color and rotate it around the X and Y axes.</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    vtkSmartPointer<vtkActor> cylinderActor =</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        vtkSmartPointer<vtkActor>::New();</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    cylinderActor->SetMapper(cylinderMapper);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    cylinderActor->GetProperty()->SetColor(1.0000, 0.3882, 0.2784);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    cylinderActor->RotateX(30.0);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    cylinderActor->RotateY(-45.0);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // The renderer generates the image</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // which is then displayed on the render window.</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // It can be thought of as a scene to which the actor is added</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    vtkSmartPointer<vtkRenderer> renderer =</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        vtkSmartPointer<vtkRenderer>::New();</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    renderer->AddActor(cylinderActor);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    renderer->SetBackground(0.1, 0.2, 0.4);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // Zoom in a little by accessing the camera and invoking its "Zoom" method.</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    renderer->ResetCamera();</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    renderer->GetActiveCamera()->Zoom(1.5);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // The render window is the actual GUI window</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // that appears on the computer screen</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    vtkSmartPointer<vtkRenderWindow> renderWindow =</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        vtkSmartPointer<vtkRenderWindow>::New();</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    renderWindow->SetSize(200, 200);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    renderWindow->AddRenderer(renderer);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // The render window interactor captures mouse events</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // and will perform appropriate camera or actor manipulation</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // depending on the nature of the events.</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">        vtkSmartPointer<vtkRenderWindowInteractor>::New();</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    renderWindowInteractor->SetRenderWindow(renderWindow);</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    // This starts the event loop and as a side effect causes an initial render.</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    renderWindowInteractor->Start();</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">    return 0;</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px">}</span></font></div><div class="gmail_default"><font color="#242729" face="arial, helvetica, sans-serif"><span style="font-size:15px;line-height:19.5px"><br></span></font></div><div class="gmail_default"><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:15px;clear:both;color:rgb(36,39,41);line-height:19.5px"><font face="arial, helvetica, sans-serif">After the code is generated by CMake, the first error that I am getting during building the project is:</font></p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:15px;clear:both;color:rgb(36,39,41);line-height:19.5px"><font face="arial, helvetica, sans-serif">Error MSB6006: "cmd.exe" exited with code 1. C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets</font></p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:15px;clear:both;color:rgb(36,39,41);line-height:19.5px"><font face="arial, helvetica, sans-serif">I have fixed this by changing the build customization to CUDA and moving the .cu file into VS project directory. Then, another compilation error occurs and I do not know how to fix this.</font></p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:15px;clear:both;color:rgb(36,39,41);line-height:19.5px"><font face="arial, helvetica, sans-serif">error LNK1104: cannot open file 'C:\Users\Reza\Desktop\cuda_vtk_testing\build\CMakeFiles\Test.dir\Debug\Test_generated_vectorAdd.cu.obj' C:\Users\Reza\Desktop\cuda_vtk_testing\build\LINK Test</font></p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:15px;clear:both;color:rgb(36,39,41);line-height:19.5px"><font face="arial, helvetica, sans-serif">Generally, how do we write a CMake code when we want to combine CUDA and VTK? What are my mistakes that VS12 cannot find includes of VTK in my codes?</font></p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:15px;clear:both;color:rgb(36,39,41);line-height:19.5px"><font face="arial, helvetica, sans-serif"><br></font></p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:15px;clear:both;color:rgb(36,39,41);line-height:19.5px"><font face="arial, helvetica, sans-serif"><br></font></p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:15px;clear:both;color:rgb(36,39,41);line-height:19.5px"><font face="arial, helvetica, sans-serif">Best Regards,</font></p></div></div></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><span style="font-family:arial,helvetica,sans-serif;color:rgb(36,39,41);font-size:15px;line-height:19.5px">Reza</span>​</div></div>