Хорошо, я должен был поменять вокруг #undef и #include заявления
в верхней части cuda_code.cu (ФДООН директива должна прийти перед импортом заголовка), и добавить / Opt / CUDA-инструментарий / Open64 / бен на путь, миновал этот вопрос и нашел еще один:
Я исправить это, спасибо.
/ USR / бен / л.д.: i386 архитектуры входного файла `сборки / оптимизация / sse2_code.o» несовместима с i386: x86-64 выхода
collect2: ошибка: л.д. возвращается статус 1 выхода
сделать: *** [бен / testMemoryLosses.exe] Ошибка 1
О, я не думал об этом. Код сборки несовместим с системой 64-битной оперативной.
Почувствуйте, как мы получаем где-то. Постараюсь не компиляции кода SSE2, так как я полагаю, вам нужно только мне, чтобы проверить материал CUDA, так Makefile:
FULL_OBJ = [с] $ (SSE2_OBJ) [/ с] $ (CUDA_OBJ)
FACT_FLAGS + = -DCPP_IMPL [с] -DSSE2_IMPL [/ с] -DCUDA_IMPL
Может быть, я редактировал Makefile неправильно, потому что я получил кучу результатов, подобных:
при выполнении GenericPlotFillAction ChronoFillAction Connection_reset в состоянии Size_450000:
Реализация SSE2 не допускается.
На самом деле я хотел сравнить SSE2 версию с тем же процессором.
Если вы не можете использовать 32 битных ОС, я предполагаю, что я могу повторить некоторые из диаграмм и сравнить результаты независимо друг от друга.
После удаления SSE2 версии, не имея эти ошибки необходимо изменить бегущие основные файлы (chronoBuffers.cpp, chronoConnections.cpp, chronoFunctions.cpp), чтобы удалить опцию SSE2, но эти ошибки не очень важны.
Во всяком случае, эти изменения были бы что-то вроде этого:
В chronoBuffers.cpp
EnumLoop linesLoop (ET_IMPLEMENTATION, 3, IT_C, IT_SSE2, IT_CUDA);
для
EnumLoop linesLoop (ET_IMPLEMENTATION, 2, IT_C, IT_CUDA);
В chronoConnections.cpp
EnumLoop linesLoop (ET_IMPLEMENTATION);
для
EnumLoop linesLoop (ET_IMPLEMENTATION, 4, IT_C, IT_SSE2, IT_CUDA, IT_CUDA_REDUC, IT_CUDA_INV);
поддерживать
linesLoop.addInnerLoop (новый EnumLoop (ET_IMPLEMENTATION, 2, IT_C, IT_CUDA));
для
chronoFunctions.cpp
Тем не менее, это выглядит как программное обеспечение скомпилированного. Я теперь получаю выходы (разделенные достаточно продолжительные паузы), как:
при выполнении GenericPlotFillAction ChronoFillAction Connection_calculateAndAddTo в состоянии Size_4500:
Максимальный размер входного поплавок 4032.
Полный выход из этого опыта был
вставили здесь.
Не волнуйтесь, это ожидается. Одна реализация CUDA не допускает определенных размеров.
Я не понимаю, почему он говорит
Cmake: *** [cuda_emu] Прерывание
По умолчанию она должна быть [все], а не [cuda_emu], но это не имеет значения.
Часть CUDA составлен без "--device эмуляция" так все в порядке:
(3: 624) # марка
/ USR / местные / CUDA / bin / NVCC -I SRC / -I / Opt / CUDA-инструментарий / включить / -DCPP_IMPL -DSSE2_IMPL -DCUDA_IMPL -g -c -G -arch sm_11 SRC / оптимизация / cuda_code.cu -o сборки /optimization/cuda_code.o
Можете ли вы подтвердить, если ожидается, что это поведение, как я предполагаю, что это не так (4500 шаг повторяется снова и снова, я предполагаю, что из-за пытаться использовать поплавок слишком высокой)? Если да, то я оставлю это работает в течение ночи (в следующий раз, когда я Nap, вероятно, около 5-6 часов).
Извините за не отвечая ранее. Я предпочел бы, чтобы запустить это с 32 битной ОС и версии SSE2, но опять же, если это не возможно, я буду работать его как-то.
Но другие ошибки в порядке, это просто реализация, которая является более ограниченным пытаюсь запустить большие размеры для слоев, чем он может. Это ожидается.
Еще раз спасибо за все ваши усилия и терпение.