From 9d2e7ae2057d101b64969f3d37e56a544a092097 Mon Sep 17 00:00:00 2001 From: Mike Oliphant Date: Sat, 16 Nov 2024 08:09:58 -0800 Subject: [PATCH] Fixed propagation of native arch optimizations --- deps/NeuralAudio | 2 +- src/CMakeLists.txt | 58 +++++++++++++++++++++++----------------------- src/nam_plugin.cpp | 18 ++++++++++---- 3 files changed, 43 insertions(+), 35 deletions(-) diff --git a/deps/NeuralAudio b/deps/NeuralAudio index 3ce0627..cd8f329 160000 --- a/deps/NeuralAudio +++ b/deps/NeuralAudio @@ -1 +1 @@ -Subproject commit 3ce06272ebbf1d2d4f7f07ccf0d655f40401fd09 +Subproject commit cd8f329630fd5006df3d25177136d7a746c9fec1 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0251c9a..e2504c3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,8 +1,29 @@ -add_subdirectory(../deps/NeuralAudio NeuralAudio) +if (MSVC) + add_compile_options( + "$<$:/W4>" + "$<$:/O2>" + ) +else() + add_compile_options( + -Wall + # -Wpedantic -Wextra -Wstrict-aliasing -Wunreachable-code -Weffc++ -Wno-unused-parameter + "$<$:-Og;-ggdb>" + "$<$:-Ofast>" + "$<$:-Ofast>" + ) +endif() -include_directories(SYSTEM ../deps/NeuralAudio) -include_directories(SYSTEM ../deps/lv2/include) -include_directories(SYSTEM ../deps/denormal) + +if (CMAKE_SYSTEM_PROCESSOR MATCHES "(amd64)|(AMD64)|(x86_64)") + option(USE_NATIVE_ARCH "Enable architecture-specific optimizations" OFF) + + if (USE_NATIVE_ARCH) + add_compile_options(-march=x86-64-v3) + message("Enabling -march=x86-64-v3") + endif (USE_NATIVE_ARCH) +endif () + +add_subdirectory(../deps/NeuralAudio NeuralAudio) set(SOURCES nam_lv2.cpp nam_plugin.cpp @@ -12,6 +33,10 @@ set(NA_SOURCES ../deps/NeuralAudio/NeuralAudio/NeuralModel.h) add_library(neural_amp_modeler SHARED ${SOURCES} ${NA_SOURCES}) +target_include_directories(neural_amp_modeler PUBLIC ../deps/NeuralAudio) +target_include_directories(neural_amp_modeler PUBLIC ../deps/lv2/include) +target_include_directories(neural_amp_modeler PUBLIC ../deps/denormal) + target_link_libraries(neural_amp_modeler PRIVATE NeuralAudio) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${SOURCES}) @@ -35,16 +60,6 @@ if (WAVENET_PREFER_NAM) add_definitions(-DWAVENET_PREFER_NAM) endif (WAVENET_PREFER_NAM) - -if (CMAKE_SYSTEM_PROCESSOR MATCHES "(amd64)|(AMD64)|(x86_64)") - option(USE_NATIVE_ARCH "Enable architecture-specific optimizations" OFF) - - if (USE_NATIVE_ARCH) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=x86-64-v3") - message("Enabling -march=x86-64-v3") - endif (USE_NATIVE_ARCH) -endif () - set_target_properties(neural_amp_modeler PROPERTIES CXX_VISIBILITY_PRESET hidden @@ -57,18 +72,3 @@ set_target_properties(neural_amp_modeler if (CMAKE_SYSTEM_NAME STREQUAL "Windows") target_compile_definitions(neural_amp_modeler PRIVATE NOMINMAX WIN32_LEAN_AND_MEAN) endif() - -if (MSVC) - target_compile_options(neural_amp_modeler PRIVATE - "$<$:/W4>" - "$<$:/O2>" - ) -else() - target_compile_options(neural_amp_modeler PRIVATE - -Wall - # -Wpedantic -Wextra -Wstrict-aliasing -Wunreachable-code -Weffc++ -Wno-unused-parameter - "$<$:-Og;-ggdb>" - "$<$:-Ofast>" - "$<$:-Ofast>" - ) -endif() diff --git a/src/nam_plugin.cpp b/src/nam_plugin.cpp index 6f7014f..20c784b 100644 --- a/src/nam_plugin.cpp +++ b/src/nam_plugin.cpp @@ -11,15 +11,23 @@ namespace NAM { Plugin::Plugin() { // prevent allocations on the audio thread - currentModelPath.reserve(MAX_FILE_NAME+1); + currentModelPath.reserve(MAX_FILE_NAME + 1); -#ifdef LSTM_PREFER_NAM // Use NAM Core for NAM LSTM models - NeuralAudio::NeuralModel::SetLSTMLoadMode(NeuralAudio::PreferNAMCore); + NeuralAudio::NeuralModel::SetLSTMLoadMode( +#ifdef LSTM_PREFER_NAM + NeuralAudio::PreferNAMCore +#else + NeuralAudio::PreferRTNeural #endif + ); -#ifdef WAVENET_PREFER_NAM // Use NAM Core for NAM WaveNet models - NeuralAudio::NeuralModel::SetWaveNetLoadMode(NeuralAudio::PreferNAMCore); + NeuralAudio::NeuralModel::SetWaveNetLoadMode( +#ifdef WAVENET_PREFER_NAM + NeuralAudio::PreferNAMCore +#else + NeuralAudio::PreferRTNeural #endif + ); } Plugin::~Plugin()