Skip to content

Commit acf56ba

Browse files
author
SaeHie Park
committed
DRAFT compiler support U24.04
on-going draft with compiler support U24.04 Signed-off-by: SaeHie Park <saehie.park@samsung.com>
1 parent 95b9a2a commit acf56ba

42 files changed

Lines changed: 220 additions & 125 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/run-onecc-build.yml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,14 @@ jobs:
4545
strategy:
4646
matrix:
4747
type: [ Debug, Release ]
48-
ubuntu_code: [ focal, jammy ]
48+
ubuntu_code: [ focal, jammy, noble ]
4949
include:
5050
- ubuntu_code: focal
5151
ubuntu_ver: 20.04
5252
- ubuntu_code: jammy
5353
ubuntu_ver: 22.04
54+
- ubuntu_code: noble
55+
ubuntu_ver: 24.04
5456
runs-on: one-x64-linux
5557
container:
5658
image: nnfw/one-devtools:${{ matrix.ubuntu_code }}
@@ -67,9 +69,15 @@ jobs:
6769
# dalgona uses pybind11, but pybind11 cannot bind packages in virtualenv.
6870
# So we need to install packages for dalgona-test globally.
6971
- name: Install required packages
72+
if: ${{ matrix.ubuntu_code == 'focal' || matrix.ubuntu_code == 'jammy' }}
7073
run: |
7174
python3 -m pip install numpy h5py==3.11.0 flatbuffers==23.5.26
7275
76+
- name: Install required packages
77+
if: ${{ matrix.ubuntu_code == 'noble' }}
78+
run: |
79+
apt-get install -y python3-numpy python3-h5py python3-flatbuffers
80+
7381
- name: Caching externals
7482
uses: actions/cache@v4
7583
with:
@@ -79,7 +87,7 @@ jobs:
7987
external-onecc-
8088
external-
8189
82-
- name: Caching externals
90+
- name: Caching overlay
8391
uses: actions/cache@v4
8492
with:
8593
path: ${{ env.NNCC_WORKSPACE }}/overlay

compiler/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
set(ONE_UBUNTU_CODENAME "focal")
44
find_program(LSB_RELEASE_EXEC lsb_release)
55
if(LSB_RELEASE_EXEC)
6-
# output should be one of 'bionic', 'focal', 'jammy'
6+
# output should be one of 'bionic', 'focal', 'jammy', 'noble'
77
# others are not tested
88
execute_process(COMMAND "${LSB_RELEASE_EXEC}" --short --codename
99
OUTPUT_VARIABLE ONE_UBUNTU_CODENAME

compiler/circle-interpreter-cffi-test/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ if(NOT ENABLE_TEST)
22
return()
33
endif(NOT ENABLE_TEST)
44

5-
set(VIRTUALENV "${NNCC_OVERLAY_DIR}/venv_2_12_1")
5+
set(VIRTUALENV "${NNCC_OVERLAY_DIR}/venv_2_19_0")
66
set(TEST_LIST_FILE "test.lst")
77

88
get_target_property(ARTIFACTS_PATH testDataGenerator BINARY_DIR)

compiler/circle-part-value-py-test/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ endforeach(IDX)
9898
add_custom_target(circle_part_value_py_test_prepare ALL DEPENDS ${TEST_DEPS})
9999
add_dependencies(circle_part_value_py_test_prepare common_artifacts_deps)
100100

101-
set(VIRTUALENV "${NNCC_OVERLAY_DIR}/venv_2_12_1")
101+
set(VIRTUALENV "${NNCC_OVERLAY_DIR}/venv_2_19_0")
102102
set(TEST_LIST_FILE "test.lst")
103103

104104
add_test(NAME circle_part_value_py_test

compiler/circle-part-value-test/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ add_dependencies(circle_part_value_test_prepare common_artifacts_deps)
107107
add_test(NAME circle_part_value_test
108108
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/part_eval_all.sh"
109109
"${CMAKE_CURRENT_BINARY_DIR}"
110-
"${NNCC_OVERLAY_DIR}/venv_2_12_1"
110+
"${NNCC_OVERLAY_DIR}/venv_2_19_0"
111111
"$<TARGET_FILE:circle_part_driver>"
112112
${PARTITION_LIST}
113113
)

compiler/coco/core/include/coco/IR/Op.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include "coco/IR/Part.h"
2828
#include "coco/IR/Entity.h"
2929

30+
#include <cstdint>
3031
#include <set>
3132

3233
#include <stdexcept>

compiler/common-artifacts/CMakeLists.txt

Lines changed: 61 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ else()
2525
endif()
2626

2727
# tensorflow 2.12.1 supports Python 3.8 ~ 3.11
28-
if(Python_VERSION VERSION_GREATER_EQUAL 3.12)
29-
message(STATUS "Build common-artifacts: FALSE (Python version 3.12 or higher is not supported yet)")
30-
return()
31-
endif()
28+
#if(Python_VERSION VERSION_GREATER_EQUAL 3.12)
29+
# message(STATUS "Build common-artifacts: FALSE (Python version 3.12 or higher is not supported yet)")
30+
# return()
31+
#endif()
3232
if(Python_VERSION VERSION_LESS 3.8)
3333
message(STATUS "Build common-artifacts: FAILED (Install Python version 3.8 or 3.10)")
3434
return()
@@ -42,17 +42,17 @@ else()
4242
set(PYTHON_EXECUTABLE ${Python_EXECUTABLE})
4343
endif()
4444

45-
# Create python virtual environment with tensorflow 2.12.1
46-
set(VIRTUALENV_OVERLAY_TF_2_12_1 "${NNCC_OVERLAY_DIR}/venv_2_12_1")
45+
# Create python virtual environment with tensorflow 2.19.0
46+
set(VIRTUALENV_OVERLAY_TF_2_19_0 "${NNCC_OVERLAY_DIR}/venv_2_19_0")
4747

4848
add_custom_command(
49-
OUTPUT ${VIRTUALENV_OVERLAY_TF_2_12_1}
50-
COMMAND ${PYTHON_EXECUTABLE} -m venv ${VIRTUALENV_OVERLAY_TF_2_12_1}
49+
OUTPUT ${VIRTUALENV_OVERLAY_TF_2_19_0}
50+
COMMAND ${PYTHON_EXECUTABLE} -m venv ${VIRTUALENV_OVERLAY_TF_2_19_0}
5151
)
5252

5353
# Create requirements.txt and install required pip packages
5454
set(REQUIREMENTS_FILE "requirements.txt")
55-
set(REQUIREMENTS_OVERLAY_PATH_TF_2_12_1 "${VIRTUALENV_OVERLAY_TF_2_12_1}/${REQUIREMENTS_FILE}")
55+
set(REQUIREMENTS_OVERLAY_PATH_TF_2_19_0 "${VIRTUALENV_OVERLAY_TF_2_19_0}/${REQUIREMENTS_FILE}")
5656

5757
set(PYTHON_OVERLAY python3)
5858
if(PYTHON_EXECUTABLE MATCHES python3.8)
@@ -68,43 +68,64 @@ endif()
6868
if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "aarch64")
6969
# NOTE `tensorflow-cpu` package is not available for aarch64, so we use `tensorflow` package.
7070
add_custom_command(
71-
OUTPUT ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1}
72-
COMMAND ${CMAKE_COMMAND} -E remove -f ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1}
73-
COMMAND ${CMAKE_COMMAND} -E echo "tensorflow==2.12.1" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1}
74-
COMMAND ${CMAKE_COMMAND} -E echo "flatbuffers==23.5.26" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1}
75-
COMMAND ${CMAKE_COMMAND} -E echo "protobuf==4.23.3" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1}
76-
COMMAND ${CMAKE_COMMAND} -E echo "pydot==1.4.2" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1}
77-
COMMAND ${CMAKE_COMMAND} -E echo "pytest==7.4.3" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1}
78-
COMMAND ${CMAKE_COMMAND} -E echo "h5py==3.11.0" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1}
79-
COMMAND ${CMAKE_COMMAND} -E echo "cffi==1.16.0" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1}
80-
COMMAND ${VIRTUALENV_OVERLAY_TF_2_12_1}/bin/${PYTHON_OVERLAY} -m pip --default-timeout=1000
71+
OUTPUT ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
72+
COMMAND ${CMAKE_COMMAND} -E remove -f ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
73+
COMMAND ${CMAKE_COMMAND} -E echo "tensorflow==2.12.1" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
74+
COMMAND ${CMAKE_COMMAND} -E echo "flatbuffers==23.5.26" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
75+
COMMAND ${CMAKE_COMMAND} -E echo "protobuf==4.23.3" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
76+
COMMAND ${CMAKE_COMMAND} -E echo "pydot==1.4.2" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
77+
COMMAND ${CMAKE_COMMAND} -E echo "pytest==7.4.3" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
78+
COMMAND ${CMAKE_COMMAND} -E echo "h5py==3.11.0" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
79+
COMMAND ${CMAKE_COMMAND} -E echo "cffi==1.16.0" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
80+
COMMAND ${VIRTUALENV_OVERLAY_TF_2_19_0}/bin/${PYTHON_OVERLAY} -m pip --default-timeout=1000
8181
${PIP_OPTION_TRUSTED_HOST} install --upgrade pip setuptools
82-
COMMAND ${VIRTUALENV_OVERLAY_TF_2_12_1}/bin/${PYTHON_OVERLAY} -m pip --default-timeout=1000
83-
${PIP_OPTION_TRUSTED_HOST} install -r ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1} --upgrade
84-
DEPENDS ${VIRTUALENV_OVERLAY_TF_2_12_1}
82+
COMMAND ${VIRTUALENV_OVERLAY_TF_2_19_0}/bin/${PYTHON_OVERLAY} -m pip --default-timeout=1000
83+
${PIP_OPTION_TRUSTED_HOST} install -r ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0} --upgrade
84+
DEPENDS ${VIRTUALENV_OVERLAY_TF_2_19_0}
8585
)
8686
else(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "aarch64")
87-
add_custom_command(
88-
OUTPUT ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1}
89-
COMMAND ${CMAKE_COMMAND} -E remove -f ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1}
90-
COMMAND ${CMAKE_COMMAND} -E echo "tensorflow-cpu==2.12.1" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1}
91-
COMMAND ${CMAKE_COMMAND} -E echo "flatbuffers==23.5.26" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1}
92-
COMMAND ${CMAKE_COMMAND} -E echo "protobuf==4.23.3" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1}
93-
COMMAND ${CMAKE_COMMAND} -E echo "pydot==1.4.2" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1}
94-
COMMAND ${CMAKE_COMMAND} -E echo "pytest==7.4.3" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1}
95-
COMMAND ${CMAKE_COMMAND} -E echo "h5py==3.11.0" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1}
96-
COMMAND ${CMAKE_COMMAND} -E echo "cffi==1.16.0" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1}
97-
COMMAND ${VIRTUALENV_OVERLAY_TF_2_12_1}/bin/${PYTHON_OVERLAY} -m pip --default-timeout=1000
98-
${PIP_OPTION_TRUSTED_HOST} install --upgrade pip setuptools
99-
COMMAND ${VIRTUALENV_OVERLAY_TF_2_12_1}/bin/${PYTHON_OVERLAY} -m pip --default-timeout=1000
100-
${PIP_OPTION_TRUSTED_HOST} install -r ${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1} --upgrade
101-
DEPENDS ${VIRTUALENV_OVERLAY_TF_2_12_1}
102-
)
87+
if(ONE_UBUNTU_CODENAME_NOBLE)
88+
add_custom_command(
89+
OUTPUT ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
90+
COMMAND ${CMAKE_COMMAND} -E remove -f ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
91+
COMMAND ${CMAKE_COMMAND} -E echo "tensorflow-cpu==2.19.0" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
92+
COMMAND ${CMAKE_COMMAND} -E echo "flatbuffers==24.3.25" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
93+
COMMAND ${CMAKE_COMMAND} -E echo "protobuf==5.29.4" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
94+
COMMAND ${CMAKE_COMMAND} -E echo "pydot==3.0.4" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
95+
COMMAND ${CMAKE_COMMAND} -E echo "pytest==8.3.5" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
96+
COMMAND ${CMAKE_COMMAND} -E echo "h5py==3.13.0" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
97+
COMMAND ${CMAKE_COMMAND} -E echo "cffi==1.17.1" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
98+
COMMAND ${CMAKE_COMMAND} -E echo "numpy==2.4.4" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
99+
COMMAND ${VIRTUALENV_OVERLAY_TF_2_19_0}/bin/${PYTHON_OVERLAY} -m pip --default-timeout=1000
100+
${PIP_OPTION_TRUSTED_HOST} install --upgrade pip setuptools
101+
COMMAND ${VIRTUALENV_OVERLAY_TF_2_19_0}/bin/${PYTHON_OVERLAY} -m pip --default-timeout=1000
102+
${PIP_OPTION_TRUSTED_HOST} install -r ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0} --upgrade
103+
DEPENDS ${VIRTUALENV_OVERLAY_TF_2_19_0}
104+
)
105+
else(ONE_UBUNTU_CODENAME_NOBLE)
106+
add_custom_command(
107+
OUTPUT ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
108+
COMMAND ${CMAKE_COMMAND} -E remove -f ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
109+
COMMAND ${CMAKE_COMMAND} -E echo "tensorflow-cpu==2.12.1" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
110+
COMMAND ${CMAKE_COMMAND} -E echo "flatbuffers==23.5.26" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
111+
COMMAND ${CMAKE_COMMAND} -E echo "protobuf==4.23.3" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
112+
COMMAND ${CMAKE_COMMAND} -E echo "pydot==1.4.2" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
113+
COMMAND ${CMAKE_COMMAND} -E echo "pytest==7.4.3" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
114+
COMMAND ${CMAKE_COMMAND} -E echo "h5py==3.11.0" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
115+
COMMAND ${CMAKE_COMMAND} -E echo "cffi==1.16.1" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
116+
COMMAND ${CMAKE_COMMAND} -E echo "numpy==2.1.3" >> ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
117+
COMMAND ${VIRTUALENV_OVERLAY_TF_2_19_0}/bin/${PYTHON_OVERLAY} -m pip --default-timeout=1000
118+
${PIP_OPTION_TRUSTED_HOST} install --upgrade pip setuptools
119+
COMMAND ${VIRTUALENV_OVERLAY_TF_2_19_0}/bin/${PYTHON_OVERLAY} -m pip --default-timeout=1000
120+
${PIP_OPTION_TRUSTED_HOST} install -r ${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0} --upgrade
121+
DEPENDS ${VIRTUALENV_OVERLAY_TF_2_19_0}
122+
)
123+
endif(ONE_UBUNTU_CODENAME_NOBLE)
103124
endif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "aarch64")
104125

105126
add_custom_target(common_artifacts_python_deps ALL
106-
DEPENDS ${VIRTUALENV_OVERLAY_TF_2_12_1}
107-
${REQUIREMENTS_OVERLAY_PATH_TF_2_12_1}
127+
DEPENDS ${VIRTUALENV_OVERLAY_TF_2_19_0}
128+
${REQUIREMENTS_OVERLAY_PATH_TF_2_19_0}
108129
)
109130

110131
#[[ Generate common resources ]]

compiler/dalgona-test/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,6 @@ add_test(
5353
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/TestSingleOp.sh"
5454
"${TEST_CONFIG}"
5555
"${ARTIFACTS_BIN_PATH}"
56-
"${NNCC_OVERLAY_DIR}/venv_2_12_1"
56+
"${NNCC_OVERLAY_DIR}/venv_2_19_0"
5757
${DALGONA_SINGLE_OP_TEST}
5858
)

compiler/dalgona/CMakeLists.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Ubuntu18.04; explictly installed python3.8 (default is python3.6)
33
# Ubuntu20.04; default python3.8
44
# Ubuntu22.04; default python3.10
5-
# Ubuntu24.04; explictly installed python3.8 (default is python3.12)
5+
# Ubuntu24.04; default python3.12
66
# refer https://github.com/Samsung/ONE/issues/9962
77
if(CMAKE_VERSION VERSION_LESS 3.12)
88
find_package(PythonInterp 3.8 QUIET)
@@ -24,10 +24,10 @@ else()
2424
endif()
2525

2626
# Require same python version of common-artifacts
27-
if(Python_VERSION VERSION_GREATER_EQUAL 3.12)
28-
message(STATUS "Build dalgona: FALSE (Python version 3.12 or higher is not supported yet)")
29-
return()
30-
endif()
27+
#if(Python_VERSION VERSION_GREATER_EQUAL 3.12)
28+
# message(STATUS "Build dalgona: FALSE (Python version 3.12 or higher is not supported yet)")
29+
# return()
30+
#endif()
3131
if(Python_VERSION VERSION_LESS 3.8)
3232
message(STATUS "Build dalgona: FAILED (Install Python version 3.8 or 3.10)")
3333
return()

compiler/exo/src/Circle/CircleOperationExporter.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ class OperationExporter final : public locoex::TFLNodeMutableVisitor<void>,
7373
void visit(locoex::TFLRelu *) final;
7474
void visit(locoex::TFLRelu6 *) final;
7575
// TODO TFLReshape
76+
void visit(locoex::TFLReshape *) final { assert(false); };
7677
void visit(locoex::TFLRsqrt *) final;
7778
// TODO TFLSoftmax
7879
void visit(locoex::TFLSqrt *) final;
@@ -125,6 +126,19 @@ class OperationExporter final : public locoex::TFLNodeMutableVisitor<void>,
125126

126127
void visit(locoex::COpCall *);
127128

129+
// NOTE adding visit() to make compiler happy with "-Werror=overloaded-virtual="
130+
void visit(loco::Node *) final { assert(false); }
131+
void visit(loco::MatMul *) final { assert(false); }
132+
void visit(loco::MatrixDecode *) final { assert(false); }
133+
void visit(loco::MatrixEncode *) final { assert(false); }
134+
void visit(loco::TensorTranspose *) final { assert(false); }
135+
void visit(loco::Forward *) final { assert(false); }
136+
void visit(loco::FilterDecode *) final { assert(false); }
137+
void visit(loco::DepthwiseFilterDecode *) final { assert(false); }
138+
void visit(loco::BiasDecode *) final { assert(false); }
139+
void visit(locoex::TFLNode *) final { assert(false); }
140+
void visit(locoex::CircleNode *) final { assert(false); }
141+
128142
private:
129143
/**
130144
* @brief Exports TFLMaxPool2D or TFLAveragePool2D

0 commit comments

Comments
 (0)