Skip to content

Commit 85b8a0d

Browse files
committed
Added CI to build anira without inference backend
1 parent dcf5b19 commit 85b8a0d

6 files changed

Lines changed: 54 additions & 43 deletions

File tree

.github/workflows/build_test.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,19 @@ jobs:
2626
include:
2727
- name: Linux-x86_64
2828
os: ubuntu-latest
29+
inference_engines: ON
30+
- name: Linux-x86_64-no_inference_engines
31+
os: ubuntu-latest
32+
inference_engines: OFF
2933
- name: macOS-x86_64
3034
os: macOS-latest
35+
inference_engines: ON
3136
- name: macOS-arm64
3237
os: macOS-latest
38+
inference_engines: ON
3339
- name: Windows-x86_64
3440
os: windows-latest
41+
inference_engines: ON
3542

3643
runs-on: ${{ matrix.os }}
3744
steps:
@@ -47,6 +54,6 @@ jobs:
4754
with:
4855
BUILD_TYPE: Release
4956
CMAKE_BUILD_PARALLEL_LEVEL: 4
50-
CMAKE_BUILD_ARGS: "-DBUILD_SHARED_LIBS=ON -DANIRA_WITH_TESTS=ON"
57+
CMAKE_BUILD_ARGS: "-DBUILD_SHARED_LIBS=ON -DANIRA_WITH_TESTS=ON -DANIRA_WITH_LIBTORCH=${{ matrix.inference_engines }} -DANIRA_WITH_ONNXRUNTIME=${{ matrix.inference_engines }} -DANIRA_WITH_TFLITE=${{ matrix.inference_engines }}"
5158
- name: test
5259
uses: ./.github/actions/test

examples/clap-audio-plugin/anira-clap-demo.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,25 @@ bool AniraClapPluginExample::paramsValueToText(clap_id paramId, double value, ch
9292
switch (newBackend)
9393
{
9494
case OnnxRuntime:
95+
#if USE_ONNX
9596
sValue = "OnnxRuntime";
97+
#else
98+
sValue = "OnnxRuntime (not available)";
99+
#endif
96100
break;
97101
case LibTorch:
102+
#if USE_LIBTORCH
98103
sValue = "LibTorch";
104+
#else
105+
sValue = "LibTorch (not available)";
106+
#endif
99107
break;
100108
case TensorFlowLite:
109+
#if USE_LIBTORCH
101110
sValue = "TensorFlowLite";
111+
#else
112+
sValue = "TensorFlowLite (not available)";
113+
#endif
102114
break;
103115
case Bypassed:
104116
sValue = "Bypassed";
@@ -227,13 +239,25 @@ void AniraClapPluginExample::handleInboundEvent(const clap_event_header_t *evt)
227239
if (m_param_to_value[v->param_id] == &m_param_backend) {
228240
switch ((Backend) m_param_backend) {
229241
case OnnxRuntime:
242+
#if USE_ONNX
230243
m_inference_handler.set_inference_backend(anira::InferenceBackend::ONNX);
244+
#else
245+
m_inference_handler.set_inference_backend(anira::InferenceBackend::CUSTOM);
246+
#endif
231247
break;
232248
case LibTorch:
249+
#if USE_LIBTORCH
233250
m_inference_handler.set_inference_backend(anira::InferenceBackend::LIBTORCH);
251+
#else
252+
m_inference_handler.set_inference_backend(anira::InferenceBackend::CUSTOM);
253+
#endif
234254
break;
235255
case TensorFlowLite:
256+
#if USE_TENSORFLOW
236257
m_inference_handler.set_inference_backend(anira::InferenceBackend::TFLITE);
258+
#else
259+
m_inference_handler.set_inference_backend(anira::InferenceBackend::CUSTOM);
260+
#endif
237261
break;
238262
default:
239263
m_inference_handler.set_inference_backend(anira::InferenceBackend::CUSTOM);

extras/models/hybrid-nn/HybridNNBypassProcessor.h

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,13 @@ class HybridNNBypassProcessor : public anira::BackendBase {
1010
void process(std::vector<anira::BufferF> &input, std::vector<anira::BufferF> &output, [[maybe_unused]] std::shared_ptr<anira::SessionElement> session) override {
1111
size_t num_batches;
1212
size_t num_input_samples;
13-
#if USE_LIBTORCH
14-
num_batches = (size_t) m_inference_config.get_tensor_input_shape(anira::InferenceBackend::LIBTORCH)[0][0];
15-
num_input_samples = (size_t) m_inference_config.get_tensor_input_shape(anira::InferenceBackend::LIBTORCH)[0][2];
16-
#elif USE_ONNXRUNTIME
17-
num_batches = (size_t) m_inference_config.get_tensor_input_shape(anira::InferenceBackend::ONNX)[0][0];
18-
num_input_samples = (size_t) m_inference_config.get_tensor_input_shape(anira::InferenceBackend::ONNX)[0][2];
19-
#elif USE_TFLITE
13+
14+
#if USE_TFLITE
2015
num_batches = (size_t) m_inference_config.get_tensor_input_shape(anira::InferenceBackend::TFLITE)[0][0];
2116
num_input_samples = (size_t) m_inference_config.get_tensor_input_shape(anira::InferenceBackend::TFLITE)[0][1];
17+
#else
18+
num_batches = (size_t) m_inference_config.get_tensor_input_shape()[0][0];
19+
num_input_samples = (size_t) m_inference_config.get_tensor_input_shape()[0][2];
2220
#endif
2321

2422
for (size_t channel = 0; channel < input[0].get_num_channels(); ++channel) {

extras/models/hybrid-nn/HybridNNConfig.h

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,7 @@ static std::vector<anira::ModelData> model_data_hybridnn_config = {
1616
};
1717

1818
static std::vector<anira::TensorShape> tensor_shape_hybridnn_config = {
19-
#ifdef USE_LIBTORCH
20-
{{{256, 1, 150}}, {{256, 1}}, anira::InferenceBackend::LIBTORCH},
21-
#endif
22-
#ifdef USE_ONNXRUNTIME
23-
{{{256, 1, 150}}, {{256, 1}}, anira::InferenceBackend::ONNX},
24-
#endif
19+
{{{256, 1, 150}}, {{256, 1}}},
2520
#ifdef USE_TFLITE
2621
{{{256, 150, 1}}, {{256, 1}}, anira::InferenceBackend::TFLITE},
2722
#endif

extras/models/hybrid-nn/HybridNNPrePostProcessor.h

Lines changed: 7 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -13,43 +13,21 @@ class HybridNNPrePostProcessor : public anira::PrePostProcessor
1313
int64_t num_batches = 0;
1414
int64_t num_input_samples = 0;
1515
int64_t num_output_samples = 0;
16-
#ifdef USE_LIBTORCH
17-
if (current_inference_backend == anira::InferenceBackend::LIBTORCH) {
18-
num_batches = m_inference_config.get_tensor_input_shape(anira::InferenceBackend::LIBTORCH)[0][0];
19-
num_input_samples = m_inference_config.get_tensor_input_shape(anira::InferenceBackend::LIBTORCH)[0][2];
20-
num_output_samples = m_inference_config.get_tensor_output_shape(anira::InferenceBackend::LIBTORCH)[0][1];
21-
}
22-
#endif
23-
#ifdef USE_ONNXRUNTIME
24-
if (current_inference_backend == anira::InferenceBackend::ONNX) {
25-
num_batches = m_inference_config.get_tensor_input_shape(anira::InferenceBackend::ONNX)[0][0];
26-
num_input_samples = m_inference_config.get_tensor_input_shape(anira::InferenceBackend::ONNX)[0][2];
27-
num_output_samples = m_inference_config.get_tensor_output_shape(anira::InferenceBackend::ONNX)[0][1];
28-
}
29-
#endif
16+
3017
#ifdef USE_TFLITE
3118
if (current_inference_backend == anira::InferenceBackend::TFLITE) {
3219
num_batches = m_inference_config.get_tensor_input_shape(anira::InferenceBackend::TFLITE)[0][0];
3320
num_input_samples = m_inference_config.get_tensor_input_shape(anira::InferenceBackend::TFLITE)[0][1];
3421
num_output_samples = m_inference_config.get_tensor_output_shape(anira::InferenceBackend::TFLITE)[0][1];
3522
}
36-
#endif
37-
else if (current_inference_backend == anira::InferenceBackend::CUSTOM) {
38-
#if USE_LIBTORCH
39-
num_batches = m_inference_config.get_tensor_input_shape(anira::InferenceBackend::LIBTORCH)[0][0];
40-
num_input_samples = m_inference_config.get_tensor_input_shape(anira::InferenceBackend::LIBTORCH)[0][2];
41-
num_output_samples = m_inference_config.get_tensor_output_shape(anira::InferenceBackend::LIBTORCH)[0][1];
42-
#elif USE_ONNXRUNTIME
43-
num_batches = m_inference_config.get_tensor_input_shape(anira::InferenceBackend::ONNX)[0][0];
44-
num_input_samples = m_inference_config.get_tensor_input_shape(anira::InferenceBackend::ONNX)[0][2];
45-
num_output_samples = m_inference_config.get_tensor_output_shape(anira::InferenceBackend::ONNX)[0][1];
46-
#elif USE_TFLITE
47-
num_batches = m_inference_config.get_tensor_input_shape(anira::InferenceBackend::TFLITE)[0][0];
48-
num_input_samples = m_inference_config.get_tensor_input_shape(anira::InferenceBackend::TFLITE)[0][1];
49-
num_output_samples = m_inference_config.get_tensor_output_shape(anira::InferenceBackend::TFLITE)[0][1];
23+
else {
5024
#endif
25+
num_batches = m_inference_config.get_tensor_input_shape()[0][0];
26+
num_input_samples = m_inference_config.get_tensor_input_shape()[0][2];
27+
num_output_samples = m_inference_config.get_tensor_output_shape()[0][1];
28+
#ifdef USE_TFLITE
5129
}
52-
30+
#endif
5331
if (
5432
#ifdef USE_LIBTORCH
5533
current_inference_backend != anira::InferenceBackend::LIBTORCH &&

test/scheduler/test_SessionElement.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,15 @@ struct SessionElementTestParams {
2020
std::vector<size_t> expected_receive_buffer_sizes;
2121
};
2222

23+
template <typename T>
24+
std::ostream& operator<<(std::ostream& os, const std::vector<T>& vec) {
25+
os << "[ ";
26+
for (const auto& item : vec)
27+
os << item << " ";
28+
os << "]";
29+
return os;
30+
}
31+
2332
std::ostream& operator<<(std::ostream& stream, const SessionElementTestParams& params)
2433
{
2534
stream << "{ ";

0 commit comments

Comments
 (0)