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

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

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

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

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

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

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

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

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

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

Не по теме:


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


Я не знаю как именно воспринимает типы данных компилятор 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,169
Записей в блоге: 10
25.01.2015, 19:14 25
Цитата Сообщение от 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
24 / 24 / 6
Регистрация: 12.04.2013
Сообщений: 122
25.01.2015, 19:38  [ТС] 26
Цитата Сообщение от castaway Посмотреть сообщение
Открой для себя CheatSheet. Полезная штука)
Не открывается)
Цитата Сообщение от castaway Посмотреть сообщение
Насколько мне известно, в OpenCL нет типа unsigned long int.
И я просто unsigned long пробовал. То же не работало..
0
24 / 24 / 6
Регистрация: 12.04.2013
Сообщений: 122
25.01.2015, 19:42  [ТС] 27
Цитата Сообщение от DENIS94 Посмотреть сообщение
И я просто unsigned long пробовал. То же не работало..
Пфф.. оно и понятно почему >> скрин PDF

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

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

Цитата Сообщение от DENIS94 Посмотреть сообщение
Пфф.. оно и понятно почему
Да да да..
1
25.01.2015, 19:43
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
25.01.2015, 19:43
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru