You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by GitBox <gi...@apache.org> on 2022/09/28 04:25:50 UTC

[GitHub] [tvm] CR1SceNT opened a new issue, #12921: [Bug] All the measured programs in auto-scheduler report errors in Windows.

CR1SceNT opened a new issue, #12921:
URL: https://github.com/apache/tvm/issues/12921

   I'm trying to use auto scheduler to tune a matmul_add function. The code works fine in Linux, but in Windows, it seems all the programs errored in measurement. 
   ```
   ----------------------------------------------------------------------
   ------------------------------  [ Search ]
   ----------------------------------------------------------------------
   Generate Sketches               #s: 3
   Sample Initial Population       #s: 905 fail_ct: 829    Time elapsed: 1.21
   GA Iter: 0      Max score: 0.9997       Min score: 0.8380       #Pop: 128       #M+: 0  #M-: 0
   GA Iter: 4      Max score: 0.9999       Min score: 0.9859       #Pop: 128       #M+: 1372       #M-: 82
   EvolutionarySearch              #s: 128 Time elapsed: 5.39
   ----------------------------------------------------------------------
   ------------------------------  [ Measure ]
   ----------------------------------------------------------------------
   Get 16 programs to measure:
   ................*E*E*E*E*E*E*E*E*E*E*E*E*E*E*E*E
   Time elapsed for measurement: 14.04 s
   ----------------------------------------------------------------------
   ------------------------------  [ Done ]
   ----------------------------------------------------------------------
   ```
   Code show as below:
   ```python
   import tvm
   from tvm import auto_scheduler, te
   
   @auto_scheduler.register_workload  # Note the auto_scheduler decorator
   def matmul_add(N, L, M, dtype):
       # A * B + C
       A = te.placeholder((N, L), name="A", dtype=dtype)
       B = te.placeholder((L, M), name="B", dtype=dtype)
       C = te.placeholder((N, M), name="C", dtype=dtype)
   
       k = te.reduce_axis((0, L), name="k")
       matmul = te.compute(
           (N, M),
           lambda i, j: te.sum(A[i, k] * B[k, j], axis=k),
           name="matmul",
           attrs={"layout_free_placeholders": [B]},  # enable automatic layout transform for tensor B
       )
       out = te.compute((N, M), lambda i, j: matmul[i, j] + C[i, j], name="out")
   
       return [A, B, C, out]
   
   target = tvm.target.Target("llvm -mcpu=core-avx2")
   
   N = L = M = 4
   task = auto_scheduler.SearchTask(
       func=matmul_add, args=(N, L, M, "float32"), target=target
   )
   print("Computational DAG:")
   print(task.compute_dag)
   
   log_file = "matmul_add.json"
   
   print("init cost model")
   cost_model = auto_scheduler.XGBModel()
   
   tune_option = auto_scheduler.TuningOptions(
       num_measure_trials=16,  # change this to 1000 to achieve the best performance
       runner=auto_scheduler.LocalRunner(repeat=10, enable_cpu_cache_flush=True),
       measure_callbacks=[auto_scheduler.RecordToFile(log_file)],
       verbose=1,
   )
   
   print("start tune")
   task.tune(tune_option)
   ```
   
   ### Environment
   
   OS: Windows 10. TVM version: 0.10.dev644+gfa5045bf6
   
   
   


-- 
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: commits-unsubscribe@tvm.apache.org.apache.org

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