https://tvm.apache.org/docs/tutorial/tvmc_python.html
上記のURL先でのGetting starting using python TVMをやっている最中です。
python3 tvmcpythonintro.pyを実行すると以下のエラーが発生します。
gpuで実行しようとしています。また、コンパイルはcudaを使用しています。
cpuでは上手く実行できました。
エラー内容
[21:43:07] /mnt/c/programing/tvm/src/target/target_kind.cc:163: Warning: Unable to detect CUDA version, default to "-arch=sm_20" instead /root/.local/lib/python3.6/site-packages/pkg_resources/__init__.py:119: PkgResourcesDeprecationWarning: 0.18ubuntu0.18.04.1 is an invalid version and will not be supported in a future release PkgResourcesDeprecationWarning, [Task 1/28] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/357) | 0.00 sException in thread Thread-2: Traceback (most recent call last): File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner self.run() File "/usr/lib/python3.6/threading.py", line 864, in run self._target(*self._args, **self._kwargs) File "/mnt/c/programing/tvm/python/tvm/autotvm/measure/measure_methods.py", line 812, in _check while not dev.exist: # wait until we get an available device File "/mnt/c/programing/tvm/python/tvm/_ffi/runtime_ctypes.py", line 263, in exist return self._GetDeviceAttr(self.device_type, self.device_id, 0) != 0 File "/mnt/c/programing/tvm/python/tvm/_ffi/runtime_ctypes.py", line 247, in _GetDeviceAttr return tvm.runtime._ffi_api.GetDeviceAttr(device_type, device_id, attr_id) File "/mnt/c/programing/tvm/python/tvm/_ffi/_ctypes/packed_func.py", line 237, in __call__ raise get_last_ffi_error() tvm._ffi.base.TVMError: Traceback (most recent call last): 4: TVMFuncCall 3: _ZN3tvm7runtime13PackedFuncObj9ExtractorINS0_16PackedFuncSubObjIUlNS0_7TVMArgsEPNS0_11TVMRetValueEE0_EEE4CallEPKS1_S4_S6_ 2: tvm::runtime::RPCDeviceAPI::GetAttr(DLDevice, tvm::runtime::DeviceAttrKind, tvm::runtime::TVMRetValue*) 1: non-virtual thunk to tvm::runtime::RPCClientSession::GetAttr(DLDevice, tvm::runtime::DeviceAttrKind, tvm::runtime::TVMRetValue*) 0: tvm::runtime::PackedFuncObj::Extractor<tvm::runtime::PackedFuncSubObj<tvm::runtime::RPCEndpoint::Init()::{lambda(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)#2}> >::Call(tvm::runtime::PackedFuncObj const*, tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) File "/mnt/c/programing/tvm/src/runtime/rpc/rpc_endpoint.cc", line 681 TVMError: --------------------------------------------------------------- An error occurred during the execution of TVM. For more information, please see: https://tvm.apache.org/docs/errors.html --------------------------------------------------------------- Check failed: (code == RPCCode::kReturn) is false: code=1 Traceback (most recent call last): File "tvmcpythonintro.py", line 8, in <module> tvmc.tune(model, target="cuda") File "/mnt/c/programing/tvm/python/tvm/driver/tvmc/autotuner.py", line 493, in tune_model tune_tasks(tasks, tuning_records, **tuning_options) File "/mnt/c/programing/tvm/python/tvm/driver/tvmc/autotuner.py", line 700, in tune_tasks autotvm.callback.log_to_file(log_file), File "/mnt/c/programing/tvm/python/tvm/autotvm/tuner/xgboost_tuner.py", line 105, in tune super(XGBTuner, self).tune(*args, **kwargs) File "/mnt/c/programing/tvm/python/tvm/autotvm/tuner/tuner.py", line 113, in tune measure_batch = create_measure_batch(self.task, measure_option) File "/mnt/c/programing/tvm/python/tvm/autotvm/measure/measure.py", line 282, in create_measure_batch attach_objects = runner.set_task(task) File "/mnt/c/programing/tvm/python/tvm/autotvm/measure/measure_methods.py", line 492, in set_task super(LocalRunner, self).set_task(task) File "/mnt/c/programing/tvm/python/tvm/autotvm/measure/measure_methods.py", line 326, in set_task "Cannot get remote devices from the tracker. " RuntimeError: Cannot get remote devices from the tracker. Please check the status of tracker by 'python -m tvm.exec.query_rpc_tracker --port [THE PORT YOU USE]' and make sure you have free devices on the queue status. Done.
エラーの対処に対しての知識が少なく、
読んでもどこをどう対処したらいいのかわかりません。
何でもいいので助言をいただきたいです。
よろしくお願いいたします。
#tvmcpythonintro.py from tvm.driver import tvmc #load model = tvmc.load('resnet50-v2-7.onnx') #tune #tvmc.tune(model, target="llvm") tvmc.tune(model, target="cuda") #compile #package = tvmc.compile(model, target="llvm") #CPU #package = tvmc.compile(model, target="llvm", tuning_records = "records.log") package = tvmc.compile(model, target="cuda") #GPU #run #result = tvmc.run(package, device="cpu") result = tvmc.run(package, device="gpu") print(result)
回答1件
あなたの回答
tips
プレビュー