Metal против GLSL CoreImage производительность
На сессии WWDC 510 инженеры Apple представили поддержку кодирования CIKernel
в Metal
и утверждают, что это должно работать быстрее.
Я вместе сделал тестовый проект, который реализует размытие движения в обоих metal
а также glsl
(код аналогичен коду из 510 сессии).
Иногда metal kernel
быстрее, иногда glsl kernel
быстрее, но я определенно не вижу metal kernel
выполнять последовательность и значительно лучше по всем направлениям. Это должно быть так, я что-то упускаю?
Примечание: проект не будет работать на симуляторе, вам понадобится устройство с поддержкой A8+.
1 ответ
Похоже, что некоторые из них связаны с аппаратным обеспечением. Вот мои 10,5-дюймовые результаты для iPad Pro:
glsl 1 took 229.572057723999ms
glsl 2 took 49.1310358047485ms
glsl 3 took 46.7269420623779ms
glsl 4 took 53.08997631073ms
glsl 5 took 48.9979982376099ms
glsl 6 took 49.0390062332153ms
glsl 7 took 52.5139570236206ms
glsl 8 took 46.4930534362793ms
glsl 9 took 39.6310091018677ms
glsl 10 took 45.9860563278198ms
metal 1 took 77.7549743652344ms
metal 2 took 44.1800355911255ms
metal 3 took 46.0859537124634ms
metal 4 took 45.3709363937378ms
metal 5 took 43.5279607772827ms
metal 6 took 38.9848947525024ms
metal 7 took 37.1809005737305ms
metal 8 took 37.8340482711792ms
metal 9 took 37.6850366592407ms
metal 10 took 37.5720262527466ms
И мои результаты iPhoneSE:
glsl 1 took 394.147992134094ms
glsl 2 took 94.601035118103ms
glsl 3 took 81.4379453659058ms
glsl 4 took 76.9931077957153ms
glsl 5 took 77.0320892333984ms
glsl 6 took 75.8579969406128ms
glsl 7 took 76.9950151443481ms
glsl 8 took 77.8199434280396ms
glsl 9 took 79.7009468078613ms
glsl 10 took 79.4800519943237ms
metal 1 took 146.992921829224ms
metal 2 took 88.6669158935547ms
metal 3 took 81.8150043487549ms
metal 4 took 78.1329870223999ms
metal 5 took 79.5910358428955ms
metal 6 took 93.6589241027832ms
metal 7 took 94.8940515518188ms
metal 8 took 89.0530347824097ms
metal 9 took 84.3830108642578ms
metal 10 took 77.949047088623ms
Вопрос и мысль:
- Какое устройство дало ваши результаты?
- Мне было бы любопытно, если бы другой вид фильтра, скажем, цветное ядро, работал бы по-другому.