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

CUDA

Войти
Регистрация
Восстановить пароль
 
Roland Discane
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 45
#1

CUDA C++ не возвращает значение переменных - CUDA

22.05.2014, 01:17. Просмотров 554. Ответов 11
Метки нет (Все метки)

Реализую пример из книжки Сандерс "Технология Cuda в примерах". Этот код
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
#include "windows.h"
 
 
#include <stdlib.h>
#include <math.h>
 
#include <cuda.h>
#include "../common/book.h"
#include "../common/cpu_anim.h"
#include "../common/cpu_bitmap.h"
#include "../common/gl_helper.h"
#include "../common/gpu_anim.h"
#include "../common/GL/glext.h"
#include "../common/GL/glut.h"
#include <stdio.h>
#include <iostream>
 
 
 
 
__global__ void add( int a, int b, int *c ) { 
    *c = a + b;
}
 
int main( void ) {
    int c;
    int *dev_c;
    cudaMalloc( (void**)&dev_c, sizeof(int) );
    add<<<1,1>>>( 2, 7, dev_c );
    cudaMemcpy( &c, dev_c, sizeof(int), cudaMemcpyDeviceToHost ); 
    printf( "2 + 7 = %d\n", c );
    cudaFree( dev_c );
    system("PAUSE");
}
при компиляции выводит на экран мусор, хранящийся в переменной c. Если я её обнулю, то будет выводить 0. Т.е. программа в неё ничего не записывает. Может кто-нибудь подскажет в чём проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2014, 01:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос CUDA C++ не возвращает значение переменных (CUDA):

CUDA, не получается вывести значение - CUDA
Прошу прощения, если создал тему не в том разделе, но прошу помочь мне,нужно написать программу для вывода значений функции используя...

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

Значение переменных - C (Си)
1) if ( (a != b) ? b : (--c + b == a + 3) ) printf(&quot;%d\n&quot;, b); Вывод: 0 Вопрос- какое значение было у переменных a, b, c,...

Как вернуть в запросе значение по умолчанию, если SELECT возвращает NULL или ничего не возвращает? - PostgreSQL
Добрый день! Например я хочу чтобы донное выражение возвращало мне 0 или скажем 1, если результатом выражения rating вернется NULL: ...

Напишите функцию, которая возвращает среднее арифметическое двух переменных - C++
Я самое наглое , ленивое и бессовестное чудовище)) но тем не менее Напишите функцию, которая принимает два параметра типа unsigned int...

Переданное значение REQUEST_LOGIN = 1 возвращает другое значение - Программирование Android
Пытаюсь из фрагмента вызвать Другую активность и получить результа. Из фрагмента вызываю код: private void startActivity() { ...

11
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.05.2014, 01:35 #2
И что возвращает cudaMemcpy()?
0
Roland Discane
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 45
22.05.2014, 01:38  [ТС] #3
-858993460. Просто фигня какая-то
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.05.2014, 01:44 #4
Цитата Сообщение от Roland Discane Посмотреть сообщение
-858993460. Просто фигня какая-то
???
Returns:
cudaSuccess, cudaErrorInvalidValue, cudaErrorInvalidDevicePointer, cudaErrorInvalidMemcpyDirection
Добавлено через 2 минуты
Что возвращает cudaMalloc()? Какое значение по указателю dev_c, перед вызовом cudaMemcpy()?
0
Roland Discane
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 45
22.05.2014, 01:48  [ТС] #5
Ну это в переменной с. Я полагаю, что в с из переменной dev_c должен результат записываться.

Добавлено через 3 минуты
alsav22, Ну в __global__ передаётся 2, 7, и dev_c и должно вернуться 9. Потом из dev_c в с переписываем 9 и выводим.
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.05.2014, 01:53 #6
Цитата Сообщение от Roland Discane Посмотреть сообщение
Ну это в переменной с.
Цитата Сообщение от Roland Discane Посмотреть сообщение
Я полагаю,
Цитата Сообщение от Roland Discane Посмотреть сообщение
должно вернуться 9.
Я разве вас об этом спросил?
0
Roland Discane
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 45
22.05.2014, 02:09  [ТС] #7
Ну cudaMalloc возвращает cudaSuccess и cudaErrorMemoryAllocation.
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.05.2014, 02:12 #8
Цитата Сообщение от Roland Discane Посмотреть сообщение
возвращает cudaSuccess и cudaErrorMemoryAllocation
Покажите, как проверяете.
0
Roland Discane
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 45
22.05.2014, 02:14  [ТС] #9
Что проверяю? Видимо я вас немного не понимаю... Я имею в виду, что в описании функции написано, что при удачном выполнении возвращает cudaSuccess, а при ошибке - cudaErrorMemoryAllocation
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.05.2014, 02:20 #10
Цитата Сообщение от Roland Discane Посмотреть сообщение
при удачном выполнении возвращает cudaSuccess, а при ошибке - cudaErrorMemoryAllocation
Вот это и проверяйте. О чём я вас и спрашиваю.
0
Roland Discane
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 45
22.05.2014, 02:31  [ТС] #11
А как проверить?
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.05.2014, 02:34 #12
Цитата Сообщение от Roland Discane Посмотреть сообщение
А как проверить?
CUDA кто занимается? Я или вы? Читайте документацию. Тут форму по С++, а не по CUDA.
0
22.05.2014, 02:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2014, 02:34
Привет! Вот еще темы с ответами:

Не возвращает значение - C++
Здравствуйте! Помогите люди добрые?) Вообщем, нужно написать на Visual C++ библиотеку? а после запустить ее на Лабвью Код есть...

Функция не возвращает значение - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;iomanip&gt; #include &quot;stdafx.h&quot; using namespace std; const int max_size = 100; ...

this возвращает неправильное значение - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; class oops{ public: oops():key(10){} int key; oops&amp; oper1(int...

Функция не возвращает значение - MathCAD
Написал функцию ME, которая должна вернуть вектор чисел. Я вызываю ее, но результата это не дает. Что я сделал не так при объявлении...


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

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

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