Я пытаюсь оптимизировать свой код, используя многоядерные процессоры, для копирования любых манипуляций с большими плотными массивами.
Для копирования: у меня большой плотный массив (приблизительно 6000x100000), из которого мне нужно вытащить субмарины 15x100000, чтобы выполнить несколько вычислений по трубе. Труба состоит из множества функций линейной алгебры, которые обрабатываются blas, который является многоядерным. Независимо от того, действительно ли время тянуть данные действительно имеет значение по сравнению с линейной алгеброй, это открытый вопрос, но я бы предпочел ошибиться на стороне осторожности и убедиться, что копирование данных оптимизировано.
Для управления: у меня есть много разных функций, которые манипулируют массивами с помощью элемента или строки. Было бы лучше, если бы каждый из них выполнялся многоядерно.
Мой вопрос: лучше ли использовать правую фреймворк (OpenML, OpenCL), и пусть все волшебство произойдет с компилятором или есть хорошие функции/библиотеки, которые делают это быстрее?