Fix meson build options to support ARM properly
authorDonghyeon Jeong <dhyeon.jeong@samsung.com>
Mon, 7 Aug 2023 01:48:12 +0000 (10:48 +0900)
committerJijoong Moon <jijoong.moon@samsung.com>
Mon, 21 Aug 2023 06:29:23 +0000 (15:29 +0900)
- Check for non-android ARM machines
- Use blas_neon.cpp only for ARM machines

Signed-off-by: Donghyeon Jeong <dhyeon.jeong@samsung.com>
meson.build
nntrainer/tensor/meson.build

index d4fb43fde7b0874f52d24e12d7c5d287a2f65bb6..348f8476f29f809b1b6d8e5ebdad689232434a05 100644 (file)
@@ -79,6 +79,8 @@ if get_option('enable-fp16')
    if get_option('platform') == 'android'
      add_project_arguments('-mfp16-format=ieee', language: ['c', 'cpp'])
      extra_defines += '-DUSE__FP16=1'
+   elif arch == 'aarch64' or arch =='arm'
+     extra_defines += '-DUSE__FP16=1'
    else
      has_avx512fp16 = cc.has_argument('-mavx512fp16')
      if (has_avx512fp16)
index 39edb3ad3f94b18d672c23049d77b7d105c88234..06568babe6817352f5c734085c3b917143efaff3 100644 (file)
@@ -17,7 +17,6 @@ tensor_sources = [
   'optimized_v2_planner.cpp',
   'optimized_v3_planner.cpp',
   'task_executor.cpp',
-  'blas_neon.cpp',
 ]
 
 tensor_headers = [
@@ -26,6 +25,12 @@ tensor_headers = [
   'tensor_wrap_specs.h'
 ]
 
+arch = target_machine.cpu_family()
+
+if get_option('platform') == 'android' or arch == 'aarch64' or arch =='arm'
+  tensor_sources += 'blas_neon.cpp'
+endif
+
 foreach s : tensor_sources
   nntrainer_sources += meson.current_source_dir() / s
 endforeach