Вы используете большой локальный массив.
__local short temp[24][1080]
2 байта * 24 * 1080 = 50,6 КБ.Некоторые настольные графические процессоры (и их аналоги для ноутбуков) имеют менее доступные ограничения локальной памяти.Например, GTX 1060 поддерживает значение CL_DEVICE_LOCAL_MEM_SIZE
49152 байта.Но adreno 620 либо игнорирует использование массива, либо поддерживает большие локальные массивы, потому что существует вероятность того, что локальные массивы эмулируются внутри глобальных массивов (ограниченных сотнями мегабайт) для этих чипов.Если они поддерживают быструю локальную память внутри чипа, то появляется больше возможностей для «игнорирования» проблемы, или они действительно удвоили пределы локальной памяти по сравнению с последним поколением Adrenos.
Даже когда GPU поддерживает точное значение, используя всеэто ограничит параллелизм на уровне потоков в каждом конвейере, значительно снизив потенциальный прирост производительности.
Если последнее поколение графических процессоров Adreno одинаковое,
https://compubench.com/device.jsp?benchmark=compu15m&os=Android&api=cs&D=Samsung+Galaxy+S7+%28SM-G930x%29&testgroup=info
на этой странице написано
CL_DEVICE_LOCAL_MEM_SIZE
32768
CL_DEVICE_LOCAL_MEM_TYPE
CL_LOCAL
, это быстро, но это 32 КБ, поэтомуэто игнорирование ошибки, или вы пропустили добавление необходимой логики перехвата ошибок или того и другого.