Comments 22
И не слова про то что это может быть бесполезным. Во первых такие скорости достигаются на объемах более 2М чисел. Вот лично я на практике больше 64К никогда не сортировал. Может ктонибудь из присудствующих сортирует 2М чисел? Было бы интересно услышать. Во вторых перед сортировкой эти данные еще отправить на GPU надо.
PS Реализация неплохая конечно, уделывает radixSort из сэмплов в раза 1.5 на моем GTX470.
PS Реализация неплохая конечно, уделывает radixSort из сэмплов в раза 1.5 на моем GTX470.
Задачи анализа статистики часто требуют сортировки огромных массивов информации — и для такого класса задач это просто мана небесная :)
А можно пример?
конечно можно.
У Вас в кеш-хранилище информация о 10 миллионах пользователей (подключений, ставок, etc) (несортированная, т.к. это мгновенный слепок активности), которую нужно перекинуть в анализатор статистики.
Известно, что анализатор статистики в несколько раз быстрее работает с сортированными данными (у него даже ключик специальный есть, значительно улучшающий скорость работы за счет использования других алгоритмов)
Надеяться на сортировщик анализатора нет смысла — так как анализатор довольно слабая машина, да и вообще — его задача хранить эту статистику, а не заниматься ее упорядочиванием.
Поэтому втыкаем в кешер одну видяшку и отдаем ей на откуп статистику.
Конечно, когда у Вас 1 кешер и один анализатор, разница между 1мс и 0.3мс незаметна, но когда стоит уже 10кешеров на один анализатор, такой буст уже играет роль.
Где это используется?
Скажу по секрету всей хабре — в крупных букмекерских конторах, например.
У Вас в кеш-хранилище информация о 10 миллионах пользователей (подключений, ставок, etc) (несортированная, т.к. это мгновенный слепок активности), которую нужно перекинуть в анализатор статистики.
Известно, что анализатор статистики в несколько раз быстрее работает с сортированными данными (у него даже ключик специальный есть, значительно улучшающий скорость работы за счет использования других алгоритмов)
Надеяться на сортировщик анализатора нет смысла — так как анализатор довольно слабая машина, да и вообще — его задача хранить эту статистику, а не заниматься ее упорядочиванием.
Поэтому втыкаем в кешер одну видяшку и отдаем ей на откуп статистику.
Конечно, когда у Вас 1 кешер и один анализатор, разница между 1мс и 0.3мс незаметна, но когда стоит уже 10кешеров на один анализатор, такой буст уже играет роль.
Где это используется?
Скажу по секрету всей хабре — в крупных букмекерских конторах, например.
Спасибо. Меня как раз интересовал пример статистического алгоритма, который требует отсортированных данных на входе.
Таких алгоритмов навалом — бинарный поиск, системы оценки погрешностей результатов, задачи приближенного моделирования.
Тут ниже обсуждение, что это не для серверов — так это еще как для серверов (хотя, если быть до конца точным, для мощных вычислительных кластеров)
Тут ниже обсуждение, что это не для серверов — так это еще как для серверов (хотя, если быть до конца точным, для мощных вычислительных кластеров)
А зачем в статистике бинарный поиск? Система оценки погрешностей — можно ссылку на такую систему, использующую отсортированные данные?
Я конечно не спорю, что это информативный эксперимент, в очередной раз показывающий применимость и эффективность графических ускорителей.
Однако, вы только представьте, сколько начинающих «программистов» теперь, почитав эту новость, укрепились в уверенности, что сортировка есть божественная операция, и будут теперь ее тыкать везде, где есть CUDA, опираясь на то, как она быстра. Вспомните, сколько раз на вопрос «найти максимальный элемент в массиве» вы слышали «отсортируем по убыванию и возьмем первый...»
Страшно представить, какой это толчок ламерству…
Однако, вы только представьте, сколько начинающих «программистов» теперь, почитав эту новость, укрепились в уверенности, что сортировка есть божественная операция, и будут теперь ее тыкать везде, где есть CUDA, опираясь на то, как она быстра. Вспомните, сколько раз на вопрос «найти максимальный элемент в массиве» вы слышали «отсортируем по убыванию и возьмем первый...»
Страшно представить, какой это толчок ламерству…
кроме, в большей части академических, достижений CUDA хочется более реальных вещей:
например утилита для прикручивания CUDA сортировки(может и не только сортировки) к MSSQL/Oracle/MySQL/Postgres
например утилита для прикручивания CUDA сортировки(может и не только сортировки) к MSSQL/Oracle/MySQL/Postgres
Ага, и еще видяхи поставить на сервер :)
CUDA — это 99% рендер и HPC
Сервера — это немного «не в кассу»
Сервера — это немного «не в кассу»
А как же Tesla?
Tesla это железка, а CUDA это язык программирования
Tesla это серверное железо для работы с CUDA. Почему сервера то «не в кассу»?
Да и с чего CUDA рендер? Посмотрите на gpgpu.org.
Да и с чего CUDA рендер? Посмотрите на gpgpu.org.
>> Почему сервера то «не в кассу»
Веб-сервера. Упомянутые выше MSSQL/Oracle/MySQL/Postgres и т.д.
CUDA ориентирована на плотные параллельные вычисления — рендер/HPC а не на pointer-chasing и 1-поточный код.
Любите микроскопом гвозди забивать? Вперёд
>>Посмотрите на gpgpu.org
Ну и посмотрите на своей странице список тегов.
Никакого веба и «серверных» задач
Математика/hpc/рендер
Веб-сервера. Упомянутые выше MSSQL/Oracle/MySQL/Postgres и т.д.
CUDA ориентирована на плотные параллельные вычисления — рендер/HPC а не на pointer-chasing и 1-поточный код.
Любите микроскопом гвозди забивать? Вперёд
>>Посмотрите на gpgpu.org
Ну и посмотрите на своей странице список тегов.
Никакого веба и «серверных» задач
Математика/hpc/рендер
Каким будет первый движок баз данных с поддержкой CUDA?
Sign up to leave a comment.
Высокопроизводительная сортировка (radix) на CUDA