Ну что это за описание сложности? Ну неужели нельзя формулу написать?
В худшем случае 2^n. Пути редуцирования (до 2^(n/2) примерно) не так интересны, это специфика задачи. К сожалению, статья раньше была в открытом доступе, а сейчас доступ только по подписке :(
О планировщике задач, о профилировании OpenCL кода, о том, какие оптимизации на OpenCL делали, что сработало, а что нет.
«Путевые заметки» остались, вопрос насколько это интересно. Там много спорного и, к сожалению, немало негатива — видно что AMD технология уже не так интересна как прежде. Инструментарий заброшен, компилятор сломал всю обратную совместимость, APP SDK с сайта не скачать.
Подозреваю, что бросили все силы на Vulkan…
У нас в одном вычислительном юните 12 GPU, данные на них мы загружали из управляющей программы на языке C. На OpenCL это делается просто — в каждую карту загружается массив входных векторов. Именно задачи тут распределять не нужно, каждый юнит может считать свою последовательность, т.к. решение короткое по времени.
Между юнитами загрузка очень простая, именно для этого случая просто скрипт на питоне.
Первый вариант работал в четыре потока + диспетчер.
Дополнительный прирост скорости образовался из-за слияния функций. Видимо более компактный код компилятору проще оптимизировать.
К примеру, SQLite не зря делают Amalgamation — они говорят о росте производительности до 5%
При переходе из Excel к C++ поменяли способ хранения данных. В Excel каждая последовательность была представлена массивом чисел (набором ячеек), а на C++ задействовали uint256 и закодировали последовательность в бинарном виде. Если в Excel при проверке на наложение со сдвигом необходимо было перебирать все члены массива, то на C++ это просто битовые операции — rotl, and.
Количество переборов тоже снизили, многие комбинации заведомо не являются решением.
С несколькими ядрами внутри — действительно не было. А вот технология SMP взяла старт с 486-х и применялась в серверных решениях. Правда это было уже на излете 486х, незадолго перед выходом Pentium Pro.
Information
Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
mi.mathnet.ru/dm1388
С части IP из России открывается, с части нет
В худшем случае 2^n. Пути редуцирования (до 2^(n/2) примерно) не так интересны, это специфика задачи. К сожалению, статья раньше была в открытом доступе, а сейчас доступ только по подписке :(
«Путевые заметки» остались, вопрос насколько это интересно. Там много спорного и, к сожалению, немало негатива — видно что AMD технология уже не так интересна как прежде. Инструментарий заброшен, компилятор сломал всю обратную совместимость, APP SDK с сайта не скачать.
Подозреваю, что бросили все силы на Vulkan…
Между юнитами загрузка очень простая, именно для этого случая просто скрипт на питоне.
Дополнительный прирост скорости образовался из-за слияния функций. Видимо более компактный код компилятору проще оптимизировать.
К примеру, SQLite не зря делают Amalgamation — они говорят о росте производительности до 5%
Количество переборов тоже снизили, многие комбинации заведомо не являются решением.