I had the exact same problem and after like 3 months, I finally found a solution:
I assume you have installed CUDA and also exported /usr/local/cuda/bin|lib64 (-> nvcc -V works).
ValueError: arch(sm_xy) is not passed, and we cannot detect it from env
This suggests that we can pass it somehow, right? Yes, we can, but it is hidden deep down in autoTVM:
import tvm
tvm.autotvm.measure.measure_methods.set_cuda_target_arch("sm_62")
"sm_62" means that the target GPU has tvm.gpu(0).compute_capability == 6.2. Adapt this if necessary, e.g. compute_capability == 5.1 would be "sm_51"