New top level python namespace: tvm/utils

Hi All,

We are adding a new top-level namespace for python: tvm/utils. This is a space for “high-level” utilities around tvm that don’t quite fix into the existing namespaces. Right now it just contains some functions to do roofline analysis.

2 Likes

:+1: I think this makes sense, I’ve seen utils in a lot of projects.

I’m okay with this, but I’d like to make one request: a very common problem with utils in my experience is that it becomes the kitchen sink. Could we consider adopting a convention e.g.

src/utils/irmodule_util.cc src/utils/relay_util.cc

e.g. granular enough so that it’s clear where someone adding a utils should place things?

additionally, what should we do about utils.cc which may already live elsewhere?

~/ws/tvm2$ find . -name '*utils.cc'
./src/relay/qnn/utils.cc
./src/relay/backend/utils.cc
./src/relay/backend/contrib/ethosu/utils.cc
./src/relay/transforms/infer_layout_utils.cc
./src/auto_scheduler/utils.cc
./src/auto_scheduler/search_policy/utils.cc
./src/te/autodiff/ad_utils.cc
./src/te/operation/op_utils.cc
./src/target/metadata_utils.cc
./src/tir/usmp/utils.cc
./src/tir/analysis/device_constraint_utils.cc
./src/tir/transforms/ir_utils.cc
./src/runtime/file_utils.cc
./src/runtime/source_utils.cc
./src/runtime/contrib/miopen/miopen_utils.cc
./src/runtime/contrib/nnpack/nnpack_utils.cc
./src/runtime/contrib/cublas/cublas_utils.cc
./src/runtime/contrib/arm_compute_lib/acl_utils.cc
./src/runtime/contrib/cudnn/cudnn_utils.cc