wangzy0327 commented on issue #13666:
URL: https://github.com/apache/tvm/issues/13666#issuecomment-1413100409
> Tried this with the following docker image I built from latest ROCm:
>
> ```
> docker pull mevermeulen/rocm-tvm:5.4.2
> ```
>
> I didn't have OpenCL built in that so I compared with CPU execution and I
don't see an issue:
>
> ```
> root@chilecito:/src/rocm-tvm/qa# python3 /home/mev/onnx_rocm.py
> [0.5488135 0.71518934 0.60276335 0.5448832 0.4236548 0.6458941
> 0.4375872 0.891773 0.96366274 0.3834415 ]
> [-0.22859086 -0.25806987 -0.43340546 0.4846983 -0.6018106 0.22698797
> 0.85465795 -0.9607101 0.5279621 -1.1830723 ]
> [-0.22859041 -0.25806972 -0.43340546 0.4846975 -0.6018108 0.2269876
> 0.8546581 -0.9607104 0.527962 -1.1830723 ]
> ```
>
> To compare against the CPU, I modified the last part of the program as
follows:
>
> ```
> np.random.seed(0)
> I_np = np.random.uniform(size = input_size).astype(dtype)
> print(I_np[0][0][0][:10])
> onnx_model = onnx.load("/home/mev/mnist-7.onnx")
> mod,params = relay.frontend.from_onnx(onnx_model,{"Input3":I_np.shape})
> rocm_output = build("rocm",mod = mod,params = params,input_name =
input_name,input_data = I_np, input = I_np.shape, output = output_size)
> cpu_output = build("llvm",mod = mod,params = params,input_name =
input_name,input_data = I_np, input = I_np.shape, output = output_size)
> # opencl_output = build("opencl",mod = mod,params = params,input_name =
input_name,input_data = I_np, input = I_np.shape, output = output_size)
> print(rocm_output[0][:10])
> print(cpu_output[0][:10])
> # print(opencl_output[0][:10])
> ```
>
> @wangzy0327 does my docker work for you? If so, a spot you can use for
comparison.
>
> Also can you cross check that your ROCm installation and driver is
properly installed. For example you can try:
>
> ```
> prompt% rocminfo
>
> prompt% cd /opt/rocm/share/hip/samples/0_Intro/square
> prompt% make
> prompt% cat square.out
> ```
@mvermeulen
I compare two platform `rocm` and `rocm -libs=miopen` on tvm v0.10.0 version
to run the code as follow.
<details>
<summary>onnx_rocm.py</summary>
```
from pyexpat import model
import onnx
#from tvm.driver import tvmc
import numpy as np
import tvm
import tvm.relay as relay
from tvm.contrib import graph_executor
import tvm.testing
import numpy as np
dtype="float32"
common_prefix_str = "onnx-model/vision/classification/"
tol_paras = [1e-7,1e-6,1e-5,1e-4,1e-3,1e-2]
input_name = "Input3"
input_size = (1,1,28,28)
output_size = (1,10)
import logging
logging.basicConfig(level=logging.ERROR)
import warnings
warnings.filterwarnings('ignore')
def build(target:str,mod:tvm.IRModule, params:dict, input_name:str,
input_data:np.ndarray, input:tuple, output: tuple) -> np.ndarray:
tgt = tvm.target.Target(target=target, host="llvm")
with tvm.transform.PassContext(opt_level=3):
lib = relay.build(mod, target=target, params=params)
dev = tvm.device(str(target), 0)
module = graph_executor.GraphModule(lib["default"](dev))
module.set_input(input_name, input_data)
module.run()
output_shape = output
tvm_output = module.get_output(0, tvm.nd.empty(output_shape)).numpy()
return tvm_output
def main():
np.random.seed(0)
I_np = np.random.uniform(size = input_size).astype(dtype)
print(I_np[0][0][0][:10])
onnx_model =
onnx.load("onnx-model/vision/classification/mnist/model/mnist-7.onnx")
mod,params = relay.frontend.from_onnx(onnx_model,{"Input3":I_np.shape})
rocm_lib_output = build("rocm -libs=miopen",mod = mod,params =
params,input_name = input_name,input_data = I_np, input = I_np.shape, output =
output_size)
rocm_output = build("rocm",mod = mod,params = params,input_name =
input_name,input_data = I_np, input = I_np.shape, output = output_size)
opencl_output = build("opencl",mod = mod,params = params,input_name =
input_name,input_data = I_np, input = I_np.shape, output = output_size)
print(rocm_output[0][:10])
print(rocm_lib_output[0][:10])
print(opencl_output[0][:10])
main()
```
</details>

I get the error on AMD gfx908 device . The error is `ValueError:Cannot find
global function tvm.contrib.miopen.conv2d.setup` .
How to fix it ?
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]