Производительность радикальной сортировки на графическом процессоре K10
Я ищу быструю реализацию алгоритма сортировки на GPU для больших массивов (сотни M элементов). Я уже попробовал cudpp и получил от 450M до 500M 4-байтовых ключа + 4-байтовое поле в секунду. Это не выглядело плохо, однако все еще в том, что процессор может сделать. Затем я наткнулся на это: https://code.google.com/p/back40computing/wiki/RadixSorting требуя 700M ключей + значения / сек на GTX480. Я сказал - вау! - Я использую Tesla K10, так что более мощное оборудование, попробуйте это! Получил код, скомпилировал его для возможности nvidia 30, попробовал... Я получаю более или менее те же цифры, что и код cudpp. Копая больше, похоже, что cudpp использует радикальную сортировку от Thrust, а алгоритм bc40 был включен в Thrust, так что в целом я вполне могу использовать один и тот же код. Я играл с рядом параметров (размер блока, размер сетки и т. Д.) В коде bc40, но только ухудшил ситуацию. Итак, вот вопрос - кто-нибудь проверял сортировку cudpp radix или сортировку bc40 на другом (более мощном) графическом процессоре? Где-нибудь около 700M/sec ключи + значения? Любую волшебную кнопку нажать? Профилировщик nsight сообщает о жалком 25% использования графического процессора (и доступ к общей памяти как узкое место)...