#!/bin/bash
current_ops_str="$1"
chip_type="${2:-${CHIP_TYPE:-}}"
image_ops_910b=("grid_sample" "upsample_nearest3d" "upsample_linear1d" "upsample_bicubic2d" "grid_sampler2_d_grad")
objdetec_ops_910b=("iou_v2")
operator_list_910b=("${image_ops_910b[@]}" "${objdetec_ops_910b[@]}")
image_ops_950=("resize_bilinear_v2" "resize_nearest_neighbor_v2" "resize_bicubic_v2" "resize_linear")
objdetec_ops_950=("iou_v2")
operator_list_950=("${image_ops_950[@]}" "${objdetec_ops_950[@]}")
predefined_ops=()
if [ -n "$chip_type" ]; then
case "$chip_type" in
910b)
predefined_ops=("${operator_list_910b[@]}")
;;
950)
predefined_ops=("${operator_list_950[@]}")
;;
*)
echo "Warning: Unknown chip_type '$chip_type', adding all predefined operators." >&2
all_ops=("${operator_list_910b[@]}" "${operator_list_950[@]}")
predefined_ops=("${all_ops[@]}")
;;
esac
else
echo "No chip_type specified, adding all predefined operators." >&2
all_ops=("${operator_list_910b[@]}" "${operator_list_950[@]}")
predefined_ops=("${all_ops[@]}")
fi
if [ -n "$current_ops_str" ]; then
IFS=' ' read -r -a current_ops <<< "$current_ops_str"
else
current_ops=()
fi
merged_ops=("${current_ops[@]}")
for op in "${predefined_ops[@]}"; do
if [[ ! " ${merged_ops[@]} " =~ " ${op} " ]]; then
merged_ops+=("$op")
fi
done
if [ ${#merged_ops[@]} -gt 0 ]; then
printf "%s" "${merged_ops[0]}"
for op in "${merged_ops[@]:1}"; do
printf ",%s" "$op"
done
fi
printf "\n"