parent
dd3b4106fd
commit
3536436b50
@ -0,0 +1,2 @@
|
||||
/LPCNet-0.2.tar.gz
|
||||
/lpcnet_191005_v1.0.tgz
|
@ -0,0 +1,15 @@
|
||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index 6c49f5e..a0b9f0a 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -29,8 +29,8 @@ target_include_directories(lpcnetfreedv INTERFACE
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
||||
)
|
||||
install(TARGETS lpcnetfreedv EXPORT lpcnetfreedv-config
|
||||
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/lpcnetfreedv
|
||||
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/lpcnetfreedv
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lpcnet
|
||||
)
|
@ -0,0 +1,62 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 680f52c..e536f30 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -52,6 +52,9 @@ message(STATUS "LPCNet version: ${LPCNET_VERSION}")
|
||||
# Set default flags
|
||||
set(CMAKE_C_FLAGS "-Wall -W -Wextra -Wno-unused-function -O3 -g -I. -MD ${CMAKE_C_FLAGS} -DENABLE_ASSERTIONS")
|
||||
|
||||
+# Arch specific stuff here
|
||||
+message(STATUS "Host system arch is: ${CMAKE_SYSTEM_PROCESSOR}")
|
||||
+
|
||||
# Detection of available CPU optimizations
|
||||
if(NOT DISABLE_CPU_OPTIMIZATION)
|
||||
if(UNIX AND NOT APPLE)
|
||||
@@ -87,7 +90,7 @@ elseif(${AVX} OR ${AVX} GREATER 0)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx")
|
||||
endif()
|
||||
|
||||
-# RPi
|
||||
+# RPi / ARM 32bit
|
||||
if(${NEON} OR ${NEON} GREATER 0)
|
||||
message(STATUS "neon processor flags found or enabled.")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon -march=armv8-a -mtune=cortex-a53")
|
||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index 41a78dc..6c49f5e 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -49,7 +49,7 @@ target_link_libraries(dump_data lpcnetfreedv m codec2)
|
||||
add_executable(test_lpcnet test_lpcnet.c)
|
||||
target_link_libraries(test_lpcnet lpcnetfreedv m codec2)
|
||||
|
||||
-if(AVX OR AVX2)
|
||||
+if(AVX OR AVX2 OR CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
|
||||
add_executable(test_vec test_vec.c)
|
||||
target_link_libraries(test_vec m)
|
||||
else()
|
||||
diff --git a/src/nnet.c b/src/nnet.c
|
||||
index 8ad4a26..ccb9c94 100644
|
||||
--- a/src/nnet.c
|
||||
+++ b/src/nnet.c
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
#ifdef __AVX__
|
||||
#include "vec_avx.h"
|
||||
-#elif __ARM_NEON__
|
||||
+#elif __ARM_NEON__ || __aarch64__
|
||||
#include "vec_neon.h"
|
||||
#else
|
||||
#warning Compiling without any vectorization. This code will be very slow
|
||||
diff --git a/src/test_vec.c b/src/test_vec.c
|
||||
index 09b51e7..254292b 100644
|
||||
--- a/src/test_vec.c
|
||||
+++ b/src/test_vec.c
|
||||
@@ -26,7 +26,7 @@ const char simd[]="AVX2";
|
||||
#else
|
||||
const char simd[]="AVX";
|
||||
#endif
|
||||
-#elif __ARM_NEON__
|
||||
+#elif __ARM_NEON__ || __aarch64__
|
||||
#include "vec_neon.h"
|
||||
const char simd[]="NEON";
|
||||
#else
|
@ -0,0 +1,83 @@
|
||||
Name: lpcnetfreedv
|
||||
Version: 0.2
|
||||
Release: 2%{?dist}
|
||||
Summary: LPCNet for FreeDV
|
||||
|
||||
License: BSD
|
||||
URL: https://github.com/drowe67/LPCNet
|
||||
Source0: https://github.com/drowe67/LPCNet/archive/v%{version}/LPCNet-%{version}.tar.gz
|
||||
Source1: http://rowetel.com/downloads/deep/lpcnet_191005_v1.0.tgz
|
||||
|
||||
# Fixes for aarch64 which has NEON instructions natively
|
||||
Patch0: lpcnetfreedv-vector-updates.patch
|
||||
# Make library private for FreeDV
|
||||
Patch1: lpcnetfreedv-private_libs.patch
|
||||
|
||||
BuildRequires: cmake gcc
|
||||
BuildRequires: codec2-devel
|
||||
|
||||
%description
|
||||
Experimental version of LPCNet that has been used to develop FreeDV 2020 - a HF
|
||||
radio Digial Voice mode for over the air experimentation with Neural Net speech
|
||||
coding. Possibly the first use of Neural Net speech coding in real world
|
||||
operation.
|
||||
|
||||
%package devel
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
Summary: Development files and tools for LPCNet
|
||||
|
||||
%description devel
|
||||
%{summary}.
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n LPCNet-%{version}
|
||||
|
||||
|
||||
%build
|
||||
mkdir build && pushd build
|
||||
# Add model data archive to the build directory so CMake finds it.
|
||||
cp %{SOURCE1} .
|
||||
|
||||
# We need to force optimizations to specific values since the build system and
|
||||
# host system will likely be different.
|
||||
%ifarch i686 x86_64
|
||||
%global _cpuopt "-DAVX=TRUE"
|
||||
%endif
|
||||
%ifarch armv7hl
|
||||
%global _cpuopt "-DNEON=TRUE"
|
||||
%endif
|
||||
%ifarch aarch64 ppc64le s390x
|
||||
# NEON instructions are native in arm64.
|
||||
%global _cpuopt ""
|
||||
%endif
|
||||
|
||||
%cmake -DDISABLE_CPU_OPTIMIZATION=TRUE %{_cpuopt} ../
|
||||
%make_build
|
||||
|
||||
|
||||
%install
|
||||
pushd build
|
||||
%make_install
|
||||
|
||||
|
||||
%files
|
||||
%license COPYING
|
||||
%doc README.md
|
||||
%{_libdir}/%{name}/lib%{name}.so
|
||||
|
||||
%files devel
|
||||
%{_bindir}/*
|
||||
%{_includedir}/lpcnet/
|
||||
%{_libdir}/cmake/lpcnetfreedv/
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed May 13 2020 Richard Shaw <hobbes1069@gmail.com> - 0.2-2
|
||||
- Update per reviewer comments.
|
||||
- Renamed package to lpcnetfreedv (same as library), repo will be renamed in
|
||||
the near future.
|
||||
- Made library private as it is essentially a plugin for freedv.
|
||||
|
||||
* Mon Apr 20 2020 Richard Shaw <hobbes1069@gmail.com> - 0.2-1
|
||||
- Initial packaging.
|
@ -0,0 +1,2 @@
|
||||
SHA512 (LPCNet-0.2.tar.gz) = 3fa581512b7431bf4df41a0abc0c4f2b262d57f1bf4756dfb23c774393dccd90bb9f7f874e5192aaabd17ed780007602f363d545d3cfb53bb9ee7022ed4a966c
|
||||
SHA512 (lpcnet_191005_v1.0.tgz) = ffa52c492f2ef1ca09c34b321b36d9dd26f6d3a2e807f4601858b45a1c6159b45b846bfaf3d37c74acead955c0ad47c2d06cb08b8347d5ec441cd751f2110167
|
Loading…
Reference in new issue