Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия, Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки
хотелось бы увидеть для каких данных работает неправильно
выводил данные на экран и обнаружил, что среди них есть "-nan", похоже в этом и причина. Оператор IF видимо их игнорирует, а _mm_max_ps обрабатывает как то по другому. Что с этим делать пока не знаю, "-nan" это неопределённость "0.0"
bondkim137
Re: Можноли как то ускорить код
29.10.2024, 15:24
Самое простое, что пришло в голову - можно попробовать написать функцию, вычисляющую результат сразу для нескольких наборов исходных данных. Причем таким образом, что б результат сложных аппаратных команд с большой задержкой сразу не использовался. Включая последнюю сумму корней. Вероятно, это позволит эффективнее использовать конвеерную архитектуру, ибо latency не совсем есть время выполнения.
bondkim137
Re: Можноли как то ускорить код
29.10.2024, 18:41
Ну и SIMD. Только не SIMD-операции для работы с младшим float-элементом, как обычно делает компилятор, а полноценный SIMD на intrinsic-ах или вручную на ассемблере. Условия, соответственно, максимально исключить, как и сложные реализации корня.