Здравствуйте!Помогите пожалуйста разгрузить код.Есть функция,которая много раз повторяется.
Видео карта вроде мощная-должно быть пошустрее...
У вас 4 вложенных цикла. Можно запустить кернел в 3-мерном пространстве задач, таким образом останется только один цикл. Но в приведённом Вами примере количество запущенных задач (work-items) равно 2*2*2 = 8. Это очень мало. Вы не получите никакого ускорения, только потеряете время на накладных расходах. Чтобы получить прирост производительности относительно CPU, количество задач должно исчисляться миллионами.
Там получается 16,а не 8.
Данная функция вложена в цикл с 96 000 итерациями.Прирост должен быть существенный.До разгрузки главного цикла может сам дойду,если с этим поможете)
по ts переменные u1-u4 легко вычисляются, циклов не надо
ts от 1 до 16.Подскажите как?
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111комбинации f на входе
ts_ = ts - 1;
u1 = ts_ & 1;
u2 = (ts_ & 2) >> 1;
u3 = (ts_ & 4) >> 2;
u3 = (ts_ & 8) >> 3;
примерно так, за правильность не ручаюсь, лень проверять
Там получается 16,а не 8.
Данная функция вложена в цикл с 96 000 итерациями.Прирост должен быть существенный.До разгрузки главного цикла может сам дойду,если с этим поможете)
Пространство задач может иметь максимум 3 измерения. В Вашей ситуации это логично было бы сделать так.
Измерение 0: цикл с 96к итерациями, измерение 1: u1, измерение 2: u2, а циклы u3 и u4 оставить, как есть, в теле кернела. Если от u1-u4 можно уйти, как Вам подсказали, то кернел запускать в одном измерении с количеством задач 96к.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте!Помогите пожалуйста разгрузить код.Есть функция,которая много раз повторяется.
Видео карта вроде мощная-должно быть пошустрее...