11 / 11 / 11
Регистрация: 18.01.2016
Сообщений: 98
1

Глобальная переменная в OpenCL

10.03.2017, 23:13. Показов 3945. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!
Кто может подсказать как правильно создать глобальную переменную в OpenCL?
C++
1
2
3
4
unsigned char *globalVariable;
 
__kernel void foo()
{}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2017, 23:13
Ответы с готовыми решениями:

Глобальная переменная определена в хидере. Компилятор ругается на то, что переменная переопределена несколько раз
Исходники: /* main.cpp */ #include "hider.h" int main(void) { return 0; } /* foo.cpp */

Глобальная переменная, локальная переменная, параметр переменные, параметр заполнения
Где здесь глобальная переменная, локальная переменная, параметр переменные, параметр заполнения...

Глобальная переменная
Подскажите, как сделать переменную g доступный из разных частей формы (если я не ошибаюсь, сделать...

Глобальная переменная
Вопрос, конечно, детский, но тем не менее он назрел. В интернете я разумного ответа не встретил,...

12
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
10.03.2017, 23:37 2
Цитата Сообщение от Colt_11 Посмотреть сообщение
Кто может подсказать как правильно создать глобальную переменную в OpenCL?
Проблема в чём? Просто в создании или в правильном создании?
0
11 / 11 / 11
Регистрация: 18.01.2016
Сообщений: 98
10.03.2017, 23:40  [ТС] 3
просто в создании, с префиксом __global не создается, __constant тоже не подходит так как размер массива который надо будет загрузить слишком большой, сама переменная используется не в karnel функции, соответственно буфер тоже не подходит
0
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
10.03.2017, 23:49 4
Цитата Сообщение от Colt_11 Посмотреть сообщение
с префиксом __global не создается
Так и хочется спросить: а без префикса, что мешает создать? В какой среде делаешь? Какой тип проекта?
0
11 / 11 / 11
Регистрация: 18.01.2016
Сообщений: 98
10.03.2017, 23:53  [ТС] 5
бес префикса соответственно тоже не создается, да и не должна, переменные бес префикса это значит префикс __private
0
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
10.03.2017, 23:55 6
Цитата Сообщение от Colt_11 Посмотреть сообщение
бес префикса соответственно тоже не создается, да и не должна, переменные бес префикса это значит префикс __private
???
Цитата Сообщение от nd2 Посмотреть сообщение
В какой среде делаешь? Какой тип проекта?
0
11 / 11 / 11
Регистрация: 18.01.2016
Сообщений: 98
10.03.2017, 23:58  [ТС] 7
Цитата Сообщение от nd2 Посмотреть сообщение
Сообщение от nd2
В какой среде делаешь? Какой тип проекта?
Среда qt creator, про тип не понял
Цитата Сообщение от nd2 Посмотреть сообщение
Сообщение от Colt_11
бес префикса соответственно тоже не создается, да и не должна, переменные бес префикса это значит префикс __private
???
в opencl все переменные с префиксом, но у переменных __private префикс можно опустить
0
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
11.03.2017, 00:02 8
Цитата Сообщение от Colt_11 Посмотреть сообщение
про тип не понял
Проект какой-то создавал? Это С++? GLSL?
0
11 / 11 / 11
Регистрация: 18.01.2016
Сообщений: 98
11.03.2017, 00:04  [ТС] 9
Цитата Сообщение от nd2 Посмотреть сообщение
Это С++?
Да проект С++
0
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
11.03.2017, 00:09 10
Цитата Сообщение от Colt_11 Посмотреть сообщение
Да проект С++
Вот это всё - не С++:
Цитата Сообщение от Colt_11 Посмотреть сообщение
с префиксом __global не создается, __constant
Цитата Сообщение от Colt_11 Посмотреть сообщение
в opencl все переменные с префиксом, но у переменных __private префикс можно опустить
1
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
13.03.2017, 01:31 11
Цитата Сообщение от Colt_11 Посмотреть сообщение
сама переменная используется не в karnel функции, соответственно буфер тоже не подходит
То есть ты, в хосте, не можешь сделать вот так?
Цитата Сообщение от Colt_11 Посмотреть сообщение
C++
1
unsigned char *globalVariable;
0
11 / 11 / 11
Регистрация: 18.01.2016
Сообщений: 98
13.03.2017, 08:20  [ТС] 12
В ядре так не получается сделать, karnel функция которая запускается с хоста использует другую функцию в которой и должен использоваться массив
C++
1
2
3
4
5
6
7
8
9
unsigned char *globalVariable;
void deviceFoo()
{
globalVariable;
}
__kernel void foo()
{
    deviceFoo();
}
я могу сделать вот так, но выглядит не особо
C++
1
2
3
4
5
6
7
void deviceFoo(__global unsigned char* globalVariable)
{
}
__kernel void foo(__global unsigned char* globalVariable)
{
     deviceFoo(globalVariable);
}
0
90 / 16 / 1
Регистрация: 08.11.2011
Сообщений: 96
10.06.2017, 09:45 13
Внешних глобальных переменных для обмена между процедурами OpenCL не поддерживает. Не парьтесь. Только обмен через параметры процедур.
0
10.06.2017, 09:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2017, 09:45
Помогаю со студенческими работами здесь

глобальная переменная
помогите разобраться с проблемой... есть код: var id; ...

Глобальная переменная
как переменную сделать глобальное(т.е. можно было использовать на другой форме)

Глобальная переменная
Здравствуйте! Прошу помочь: При запуске нижеприведенного кода изменения глобальной переменной а...

Глобальная переменная
Доброе время суток. Я новичок во Flash:-[. Мне нужна глобальная переменная. В хелпе написано как ее...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru