tvm icon indicating copy to clipboard operation
tvm copied to clipboard

[SME][TOPI] Add conv2d NHWC SME fp32 schedule

Open Anndrey24 opened this issue 1 year ago • 2 comments

This commit adds a scalable arm_cpu conv2d NHWC schedule for fp32 which generates SME instructions by using the tensor intrinsics introduced in #16921.

Alongside the SME schedule, the logic of the TE schedule schedule_conv2d_gemm_native() for both non-scalable and scalable vector implementations has also been translated into the new TIR schedule. This means that the TE compute definition compute_conv2d_NHWC_hybrid() is now compatible with both the original TE schedules (e.g. schedule_conv2d_NHWC_hybrid()) and the newly introduced TIR schedule schedule_conv2d_NHWC_hybrid_TIR(). The corresponding TOPI test has been extended to reflect that.

cc @ekalda @lhutton1

Anndrey24 avatar May 16 '24 09:05 Anndrey24

@tvm-bot rerun

Anndrey24 avatar May 19 '24 13:05 Anndrey24

Failed to re-run CI in https://github.com/apache/tvm/actions/runs/9147913719

Traceback (most recent call last):
  File "ci/scripts/github/github_tvmbot.py", line 595, in comment_failure
    raise item
  File "ci/scripts/github/github_tvmbot.py", line 701, in run
    pr.rerun_jenkins_ci()
  File "ci/scripts/github/github_tvmbot.py", line 554, in rerun_jenkins_ci
    post(url, auth=("tvm-bot", TVM_BOT_JENKINS_TOKEN))
  File "/home/runner/work/tvm/tvm/ci/scripts/jenkins/git_utils.py", line 53, in post
    with request.urlopen(req, data) as response:
  File "/usr/lib/python3.8/urllib/request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.8/urllib/request.py", line 531, in open
    response = meth(req, response)
  File "/usr/lib/python3.8/urllib/request.py", line 640, in http_response
    response = self.parent.error(
  File "/usr/lib/python3.8/urllib/request.py", line 569, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.8/urllib/request.py", line 649, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 502: Bad Gateway

with response

<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
</body>
</html>

github-actions[bot] avatar May 19 '24 13:05 github-actions[bot]

Resolved the conflict!

Anndrey24 avatar May 28 '24 15:05 Anndrey24

Thanks @Anndrey24 and @lhutton1, this is now merged!

ekalda avatar May 28 '24 16:05 ekalda

Thanks @Anndrey24 @lhutton1 @ekalda .

Seems we have a breakage/flaky likely related to this pr https://ci.tlcpack.ai/blue/organizations/jenkins/tvm-arm/detail/main/1980/pipeline (in lint,arm, and cpu jobs).

tqchen avatar May 28 '24 23:05 tqchen

I created a temp revert, https://github.com/apache/tvm/pull/17038 to unblock the ci, if there is an alternative fix that would also be good, eitherway we followup with a redo quickly.

tqchen avatar May 29 '24 00:05 tqchen