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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Artegor
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 38
#1

Массивы в CUDA - C++

19.05.2013, 21:43. Просмотров 755. Ответов 1
Метки нет (Все метки)

выделение памяти на CPU для 2-мерного массива примерно выглядит так

C++
1
2
A=(float **)malloc(n*sizeof(float*)); 
for (int i=0; i<n;>=(float *)malloc(n*sizeof(float));
Как это будет выглядеть для GPU на языке CUDA и что лучше использовать cudaMalloc или cudamallocpitch ?
P.S. желательно примером как у меня
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2013, 21:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массивы в CUDA (C++):

CUDA toolkit - C++
От предыдущего вопроса про то как установить и где скомпилировать проект CUDA возник еще один вопрос.По сути нужен CUDA toolkit, но версий...

CUDA на примерах - C++
Скомпилировал из данной книги несколько вариантов программы(не важно какой): с глобальной, константной, текстурной памятью. Измерил, как...

Cuda не вызывает функцию - C++
Суть задания: Корреляция изображения, т.е по данной формуле найти вырезанный фрагмент картинки и показать рамочкой на исходной кратинке....

Cuda не правильно считает - C++
Здравствуйте, у меня тема курсовой работы &quot;Исследование технологии Cuda, и я решил что буду исследовать на примере перемножения двух...

CUDA C++ не понимаю ошибку! - C++
Есть код на C Считаем определитель. Подсчет определителя был реализован по методу Гаусса: приводим матрицу к треугольному виду и...

Определитель матрицы на CUDA Cи - C++
Здравствуйте! прошу прощения если я создал тему не в том разделе! Надо написать программу которая вычисляет определитель матрицы 3х3 на...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alexanderks
Сообщений: n/a
17.06.2013, 22:18 #2
лучше всего выделять одномерные массивы, примерно так:
C++
1
2
3
float *devA0;
int N = 10000;
cudaMalloc((void**)&devA0, N * N * sizeof(float));
И далее использовать уже в ядре двухмерную адресацию типа
C++
1
devA[i + N * j] = ****
cudaMallocPitch позволяет вроде задавать регулярные промежутки. Я этим за 2 года никогда не пользовался. Самый быстрый вариант - линеаризованные массивы (одномерные).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2013, 22:18
Привет! Вот еще темы с ответами:

Компиляция программ CUDA - C++
Задам возможно ряд глупых для кого-то, но для меня не простых вопросов.Начал читать книгу &quot;Технология CUDA в примерах&quot;. Там даны ряд...

CUDA переменные kernel - C++
Здравствуйте! Хотелось бы уточнить один момент по поводу переменных в ядре.Допустим,имеется такое ядро: __global__ void kernel(int...

CUDA C/C++ сложение векторов - C++
вроде все так делаю, но не запускается не могу понять ошибку делаю с шаблона там просто надо заполнить недастоющие строчки вот шаблон ...

CUDA: сложение двумерных массивов - C++
Я новичок, как в CUDA, так и в С++. Задача - сложить два одинаковых массива, число строк и столбцов задается с клавиатуры. Я чувствую,...


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

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

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