Ошибка при запуске примера API устройства mtgp32 cuRAND



Я пытаюсь использовать версию устройства Mersenne Twister от cuRAND. Я попытался использовать второй пример в документации API cuRAND:
3.6. Примеры API устройств
Я взял на себя смелость скопировать код в отдельную суть:
curand.cu

Это то, что я получаю при выполнении кода на 9400M (CC 1.1, Mac OS X 10.8) и GTS 250 (CC 1.1, Linux) с CUDA Toolkit 5.5. Использование -arch=sm_20 удаляет только предупреждения, но результат тот же:

$ nvcc curand.cu && ./a.out
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
Error at curand.cu:93

Как ни странно, на 9600 GT (CC 1.0, Linux) и GTX 570 (CC 2.0, Linux) вроде все работает нормально:

$ nvcc curand.cu && ./a.out
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
Fraction with low bit set was 0.4999963531494
^^^^ kernel_mtgp_example PASSED

Я бы очень хотел запустить Mersenne Twister на 9400M (желательно от cuRAND). Является ли это возможным? Если да, то что бы вы посоветовали это сделать?

Спасибо!

ОБНОВЛЕНИЕ:
Теперь я также получаю сообщение об ошибке на 9600 GT (Linux):

$ ./a.out
GPUassert: unknown error curand.cu 99

Иногда я получаю следующее (9600 GT, Linux):

$ ./a.out
GPUassert: the launch timed out and was terminated curand.cu 99

Примечание: это может быть вызвано загрузкой компьютера, на котором размещен GPGPU (он не простаивает).

Замечание:
Не работает - 9400M (Mac), 9600GT (Linux), GTS250 (Linux)
Работает на - GTX570 ( Linux)
Все вышеперечисленное работает на CUDA toolkit 5.5.


person dejnon    schedule 09.12.2013    source источник
comment
Можете ли вы изменить свою проверку ошибок, чтобы распечатать фактическое сообщение об ошибке? См. Пример в этом ответе.   -  person Tom    schedule 09.12.2013
comment
Я только что запустил этот код на Macbook air с GeForce 320M под OS 10.6.8 и CUDA 5, и он нормально работает при компиляции для цели sm_11. Вы уверены, что на машине OS X есть работающая установка CUDA?   -  person talonmies    schedule 10.12.2013
comment
@Tom, вот что я получил от использования макроса, предоставленного в ссылке на тур: GPUassert: unknown error ./curand.cu 99 Вот суть моего кода (на случай, если я сделал что-то не так с его упаковкой): код   -  person dejnon    schedule 11.12.2013
comment
@talonmies, ошибки были? На моем Mac сейчас нет работающей установки CUDA (я жду обновленного набора инструментов для OS X 10.9). На 10.8 у меня было такое же Error at curand.cu:93. Приведенные выше результаты получены на машинах с Linux. Примечание: другие примеры CUDA (например, 7_CUDALibraries/MersenneTwisterGP11213), похоже, работают нормально.   -  person dejnon    schedule 11.12.2013
comment
@dejnon: предупреждения компилятора, но они нормальны для целей compute 1.x, потому что им не хватает поддержки унифицированной адресации. но без ошибок времени выполнения, как и во втором выводе, который вы показали. это не очень четко описанная проблема. не могли бы вы объяснить, какая именно платформа работает, а какая нет?   -  person talonmies    schedule 11.12.2013
comment
@talonmies, поскольку проблема сохраняется как на MacOS, так и на Linux. И в MacOS, и в Linux есть CUDA Toolkit версии 5.5. Поскольку я жду фиксированного набора инструментов CUDA для MacOS, давайте сосредоточимся на Linux. Пожалуйста, ознакомьтесь с обновлением в моем первом посте.   -  person dejnon    schedule 11.12.2013
comment
Вы используете тот же графический процессор, что и ваш дисплей? Возможно, вы исчерпали тайм-аут. См. этот ответ, чтобы узнать, как отключить тайм-аут, или вы можете уменьшить количество выборок.   -  person Tom    schedule 11.12.2013
comment
@Tom, к сожалению, я не могу связываться с настройками xserver. Можно ли достичь тайм-аута без получения соответствующего сообщения об ошибке (например, the launch timed out and was terminated)? Я постараюсь изменить sampleCount и запустить код через некоторое время.   -  person dejnon    schedule 16.12.2013
comment
@Tom, уменьшив sampleCount и размеры блоков, похоже, устранил проблему на GTS 250. Я жду, когда nVidia обновит свой драйвер MacOS и проверит его на моем Mac.   -  person dejnon    schedule 17.12.2013


Ответы (1)


Похоже, вы работаете на том же графическом процессоре, что и ваш дисплей (подтверждено в комментариях). Возможно, вы исчерпали тайм-аут. См. этот ответ, чтобы узнать, как отключить тайм-аут, или вы можете уменьшить количество выборок.

person Tom    schedule 17.12.2013