i have nvidia geforce mx110
, and cuda 12.4
I encountered the "no kernel image is available for execution on the device" CUDA error while trying to execute a simple CUDA program just for test
is this about GPU Architecture Compatibility or CUDA Toolkit and Driver Compatibility ? the source code :
#include <iostream>
#include <cuda_runtime.h>
const int N = 10;
__global__ void addVectors(int *a, int *b, int *result) {
int idx = threadIdx.x;
if (idx < N) {
result[idx] = a[idx] + b[idx];
}
}
int main() {
int a[N], b[N], result[N];
for (int i = 0; i < N; ++i) {
a[i] = i;
b[i] = 2 * i;
}
std::cout << "Vecteur a : ";
for (int i = 0; i < N; ++i) {
std::cout << a[i] << " ";
}
std::cout << std::endl;
std::cout << "Vecteur b : ";
for (int i = 0; i < N; ++i) {
std::cout << b[i] << " ";
}
std::cout << std::endl;
int *d_a, *d_b, *d_result;
cudaMalloc((void**)&d_a, N * sizeof(int));
cudaMalloc((void**)&d_b, N * sizeof(int));
cudaMalloc((void**)&d_result, N * sizeof(int));
cudaMemcpy(d_a, a, N * sizeof(int), cudaMemcpyHostToDevice);
cudaMemcpy(d_b, b, N * sizeof(int), cudaMemcpyHostToDevice);
cudaError_t cudaStatus = cudaGetLastError();
if (cudaStatus != cudaSuccess) {
std::cerr << "Erreur CUDA lors de l'allocation de la mémoire ou de la copie des données vers le GPU: " << cudaGetErrorString(cudaStatus) << std::endl;
return 1;
}
addVectors<<<1, N>>>(d_a, d_b, d_result);
cudaDeviceSynchronize();
cudaStatus = cudaGetLastError();
if (cudaStatus != cudaSuccess) {
std::cerr << "Erreur CUDA lors de l'exécution du kernel ou de la copie des données depuis le GPU: " << cudaGetErrorString(cudaStatus) << std::endl;
return 1;
}
cudaMemcpy(result, d_result, N * sizeof(int), cudaMemcpyDeviceToHost);
std::cout << "Résultat de l'addition des vecteurs :\n";
for (int i = 0; i < N; ++i) {
std::cout << result[i] << " ";
}
std::cout << std::endl;
cudaFree(d_a);
cudaFree(d_b);
cudaFree(d_result);
return 0;
}
the result :
Vecteur a : 0 1 2 3 4 5 6 7 8 9
Vecteur b : 0 2 4 6 8 10 12 14 16 18
Erreur CUDA lors de l'exécution du kernel ou de la copie des données depuis le GPU: no kernel image is available for execution on the device

