()
| 29 | |
| 30 | |
| 31 | def _parse_args() -> argparse.Namespace: |
| 32 | def _parse_list_int(source: str): |
| 33 | return [int(i) for i in source.split(",")] |
| 34 | |
| 35 | parser = argparse.ArgumentParser( |
| 36 | prog="GPU memory bandwidth testing", |
| 37 | description="""Example for host GPU: |
| 38 | python -m tvm.exec.gpu_memory_bandwidth "nvidia/geforce-rtx-3090-ti" \ |
| 39 | --dtype "float32" |
| 40 | --bx "8,16,32,64,128,256" \ |
| 41 | --tx "32,64,128,256,512,1024" \ |
| 42 | --vec "1,2,4" \ |
| 43 | |
| 44 | Example for Android GPU: \ |
| 45 | python -m tvm.exec.gpu_memory_bandwidth "opencl" --target_host '{"kind": "llvm", "mtriple": "arm64-linux-android"}' \ |
| 46 | --rpc_host "127.0.0.1" \ |
| 47 | --rpc_port 9190 \ |
| 48 | --rpc_key "android" \ |
| 49 | --export_func "ndk" \ |
| 50 | --dtype "float32" \ |
| 51 | --bx "8,16,32,64,128,256" \ |
| 52 | --tx "32,64,128,256,512,1024" \ |
| 53 | --vec "1,2,4" \ |
| 54 | """, |
| 55 | formatter_class=argparse.ArgumentDefaultsHelpFormatter, |
| 56 | ) |
| 57 | parser.add_argument( |
| 58 | "target", |
| 59 | type=str, |
| 60 | help="The target to be benchmarked", |
| 61 | ) |
| 62 | parser.add_argument( |
| 63 | "--target_host", |
| 64 | type=str, |
| 65 | default=None, |
| 66 | help="The target host for build", |
| 67 | ) |
| 68 | parser.add_argument( |
| 69 | "--xo", |
| 70 | type=int, |
| 71 | default=1024, |
| 72 | help="The value of `XO` in [XO, K, XI] => [XO, XI] reduction", |
| 73 | ) |
| 74 | parser.add_argument( |
| 75 | "--k", |
| 76 | type=int, |
| 77 | default=64, |
| 78 | help="The value of `K` in [XO, K, XI] => [XO, XI] reduction", |
| 79 | ) |
| 80 | parser.add_argument( |
| 81 | "--xi", |
| 82 | type=int, |
| 83 | default=4096, |
| 84 | help="The value of `XI` in [XO, K, XI] -> [XO, XI] reduction", |
| 85 | ) |
| 86 | parser.add_argument( |
| 87 | "--dtype", |
| 88 | type=str, |
no test coverage detected
searching dependent graphs…