Hecmay edited a comment on issue #6634:
URL: https://github.com/apache/incubator-tvm/issues/6634#issuecomment-704469969


   Hi @comaniac Cody, thanks for your reply.
   
   I just used the default parameters of 10 trails. All of 10 trails returned 
the same error (as shown below) when running the evaluation. The finally 
returned schedule (from `Autoschedule(policy, options)`) is the unoptimized 
schedule (with no thread or block binding so I was not able run it on GPU).
   ```shell
   ] (0) /home/sx/dlcb/build/tvm/build/libtvm.so(+0x1791844) [0x7f6429edf844]
     File "/home/sx/dlcb/build/tvm/src/runtime/cuda/cuda_device_api.cc", line 
115
   CUDA: Check failed: e == cudaSuccess || e == cudaErrorCudartUnloading: 
initialization error
   , all_cost:0.55, Tstamp:1602008338.18)
   ```
   I tried to look into the problematic function (AllocateDataSpace:108) in 
`cuda_device_api.cc`. It seems that `cudaSetDevice()` does not able to find the 
device, and program builder just aborted from there. 
   
   ```c++
       if (ctx.device_type == kDLCPUPinned) {
         CUDA_CALL(cudaMallocHost(&ret, nbytes));
       } else {
         CUDA_CALL(cudaSetDevice(ctx.device_id));
         CUDA_CALL(cudaMalloc(&ret, nbytes));
       }
   ```
   
   This is quite wired. Everything can run smoothly using the python API. But 
when using C++ APIs, the runtime cannot detect the device or context, and thus 
cannot find usable schedules.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to