207 похожих чатов

Я пишу программу, которая использует CUDA на машине, которая

это поддерживает и не использует на остальных.
CMakeLists.txt:
cmake_minimum_required(VERSION 3.10)

project(libslm LANGUAGES CXX)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_VERBOSE_MAKEFILE OFF)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_FLAGS "-Wall -Wextra -march=native")

if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build type" FORCE)
endif()

# CUDA/Thrust configuration
include(CheckLanguage)
check_language(CUDA)
add_compile_definitions(THRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_OMP)
if(CMAKE_CUDA_COMPILER)
message(STATUS "CUDA support is ON")
enable_language(CUDA)
add_compile_definitions(THRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA)
file(GLOB SRCS "*.cu" "display.cpp")
#set(CMAKE_SHARED_LIBRARY_CUDA_FLAGS "")
#set(CMAKE_SHARED_MODULE_CUDA_FLAGS "")
else()
message(STATUS "CUDA not found")
add_compile_definitions(THRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_OMP)
file(GLOB SRCS "*.cpp")

# FFTW
target_link_libraries(libslm PUBLIC fftw3f)
endif()

file(GLOB HDRS "*.h")

add_library(libslm SHARED ${SRCS} ${HDRS})
set_target_properties(libslm PROPERTIES OUTPUT_NAME "slm")
target_include_directories(libslm PRIVATE "..")
target_include_directories(libslm PUBLIC "../../vendor/thrust")

Структура файлов:
amplitude.cpp
amplitude.cu
amplitude.h
CMakeLists.txt
CMakeLists.txt.user
display.cpp
display.h
field_container.h
functors.h
gs_algorithm.cpp
gs_algorithm.cu
gs_algorithm.h
hologram.cpp
hologram.cu
hologram.h
slm.cpp
slm.cu
slm.h
Каждый .cu файл содержит только инклюд соответсвтующего .cpp файла (костыль, чтобы они комплиилилсь через nvcc, если есть способы умнее, то мне интересно)

Так вот, при сборке в nvcc почему-то попадает флаг -fPIC, который для него не определен, из-за чего компилятор падет с ошибкой.

Я посмотрел, этот флаг почему-то добавляется в CUDA_FLAGS в flags.make.
Вопрос 1: какая скотина добавляет этот флаг?
Вопрос 2: что я делаю не так?

4 ответов

8 просмотров

не совсем про то что спрашиваешь. про c++ by nvcc можно как-то так попробовать https://stackoverflow.com/questions/58861467/how-to-compile-c-as-cuda-using-cmake

-fPIC похож на "стандартный" флаг для шаредной либы

Eugene- Автор вопроса
Maxim Elchugin
-fPIC похож на "стандартный" флаг для шаредной либ...

А его может добавлять факт добавления либы? Всм, у меня там подключаются Qt, fftw и прочее. Оно может влиять?

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Ребят, чет я уже не догоняю... Крч в коде на асм там происходит нечто вроде a+число (a+1, a+2 и т.д.). Но почему строка lea ecx, [edx+1] работает как a+1?? В edx берется адрес...
Alan 🔝 Бэброу
4
думаешь я не смогу также сделать? мне это просто не удобно
int 💳 𝙖𝙞𝙧 𝙗𝙞𝙜 𝙗𝙤𝙗 🔫 check bio / spam block / AFK / nohello.com / GMT+3
9
Карта сайта