Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

CUDA

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
NoWar
0 / 0 / 0
Регистрация: 11.07.2010
Сообщений: 7
#1

CUDA, не получается вывести значение - CUDA

23.01.2011, 15:30. Просмотров 1093. Ответов 2
Метки нет (Все метки)

Прошу прощения, если создал тему не в том разделе, но прошу помочь мне,нужно написать программу для вывода значений функции используя прараллельные вычисления,дело в том,что приготовленный массив заполняется нулями, я не могу понять почему,вот код,помогите кто может плз;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <math.h>
using namespace std;
__global__  void tablekernel(float * devPtr,float step)
{
 int index = blockIdx.x * blockDim.x + threadIdx.x;
 float x = step * index;
 devPtr [index] =  __sinf(x);
}
void buildTable(float * res, int n, float step)
{
  float * devPtr;
  cudaMalloc( &devPtr, n * sizeof(float));
  tablekernel<<<dim3(n/256), dim3(256)>>>(devPtr,step);
  cudaMemcpy(res,devPtr,n * sizeof(float),cudaMemcpyDeviceToHost);
  cudaFree(devPtr);
}
int main(int argc, char * argv [])
{
 cudaEvent_t start,stop;
 cudaEventCreate(&start);
 cudaEventCreate(&stop);
 float gputime =0.0f;
 float Table[10];
 cudaEventRecord(start,0);
 buildTable(Table,11,4);
  cudaEventRecord(stop,0);
  cudaEventSynchronize(stop);
 for(int i = 0;i < 10;i++)
 {
     cout<<Table[i]<<endl;
 }
 cudaEventElapsedTime(&gputime,start,stop);
 cout << "Elapsed time : "<<gputime<<"  ms";
 getch();
 return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2011, 15:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос CUDA, не получается вывести значение (CUDA):

CUDA C++ не возвращает значение переменных - CUDA
Реализую пример из книжки Сандерс &quot;Технология Cuda в примерах&quot;. Этот код #include &quot;windows.h&quot; #include &lt;stdlib.h&gt; #include...

Не запускается приложение под Cuda (CUDA directory not found) - CUDA
Здравствуйте, пытаюсь скомпилировать приложение под Cuda но вылазит ошибка, что CUDA directory not found. В чем может быть проблема? Cuda...

Не получается вывести значение из JSON - PHP
Здравствуйте!!! Первый раз столкнулся с JSON, помогите пожалуйста вывести из кода что представлен ниже, значение: 6dff644b60:w ...

Не получается вывести нужное значение в dbedit - C++ Builder БД
Собственно кидаю на форму сурс, адоквери, конекчусь к базе. Есть две таблицы, в первой 7 полей(TR_ID первичник, тип нумерик, TRAN_VID тип...

Никак не получается вывести значение с пробелом - PHP
Здравствуйте уважаемые пользователи! Я глубокий новичок, и только учусь. В общем хочу вывести цену с пробелом, а именно поставить...

Найти значение выражения. Не получается вывести результат на экран - Assembler
Добрый вечер! Помогите найти ошибку. Ассемблер изучаю всего несколько дней. Необходимо вычислить значение выражения...

2
dxdy
97 / 97 / 5
Регистрация: 14.06.2010
Сообщений: 283
25.01.2011, 18:19 #2
Цитата Сообщение от NoWar Посмотреть сообщение
tablekernel<<<dim3(n/256), dim3(256)>>>(devPtr,step);
Похоже тут закралась ошибка.
Посмотри для примера из sdk программу сложение векторов.
1
petrostasuk
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 40
20.09.2011, 22:43 #3
Попробуйте
C++
1
tablekernel<<<dim3((n+255)/256), dim3(256)>>>(devPtr,step,n);
А само ядро будет так
C++
1
2
3
4
5
6
7
__global__  void tablekernel(float * devPtr,float step, int N)
{
 int index = blockIdx.x * blockDim.x + threadIdx.x;
 if (index<N) {
 float x = step * index;
 devPtr [index] =  __sinf(x);}
}
Если делать так, как Вы, то получается что ядро будет корректно работать при n кратно 256, а так как у Вас n=11, то у Вас не запустится ни одного блока, так как 11/256=0
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2011, 22:43
Привет! Вот еще темы с ответами:

Не получается вывести в табличку нарисованную в классе fr значение выбраного элемента списка c1.getSelectedIndex() - Java
Попробовал написать маленькую прогу и возник такой вопрос: Не получается вывести в табличку нарисованную в классе fr значение ...

Не получается изменить значение переменной - Программирование Android
В классе активити объявлена переменная int a. В классе есть метод public boolean onTouch. В этом методе надо делать уменьшение или...

Не получается вытащить значение из массива - Assembler
Здравствуйте. Нужно перевести двоичное число в шестнадцатеричное. Беда в том, что я не могу положить в cl, значение ячейки массива под...

Не получается передать значение в input - JavaScript
Подскажите, что не так? Ничего не отображает в input'е &lt;html&gt; &lt;body&gt; Вход доступен! &lt;script&gt; var x = window.location.hostname; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru