ubuntu - El perfil de memoria unificada falló
cuda ubuntu-16.04 (2)
Estoy tratando de perfilar el código de cuda en Ubuntu 16.04 que tiene Cuda 8.0, pero está devolviendo "No se pudo aplicar el perfil. El perfil de memoria unificada falló". Intenté perfilar desde la terminal y también desde Nisght Eclipe. El código se está compilando y ejecutándose pero no se puede obtener un perfil.
Código-
cusparseHandle_t handle;
cusparseCreate(&handle);
cusparseSafeCall(cusparseCreate(&handle));
//set the parameters
const int n_i = 10;
const int d = 18;
const int n_t = 40;
const int n_tau = 2;
const int n_k = 10;
float *data = generate_matrix3_1(d, n_i, n_t);
//float* data = get_data1(d, n_i,n_t);
float* a = generate_matrix3_1(n_i,n_k,n_tau);
float* b = sparse_generate_matrix1(n_k,d,0.5);
float* c = sparse_generate_matrix1(n_k,d,0.5);
float* previous_a = generate_matrix3_1(n_i,n_k,n_tau);
float* previous_b = sparse_generate_matrix1(n_k,d,0.1);
float* previous_c = sparse_generate_matrix1(n_k,d,0.1);
// calculate norm of data
float norm_data = 0;
for (int i = 0; i < n_i; i++)
{
for (int t = n_tau; t < n_t; t++)
{
for (int p = 0; p < d; p++)
{
norm_data = norm_data + ((data[p*n_i*n_t + i*n_t + t])*(data[p*n_i*n_t + i*n_t + t]));
}
}
}
// set lambda and gamma parameter
float lambda = 0.0001;
float gamma_a = 2;
float gamma_b = 3;
float gamma_c = 4;
float updated_t = 1;
float updated_t1 = 0;
float rel_error = 0;
int loop = 1;
float objective = 0;
// create sparse format for the data
float **h_data = new float*[1];
int **h_data_RowIndices = new int*[1];
int **h_data_ColIndices = new int*[1];
int nnz_data = create_sparse_MY(data,d,n_i*n_t,h_data,h_data_RowIndices,h_data_ColIndices);
// transfer sparse data to device memory
int *d_data_RowIndices; (cudaMalloc(&d_data_RowIndices, (d+1) * sizeof(int)));
(cudaMemcpy(d_data_RowIndices, h_data_RowIndices[0], (d+1) * sizeof(int), cudaMemcpyHostToDevice));
int *d_data_ColIndices; (cudaMalloc(&d_data_ColIndices, nnz_data * sizeof(int)));
(cudaMemcpy(d_data_ColIndices, h_data_ColIndices[0], (nnz_data) * sizeof(int), cudaMemcpyHostToDevice));
Comando para compilar el código-
nvcc -lcusparse main.cu -o hello.out
Perfilado-
nvprof -o prof ./hello.out
Error-
== 13621 == NVPROF es el proceso de creación de perfiles 13621, comando: ./hello.out ========= Error: el perfil de memoria unificada ha fallado.
¿Alguien puede ayudarme con eso?
tenía el mismo error engañoso, solo tenía que ejecutar el generador de perfiles con privilegios de administrador, por ejemplo, sudo nvprof o sudo nvvp.
Sufro el mismo error Pero el error permanece incluso si agrego el privilegio de sudo
. El terminal devuelve sudo: nvprof: command not found
.
Prueba este comando, funciona para mí. nvprof --unified-memory-profiling off /hello.out