mirror of https://github.com/F-Stack/f-stack.git
96 lines
2.2 KiB
Meson
96 lines
2.2 KiB
Meson
|
# SPDX-License-Identifier: BSD-3-Clause
|
||
|
# Copyright (c) 2022 Marvell.
|
||
|
|
||
|
if not is_linux or not dpdk_conf.get('RTE_ARCH_64')
|
||
|
build = false
|
||
|
reason = 'only supported on 64-bit Linux'
|
||
|
subdir_done()
|
||
|
endif
|
||
|
|
||
|
enable_mvtvm = true
|
||
|
|
||
|
if not libarchive.found()
|
||
|
message('drivers/ml/cnxk: libarchive not found')
|
||
|
enable_mvtvm = false
|
||
|
endif
|
||
|
|
||
|
if not jansson_dep.found()
|
||
|
message('drivers/ml/cnxk: jansson not found')
|
||
|
enable_mvtvm = false
|
||
|
endif
|
||
|
|
||
|
dlpack_dep = dependency('dlpack', method: 'cmake', required: false, cmake_args: 'CONFIG')
|
||
|
if not dlpack_dep.found()
|
||
|
message('drivers/ml/cnxk: dlpack not found')
|
||
|
enable_mvtvm = false
|
||
|
endif
|
||
|
|
||
|
dmlc_dep = dependency('dmlc', method: 'cmake', required: false, cmake_args: 'CONFIG')
|
||
|
if not dmlc_dep.found()
|
||
|
message('drivers/ml/cnxk: dmlc not found')
|
||
|
enable_mvtvm = false
|
||
|
endif
|
||
|
|
||
|
tvm_dep = dependency('tvm', method: 'cmake', required: false, cmake_args: 'CONFIG', modules : ['tvm::tvm_runtime'])
|
||
|
if not tvm_dep.found()
|
||
|
message('drivers/ml/cnxk: tvm_runtime not found')
|
||
|
enable_mvtvm = false
|
||
|
endif
|
||
|
|
||
|
tvmdp_dep = dependency('tvmdp', method: 'pkg-config', required: false)
|
||
|
if not tvmdp_dep.found()
|
||
|
message('drivers/ml/cnxk: tvmdp not found')
|
||
|
enable_mvtvm = false
|
||
|
endif
|
||
|
|
||
|
sources = files(
|
||
|
'cn10k_ml_dev.c',
|
||
|
'cn10k_ml_ops.c',
|
||
|
'cn10k_ml_model.c',
|
||
|
'cn10k_ml_ocm.c',
|
||
|
'cnxk_ml_dev.c',
|
||
|
'cnxk_ml_io.c',
|
||
|
'cnxk_ml_model.c',
|
||
|
'cnxk_ml_ops.c',
|
||
|
'cnxk_ml_utils.c',
|
||
|
)
|
||
|
|
||
|
deps += ['mldev', 'common_cnxk', 'kvargs', 'hash']
|
||
|
|
||
|
if enable_mvtvm
|
||
|
|
||
|
dpdk_conf.set('RTE_MLDEV_CNXK_ENABLE_MVTVM', 1)
|
||
|
|
||
|
sources += files(
|
||
|
'mvtvm_ml_dev.c',
|
||
|
'mvtvm_ml_ops.c',
|
||
|
'mvtvm_ml_model.c',
|
||
|
)
|
||
|
|
||
|
ext_deps += jansson_dep
|
||
|
ext_deps += dlpack_dep
|
||
|
ext_deps += dmlc_dep
|
||
|
ext_deps += tvm_dep
|
||
|
ext_deps += tvmdp_dep
|
||
|
ext_deps += cc.find_library('stdc++', required: true)
|
||
|
|
||
|
deps += ['bus_vdev']
|
||
|
|
||
|
message('drivers/ml/cnxk: Enabled TVM model support')
|
||
|
else
|
||
|
message('drivers/ml/cnxk: Disabled TVM model support')
|
||
|
|
||
|
sources += files(
|
||
|
'mvtvm_ml_stubs.c',
|
||
|
)
|
||
|
|
||
|
endif
|
||
|
|
||
|
require_iova_in_mbuf = false
|
||
|
|
||
|
if get_option('buildtype').contains('debug')
|
||
|
cflags += [ '-DCNXK_ML_DEV_DEBUG' ]
|
||
|
else
|
||
|
cflags += [ '-UCNXK_ML_DEV_DEBUG' ]
|
||
|
endif
|