No soy experto en programación, pero hace un rato necesitaba compilar un proyecto con CUDA utilizando Netbeans. No se si era por la versión de Netbeans o por que otra cosa, ninguna de las soluciones que encontré en blogs me funcionaron.
Peeeeero... cómo en serio tenia que encontrar una solución o mi director de tesis me colgaba... lo logre hacer gracias a la guía de distintas paginas que encontré. Aquí les dejo paso a paso lo que hice para que me pudiera compilar, ojala a alguien le sirva.
Especificaciones que le podría interesar a alguien:
- CUDA 7.5
- NETBEANS 8.0.1
- UBUNTU 14.04
1. Configuración de Netbeans
Lo primero que tenemos que hacer es configurar el ambiente de desarrollo para trabajar archivos con extensión ".cu" (Extensión para trabajar con CUDA) y con el compilador de NVIDIA "vncc".
Para hacer esto en "Tools > Options", en la paleta "C/C++" en la pestaña "Build Tools" seleccionas el boton "Add" para adicionar un nuevo "Tool Colection".
En el campo "Base Directory" ponen las siguiente dirección: "/usr/local/cuda-7.5/bin" (Pueden poner la dirección dependiendo de la versión de cuda que tengan o en algunos casos es "/usr/local/cuda/bin", lo mismo en todos los casos similares de aquí en adelante). En "Tool Colection Family" debe aparecer "CUDA tool colection". Y la nombran como deseen en mi caso fue "myCuda".
Ahora llenamos los campos del nuevo tool colection como se muestra en la siguiente imagen:
En la pestaña "Code Assitance", seleccionamos en la opción tool colection: "myCuda" y en la sub pestaña "C++ Compiler", nos aseguramos de que en "include directories" estén los directorios "/usr/local/cuda-7.5/targets/x86_64-linux/include" (Si este directorio no existe en tu computador te aconsejo agregar "/usr/local/cuda-7.5/include") y "/usr/include".
En "New Project" seleccionamos "C/C++ > C/C++ Applicaction".
Lo nombramos y escogemos su ubicación, en "Tool Colection" seleccionamos "myCUDA" y le damos finalizar.
Ahora, en propiedades del proyecto en la opción "Build" deseleccionamos "Enable Make Dependency Checking", en "Tool Colection" debe estar seleccionado "myCUDA" .
Por último y para estar más asegurado, en "Build > C++ Compiler" y en "Build > Linker" me asegure de que en la opción "Tool" estuviera "nvcc".
3. Mi propio ejemplo.
En mi caso hice esta simple "prueba.cu" con el siguiente código:
#include <cstdlib>
#include <cstdio>
using namespace std;
__global__ void mykernel(void) {
}
int main(void) {
mykernel<<<1,1>>>();
printf("CPU Hello World!\n");
return 0;
}
y este es el resultado.
Espero que a alguien le sea de ayuda este blog. Con mucho gusto y hasta pronto! Chaoo!