Форум программистов, компьютерный форум, киберфорум
OpenCL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/34: Рейтинг темы: голосов - 34, средняя оценка - 4.56
 Аватар для DENIS94
24 / 24 / 6
Регистрация: 12.04.2013
Сообщений: 122

OpenCL - работа с памятью GPU

23.01.2015, 17:16. Показов 6934. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кто знает OpenCL? Откликнитесь!

У меня тут необъяснимые проблемы при обращении к динамическим данным по указателю в ядре (__kernel). Возвращается вообще полный бред
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.01.2015, 17:16
Ответы с готовыми решениями:

#Вычисления на GPU (GPGPU - вычислений на видеокартах): CUDA, OpenCL, AMD APP и DirectCompute
GPGPU («GPU общего назначения») — техника использования графического процессора видеокарты для общих вычислений, которые обычно проводит...

Работа с OpenCL
Добрый вечер уважаемые форумчане, не мог бы кто нибудь помочь вводным курсом в opencl? Есть задача: сравнить скорость выпонения программы в...

Снова про OpenCL в Delphi + программное измерение загрузки CPU & GPU (работающий пример)
Уже более года назад приводил здесь на форуме пример работы с OpenCL в связке с Delphi - ...

27
 Аватар для DENIS94
24 / 24 / 6
Регистрация: 12.04.2013
Сообщений: 122
23.01.2015, 21:35  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от castaway Посмотреть сообщение
Что еще уточнить?
Да вроде как нет Теперь все стало ясно. Спасибо)
1
 Аватар для snake32
3582 / 1712 / 236
Регистрация: 26.02.2009
Сообщений: 8,638
Записей в блоге: 6
24.01.2015, 03:31
DENIS94,
1) не понял зачем нужен OpenCL если ядро запускается в 1 поток? Ну да ладно, он тоже должен работать.
2) описал выделения памяти под 2 массива m_rkw и ms_out. Так же заполнил ms_out. Однако в ядре 3 массива. Что там с ms_in? Память то выделена?
3) почти каждая ф-ия OpenCL возвращает код ошибки. Обязательно проверяйте их все. Особенно на ранних стадиях освоения OpenCL.
0
 Аватар для DENIS94
24 / 24 / 6
Регистрация: 12.04.2013
Сообщений: 122
24.01.2015, 14:37  [ТС]
Цитата Сообщение от snake32 Посмотреть сообщение
1) не понял зачем нужен OpenCL если ядро запускается в 1 поток? Ну да ладно, он тоже должен работать.
2) описал выделения памяти под 2 массива m_rkw и ms_out. Так же заполнил ms_out. Однако в ядре 3 массива. Что там с ms_in? Память то выделена?
1) Тестирую. потом будут запуски в больших измерениях.
2) Я писал, что ms_in пока не используется. Под него память выделяется. Она по размеру точно такая же как и под ms_out. По задумке в ms_in с хоста копируются данные при создании буфера. Потом блок шифруется при использовании раундовых ключей m_rkw и все записывается в ms_out.
0
 Аватар для DENIS94
24 / 24 / 6
Регистрация: 12.04.2013
Сообщений: 122
25.01.2015, 18:47  [ТС]
Я наконец то нашел в чем была проблема!

Не по теме:


И по черному проматерился из за такой глупости!


Я не знаю как именно воспринимает типы данных компилятор OpenCL. Но походу unsigned long int и unsigned int для него к рай разные типы. Я поменял все типы указателей с unsigned long int на unsigned int и все сразу же заработало как полагается.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
__kernel void runKerEncData_L128_R10(__global unsigned char * ms_in, __global unsigned char * ms_out, __global unsigned int * m_rkw)
{
    union process_block
    {
        __private unsigned int  ms_ul[4];
        __private unsigned char ms_uc[16];
    } __private block_u, block_y;
    union ms_conv
    {
        __global unsigned char * ms_uc;
        __global unsigned int * ms_ul;
    } __private msin_conv, msout_conv;
    
    __private int ID_BLOCK = get_global_id(0) * 16;
 
    msin_conv.ms_uc  = &ms_in[ID_BLOCK];
    msout_conv.ms_uc = &ms_out[ID_BLOCK];
 
    //................
}
Вообще странно все это. Для меня это был просто закон(!). unsigned long int = 4 байта. Ни больше ни меньше. Видимо OpenCL захапывал все 8 или тока 2.

даже строчка: std::cout « sizeof(unsigned int) « "\n" « sizeof(unsigned long int); в MVS 2013 выдает:
4
4

В общем, будьте внимательнее с типами данных при работе с этим языком. Там не всегда все так как хотелось бы.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
25.01.2015, 19:14
Цитата Сообщение от DENIS94 Посмотреть сообщение
Но походу unsigned long int и unsigned int для него к рай разные типы.
Насколько мне известно, в OpenCL нет типа unsigned long int.
Открой для себя CheatSheet. Полезная штука)

Цитата Сообщение от DENIS94 Посмотреть сообщение
даже строчка: std::cout « sizeof(unsigned int) « "\n" « sizeof(unsigned long int); в MVS 2013 выдает
Я бы не стал сравнивать встроенные типы MSVS и встроенные типы OpenCL. У них всё-таки разные стандарты.
0
 Аватар для DENIS94
24 / 24 / 6
Регистрация: 12.04.2013
Сообщений: 122
25.01.2015, 19:38  [ТС]
Цитата Сообщение от castaway Посмотреть сообщение
Открой для себя CheatSheet. Полезная штука)
Не открывается)
Цитата Сообщение от castaway Посмотреть сообщение
Насколько мне известно, в OpenCL нет типа unsigned long int.
И я просто unsigned long пробовал. То же не работало..
0
 Аватар для DENIS94
24 / 24 / 6
Регистрация: 12.04.2013
Сообщений: 122
25.01.2015, 19:42  [ТС]
Цитата Сообщение от DENIS94 Посмотреть сообщение
И я просто unsigned long пробовал. То же не работало..
Пфф.. оно и понятно почему >> скрин PDF

В общем язык новый для меня. И придется еще пару сотен граблей собрал
Миниатюры
OpenCL - работа с памятью GPU  
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
25.01.2015, 19:43
Цитата Сообщение от DENIS94 Посмотреть сообщение
Не открывается)
Вот. Или набери в гугле "opencl cheatsheet", там будут ссылки на www.khronos.org

Цитата Сообщение от DENIS94 Посмотреть сообщение
И я просто unsigned long пробовал. То же не работало..
unsigned long в OpenCL имеет размер 64 бита, unsigned int - 32.

Цитата Сообщение от DENIS94 Посмотреть сообщение
Пфф.. оно и понятно почему
Да да да..
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.01.2015, 19:43

Работа с GPU
Можно ли на асм работать с графическим процом, и сопроцесором. Например додать 2 числа?? Подскажите литературу. ( В нете читал что есть...

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

Работа с комплексными числами на gpu
Добрый день! Помогите, пожалуйста, найти ошибку в функции матрично-векторного произведения без хранения матрицы A на GPU. ...

Зависание , черный экран , работа GPU кулеров на 100%
Началось все после проверки жесткого диска на ошибки с помощью стандартной программы(свойства , сервис , выполнить проверку) Проверка...

После запуска игры gpu загружается на 99%, игра начинает выдавать 5fps и даже после завершения gpu не падает
после запуска игры gpu загружается на 99% игра начинает выдавать 5fps и даже после завершения процесса gpu не падает ,без интернета gpu 0% ...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Расчёт периметра прямоугольника по координатам вершин
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости. Решение: Создан документ со следующими. . .
Подсчёт частоты трёхбуквенных слов в тексте
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово. Решение: Создан документ с единственным. . .
Сумма и количество положительных элементов в чётных строках массива
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Вычислить сумму и количество положительных элементов массива, расположенных в четных строках. Решение: Создан документ с. . .
Поиск произведения положительных чётных чисел в последовательности
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Дана произвольная последовательность целых чисел. Найти произведение положительных четных чисел данной последовательности. . . .
Обработка трёх чисел: утроение и возведение в степень
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Даны три действительных числа. Утроить те из них, значения которых неотрицательны, и возвести в четвертую степень отрицательные. . . .
Расчёт стоимости яблок по весу
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Написать программу вычисления стоимости некоторого количества (по весу) яблок. Решение: Создан документ, с табличной частью. . .
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни 1. Механизм отложенного высвобождения фосфора Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ Реализована разная скорость. . .
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru