Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
c604725
Correct table for FF3/2
ed-xmos Sep 8, 2023
6dc55ec
Merge pull request #85 from xmos/ed-xmos-patch-1
ed-xmos Sep 8, 2023
59cb5cc
adding python to generate rst charts
andrewdewhurst Sep 19, 2023
8f4dae3
Script now genertaing a new rst file of plots, which is now included …
andrewdewhurst Sep 19, 2023
9ef9468
Started towards making a static library out of the C emulator code
Sep 20, 2023
cec56e8
Added wrapper functions for init and process
Sep 20, 2023
e4a8543
Separated core emulator code into a library
Sep 20, 2023
576d331
Copyright check
Sep 20, 2023
81828b5
Changelog update
Sep 20, 2023
871fb55
Update version in settings.json
Sep 20, 2023
e1099c2
fix changelog
Sep 20, 2023
0dbc4d9
Update version in module_build_info and the docs rst file
Sep 20, 2023
7e5a3a4
Add newline to changelog
Sep 20, 2023
7285a7c
Add newline to changelog
Sep 20, 2023
b5b90b0
Merge pull request #86 from shuchitak/feature/c_emu_static_lib
shuchitak Sep 20, 2023
a1c8af3
New settings file format
BrennanGit Sep 20, 2023
e64b91c
Move docs out of "rst" folder
BrennanGit Sep 20, 2023
893fe65
Switch from github actions to jenkins for doc build
BrennanGit Sep 20, 2023
2c3da9f
Merge remote-tracking branch 'origin' into feature/doc_builder_v4
BrennanGit Sep 21, 2023
5d4448f
Add PR label cheecking to enable doc-only builds
BrennanGit Sep 21, 2023
82443c9
Fix settings file name in lib test
BrennanGit Sep 21, 2023
841faa7
use agent none at top level
BrennanGit Sep 21, 2023
9010cf5
move celanup into correct place
BrennanGit Sep 21, 2023
db0af9a
Merge branch 'develop' of github.com:xmos/lib_src into doc_charts
Sep 21, 2023
5f957e6
Fix demo executables path. Remove MIPS info from the plot and the csv…
Sep 22, 2023
10583d2
-added support for building the model exexutable in the doc_python sc…
Sep 22, 2023
da7f61a
Added mpmath to dependencies
Sep 22, 2023
52743ea
fix typo
Sep 22, 2023
85edcbe
Remove condaEnv.yml
Sep 22, 2023
766f9e7
copyright check
Sep 22, 2023
3140cd8
artifcats
Sep 22, 2023
41b9936
mkdir -p
Sep 22, 2023
d6c6fc2
mkdir -p
Sep 22, 2023
0ff90a1
Jenkinsfile
Sep 22, 2023
57a66cf
Jenkinsfile
Sep 22, 2023
c539d5b
Archive snr plots as a zip
Sep 28, 2023
544d3c8
Cleanup
Sep 28, 2023
fc45721
Merge pull request #88 from xmos/doc_charts
shuchitak Sep 28, 2023
14926ac
Up to date with develop
Sep 28, 2023
7571df2
mkdir -p
Sep 28, 2023
bf67b6f
Add SNR plots to documentation
Sep 28, 2023
05eb44e
fix path
Sep 28, 2023
4503181
Remove extra bracket
Sep 28, 2023
13bd57a
ignore lib_logging in documentation build
Sep 28, 2023
dfe1f18
zip the documentation before archiving
Sep 29, 2023
9079847
fix zip command
Sep 29, 2023
4c2560d
Merge pull request #87 from BrennanGit/feature/doc_builder_v4
shuchitak Sep 29, 2023
c981ddb
Set xmsdoc version number
BrennanGit Oct 10, 2023
4ce58d2
doc_builder -> xmosdoc
BrennanGit Oct 10, 2023
1617b65
Merge pull request #89 from BrennanGit/feature/use_xmosdoc_v4
ed-xmos Oct 17, 2023
535e29d
Reduce the input freq limit for some cases to prevent aliasing in ASR…
Oct 17, 2023
b031cc6
Update changelog
ed-xmos Oct 17, 2023
4d23106
Merge pull request #91 from shuchitak/feature/fix_aliasing_in_plots
andrewdewhurst Oct 17, 2023
e776793
Add script to reduce Jenkins stage to a single invokation
ed-xmos Oct 17, 2023
dd43d63
Run script via sh
ed-xmos Oct 17, 2023
7803adc
Add version in argument
ed-xmos Oct 17, 2023
faab538
Fix the bash command
ed-xmos Oct 17, 2023
29fc1b3
Add some text to the performance plot section
ed-xmos Oct 17, 2023
36dadcd
Replace old performance plots with link
ed-xmos Oct 17, 2023
6c91045
Merge commit '4d23106c306f62f666dadfba216ed64ffbd8c219' into feature/…
ed-xmos Oct 17, 2023
0e51082
Small text correction
ed-xmos Oct 17, 2023
d35315e
Include performance doc in pdf gen
ed-xmos Oct 17, 2023
aa4231f
Merge pull request #92 from ed-xmos/feature/docs_updates
ed-xmos Oct 18, 2023
abf676a
Text correction and title justification
ed-xmos Oct 18, 2023
986d854
Newline in title
ed-xmos Oct 18, 2023
07f3c9f
Merge pull request #93 from ed-xmos/feature/correct_tone_desc
ed-xmos Oct 18, 2023
e47c082
Add known issue about overflow to docs
ed-xmos Oct 18, 2023
994f4b3
Character spacing
ed-xmos Oct 18, 2023
dd1f4cb
Fix changelog
ed-xmos Oct 20, 2023
a5e8b5c
Merge pull request #95 from ed-xmos/feature/overflow_warning
ed-xmos Oct 20, 2023
33f3bc2
Merge pull request #94 from xmos/develop
ed-xmos Oct 20, 2023
92647f6
Bump CI use of fwk_core version
ed-xmos Oct 26, 2023
4962d43
Removed unnecessary version bump
ed-xmos Oct 26, 2023
09d4f8c
Reword changelog about pulled in dep
ed-xmos Oct 26, 2023
5e60abc
Merge pull request #96 from xmos/feature/bump_fwk_core_ci
ed-xmos Oct 27, 2023
c15e2f0
Merge commit '5e60abc26461a99309b7c8708f317fdc8fc09eb1' into release/…
ed-xmos Oct 27, 2023
cc4a69b
Minor readme update
ed-xmos Oct 27, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 0 additions & 57 deletions .github/workflows/docs.yml

This file was deleted.

3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,6 @@ tests/vpu_ff3_test/autogen
tests/vpu_rat_test/autogen
*.csv
python/lib_src.egg-info
**/tmp_models/
*.bak
make_docs.sh
10 changes: 10 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
lib_src change log
==================

2.4.0
-----

* ADDED: Support for building the core ASRC code in the C emulator as a
library
* ADDED: Auto-generated ASRC and SSRC performance plots in documentation
* CHANGED: Documents built under Jenkins instead of Github Actions
* ADDED: Documentation warning about overflow in XS3 optimized SRC components
* CHANGED: Tested against fwk_core v1.0.2 updated from v1.0.0

2.3.0
-----

Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ if(PROJECT_IS_TOP_LEVEL)
FetchContent_Declare(
fwk_core
GIT_REPOSITORY https://github.com/xmos/fwk_core.git
GIT_TAG v1.0.0
GIT_TAG v1.0.2
)
FetchContent_MakeAvailable(fwk_core)
endif()
Expand Down
203 changes: 113 additions & 90 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,17 @@ def localRunPytest(String extra_args="") {
getApproval()

pipeline {
agent {
label 'x86_64&&macOS' // These agents have 24 cores so good for parallel xsim runs
}
agent none
environment {
REPO = 'lib_src'
VIEW = getViewName(REPO)
PYTHON_VERSION = "3.10.5"
VENV_DIRNAME = ".venv"
XMOSDOC_VERSION = "v4.0"
}
options {
skipDefaultCheckout()
timestamps()
}
parameters {
string(
Expand All @@ -37,119 +37,142 @@ pipeline {
)
}
stages {
stage('Get repo') {
steps {
sh "mkdir ${REPO}"
// source checks require the directory
// name to be the same as the repo name
dir("${REPO}") {
// checkout repo
checkout scm
sh 'git submodule update --init --recursive --depth 1'
}
stage('Build and Test') {
when {
expression { !env.GH_LABEL_DOC_ONLY.toBoolean() }
}
}
stage ("Create Python environment")
{
steps {
dir("${REPO}") {
createVenv('requirements.txt')
withVenv {
sh 'pip install -r requirements.txt'
agent {
label 'x86_64&&docker' // These agents have 24 cores so good for parallel xsim runs
}
stages {
stage('Get repo') {
steps {
sh "mkdir ${REPO}"
// source checks require the directory
// name to be the same as the repo name
dir("${REPO}") {
// checkout repo
checkout scm
sh 'git submodule update --init --recursive --depth 1'
}
}
}
}
}
stage('Library checks') {
steps {
dir("${REPO}") {
sh 'git clone git@github.com:xmos/infr_apps.git'
sh 'git clone git@github.com:xmos/infr_scripts_py.git'
// These are needed for xmake legacy build and also changelog check
sh 'git clone git@github.com:xmos/lib_logging.git'
sh 'git clone git@github.com:xmos/lib_xassert.git'
withVenv {
sh 'pip install -e infr_scripts_py'
sh 'pip install -e infr_apps'
dir("tests") {
withEnv(["XMOS_ROOT=.."]) {
localRunPytest('-s test_lib_checks.py -vv')
stage ("Create Python environment") {
steps {
dir("${REPO}") {
createVenv('requirements.txt')
withVenv {
sh 'pip install -r requirements.txt'
}
}
}
}
}
}
stage('Test xmake build') {
steps {
runningOn(env.NODE_NAME)
dir("${REPO}") {
withTools(params.TOOLS_VERSION) {
withVenv {
dir("tests") {
localRunPytest('-k "legacy" -vv')
stage('Library checks') {
steps {
dir("${REPO}") {
sh 'git clone git@github.com:xmos/infr_apps.git'
sh 'git clone git@github.com:xmos/infr_scripts_py.git'
// These are needed for xmake legacy build and also changelog check
sh 'git clone git@github.com:xmos/lib_logging.git'
sh 'git clone git@github.com:xmos/lib_xassert.git'
withVenv {
sh 'pip install -e infr_scripts_py'
sh 'pip install -e infr_apps'
dir("tests") {
withEnv(["XMOS_ROOT=.."]) {
localRunPytest('-s test_lib_checks.py -vv')
}
}
}
}
}
}
}
}
stage('Tests XS2') {
steps {
runningOn(env.NODE_NAME)
dir("${REPO}") {
withTools(params.TOOLS_VERSION) {
withVenv {
sh 'mkdir build'
dir("build") {
sh 'rm -rf'
sh 'cmake --toolchain ../xmos_cmake_toolchain/xs2a.cmake ..'
sh 'make test_ds3_voice test_us3_voice test_unity_gain_voice -j'
stage('Test xmake build') {
steps {
runningOn(env.NODE_NAME)
dir("${REPO}") {
withTools(params.TOOLS_VERSION) {
withVenv {
dir("tests") {
localRunPytest('-k "legacy" -vv')
}
}
}
dir("tests") {
localRunPytest('-n auto -k "xs2" -vv')
}
}
}
stage('Run doc python') {
steps {
runningOn(env.NODE_NAME)
dir("${REPO}") {
withTools(params.TOOLS_VERSION) {
withVenv {
sh "sh doc/build_docs_ci.sh $XMOSDOC_VERSION"
archiveArtifacts artifacts: "doc_build.zip", allowEmptyArchive: true
}
}
dir("build") {
sh 'rm -rf' // Cleanup XS2 cmake cache for next stage
}
}
}
stage('Tests XS2') {
steps {
runningOn(env.NODE_NAME)
dir("${REPO}") {
withTools(params.TOOLS_VERSION) {
withVenv {
sh 'mkdir -p build'
dir("build") {
sh 'rm CMakeCache.txt'
sh 'cmake --toolchain ../xmos_cmake_toolchain/xs2a.cmake ..'
sh 'make test_ds3_voice test_us3_voice test_unity_gain_voice -j'
}
dir("tests") {
localRunPytest('-n auto -k "xs2" -vv')
}
dir("build") {
sh 'rm CMakeCache.txt' // Cleanup XS2 cmake cache for next stage
}
}
}
}
}
}
}
}
stage('Tests XS3') {
steps {
runningOn(env.NODE_NAME)
dir("${REPO}") {
withTools(params.TOOLS_VERSION) {
withVenv {
dir("tests") {
localRunPytest('-m prepare') // Do all pre work like building and generating golden ref where needed
stage('Tests XS3') {
steps {
runningOn(env.NODE_NAME)
dir("${REPO}") {
withTools(params.TOOLS_VERSION) {
withVenv {
dir("tests") {
localRunPytest('-m prepare') // Do all pre work like building and generating golden ref where needed

// FF3 HiFi tests for OS3 and DS3
localRunPytest('-m main -n auto -k "hifi_ff3" -vv')
// FF3 HiFi tests for OS3 and DS3
localRunPytest('-m main -n auto -k "hifi_ff3" -vv')

// ASRC and SSRC tests across all in/out freqs and deviations (asrc only)
localRunPytest('-m main -n auto -k "mrhf" -vv')
archiveArtifacts artifacts: "mips_report*.csv", allowEmptyArchive: true
// ASRC and SSRC tests across all in/out freqs and deviations (asrc only)
localRunPytest('-m main -n auto -k "mrhf" -vv')
archiveArtifacts artifacts: "mips_report*.csv", allowEmptyArchive: true

// VPU enabled ff3 and rat tests
localRunPytest('-m main -k "vpu" -vv') // xdist not working yet so no -n auto
// VPU enabled ff3 and rat tests
localRunPytest('-m main -k "vpu" -vv') // xdist not working yet so no -n auto

// Profile the ASRC
localRunPytest('-m main -k "profile_asrc" -vv')
sh 'tree'
archiveArtifacts artifacts: "gprof_results/*.png", allowEmptyArchive: true
// Profile the ASRC
localRunPytest('-m main -k "profile_asrc" -vv')
sh 'tree'
archiveArtifacts artifacts: "gprof_results/*.png", allowEmptyArchive: true
}
}
}
}
}
}
}
post {
cleanup {
xcoreCleanSandbox()
}
}
}
}
post {
cleanup {
xcoreCleanSandbox()
}

}
}
6 changes: 6 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,12 @@ There are three different component options that support fixed factor of 3 up/do
#. If voice quality (65 dB SNR) is required running on xCORE-200, use ds3_voice or us3_voice.
#. If voice quality (75 dB SNR) is required running xcore-ai, use ff3_96t_ds or ff3_96t_us.

.. warning::
Synchronous fixed factor of 3 and 3/2 downsample and oversample functions for voice applications optimized for the XS3 Vector Processing Unit
currently overflow rather than saturate in cases where a full scale input causes a perturbation above full scale at the output.
To avoid this scenario, please ensure that the input amplitude is always 3.5 dB below full scale.
The overflow behavior of these SRC components will be replaced by saturating behavior (to match all other SRC components) in a future release.


Related Application Notes
.........................
Expand Down
21 changes: 21 additions & 0 deletions doc/build_docs_ci.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# This script is designed to be run by the CI under a venv set by requirements.txt in the repo root.
# Take a look at the Jenkinsfile for the general idea.
# It should be run as /doc/build_docs_ci.sh from the repo root as the cwd.

if [ -z "$1" ]
then
echo "Please pass the xmosdoc version. Eg. $/doc/build_docs_ci.sh v4.0"
exit -1
fi

# Build the autogenerated section
cd doc/python
python doc_asrc.py
cd ../..

# Create the docs from source
docker pull ghcr.io/xmos/xmosdoc:$1
docker run -u "$(id -u):$(id -g)" --rm -v `pwd`:/build ghcr.io/xmos/xmosdoc:$1 -v

# Leave a nice zip file for picking up as an artefact
zip -r doc_build.zip doc/_build
7 changes: 4 additions & 3 deletions doc/exclude-patterns.inc → doc/exclude_patterns.inc
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
# The following patterns are to be excluded from the documentation build
tests/*
build/*
**LICENSE*

# Do not build .md files

*.md
**/*.md
lib_logging/**
lib_xassert/**

# We need to ensure these are not processed twice which breaks figure numbering. They are included via index.rst.
**/multi_rate_hifi_src.rst
**/fixed_ratio_src.rst
**/resource_usage_asrc.rst
**/resource_usage_ssrc.rst
**/resource_usage_ssrc.rst
Loading