[SOLVED] Compile error related to autotvm

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"

1 Like