Salut J'ai un programme cuda qui fonctionne avec succès ici est le code pour le programme de cudacuda et C++ problème
#include <stdio.h>
#include <cuda.h>
__global__ void square_array(float *a, int N)
{
int idx = blockIdx.x * blockDim.x + threadIdx.x;
if (idx<N)
a[idx] = a[idx] * a[idx];
}
int main(void)
{
float *a_h, *a_d;
const int N = 10;
size_t size = N * sizeof(float);
a_h = (float *)malloc(size);
cudaMalloc((void **) &a_d, size);
for (int i=0; i<N; i++) a_h[i] = (float)i;
cudaMemcpy(a_d, a_h, size, cudaMemcpyHostToDevice);
int block_size = 4;
int n_blocks = N/block_size + (N%block_size == 0 ? 0:1);
square_array <<< n_blocks, block_size >>> (a_d, N);
cudaMemcpy(a_h, a_d, sizeof(float)*N, cudaMemcpyDeviceToHost);
// Print results
for (int i=0; i<N; i++) printf("%d %f\n", i, a_h[i]);
free(a_h);
cudaFree(a_d);
}
maintenant je veux diviser ce code en deux fichiers signifie qu'il devrait y avoir deux fichiers un pour le code C++ ou c code et un autre fichier .cu pour le noyau. Je veux juste le faire pour apprendre et je ne veux pas écrire le même code de noyau encore et encore. quelqu'un peut-il me dire comment faire cela? comment diviser ce code en deux fichiers différents? que comment le compiler? comment écrire makefile pour cela? comment
thax pour l'aide i déplacé mon code Kenel en squre nom de fichier seprate .cu #include #include __global__ square_array void (float * a, int N) { int idx = blockIdx.x * blockDim.x + identificateur de thread.X; if (idx
user513164