Программирование общей памяти CUDA не работаетC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Программирование общей памяти CUDA не работает

Сообщение Anonymous »

all:

Я узнаю, как общая память ускоряет процесс программирования на графическом процессоре. Я использую приведенные ниже коды для расчета квадрата значения каждого элемента плюс квадрата среднего значения его левого и правого соседей.
Код выполняется, однако результат не такой, как ожидалось.

Первые 10 распечатанных результатов — 0,1,2,3,4,5 ,6,7,8,9, хотя я ожидаю результата как 25,2,8, 18,32,50,72,98,128,162;

Код следующим образом, со ссылкой на здесь;

Скажите, пожалуйста, какая часть идет не так? Мы очень ценим вашу помощь.

#include
#include
#include
#include

const int N=1024;

__global__ void compute_it(float *data)
{
int tid = threadIdx.x;
__shared__ float myblock[N];
float tmp;

// load the thread's data element into shared memory
myblock[tid] = data[tid];

// ensure that all threads have loaded their values into
// shared memory; otherwise, one thread might be computing
// on unitialized data.
__syncthreads();

// compute the average of this thread's left and right neighbors
tmp = (myblock[tid>0?tid-1:(N-1)] + myblock[tid

Подробнее здесь: https://stackoverflow.com/questions/198 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»