-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[TOPI][x86] Cascade lake support. #4123
Conversation
29070d0
to
1d96d39
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @anijain2305 for the changes!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: why do we have the intrinsics named {dot_16x1x16_uint8_int8_int32_skylake
, dot_16x1x16_uint8_int8_int32_vnni
} instead of {dot_16x1x16_uint8_int8_int32_skylake
, dot_16x1x16_uint8_int8_int32_cascadelake
}?
Will make it more consistent. Thanks for the suggestion :) |
719a583
to
d58aead
Compare
tests/python/relay/test_op_level2.py
Outdated
assert False, "Target should be Skylake or Cascadelake" | ||
|
||
# compile conv2d for x86 (skylake, cascadelake) and test assembly contains *pmadd* instructions | ||
# targets = ["llvm -mcpu=skylake-avx512", "llvm -mcpu=cascadelake"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why is this commented out? do we not want to test the cascadelake
target?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, Let me add WIP tag. Jenkins is failing w/o any debug prints. So I am trying to narrow down the issue. I will ping you once I identify the issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added one more comment. Thanks for the changes!
target = tvm.target.current_target() | ||
intel_device_type = None | ||
for opt in target.options: | ||
if opt == '-mcpu=skylake-avx512': |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a helper function to get CPU type from target? If not, I think that adding it would make lines like this a lot cleaner, and a lot friendlier to new developers.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree. Let me see if I can get that parsing a part of target data structure.
a2194b9
to
a0d7041
Compare
@tmoreau89 @soiferj I am done now. Guarded the tests to work with only >=8 LLVM version. That resolved the CI error. Please review again and let me know if you have more comments. |
python/tvm/target.py
Outdated
@@ -521,6 +521,28 @@ def create(target_str): | |||
return _api_internal._TargetFromString(target_str) | |||
|
|||
|
|||
def get_mcpu(target): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it possible to add this as a property under the Target class? Like libs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moved it. Please review again :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
* [TOPI][x86] Cascade lake support. * Jenkins test debug 1. * Testing cascade lake alone.
* [TOPI][x86] Cascade lake support. * Jenkins test debug 1. * Testing cascade lake alone.
* master: (51 commits) [QNN][TFLite] Parsing QNN Add op. Adding MobilenetV2. (apache#4142) [CI] Pin NNPack pthreadtools version (apache#4152) Fix typo (apache#4144) [Relay][Frontend][TF] Add tensor array ops (apache#3798) [relay][vm] Separate VM runtime with executable (apache#4100) [PATCH] Fix undefined __floatdihf in libtvmruntime.so on aarch64. (apache#4119) [DOCKER] Pin torchvision==0.4.1 (apache#4140) [TOPI][x86] Cascade lake support. (apache#4123) [Relay] Improve build error when no lowered funcs are produced (apache#4132) [RUNTIME] Refactor object python FFI to new protocol. (apache#4128) Update PULL_REQUEST_TEMPLATE.md Adding support for dequantizing from int32 to float32. (apache#4130) [Relay][Training] Add and fix gradients (apache#4126) [QNN] Change default rouning to UPWARD. (apache#4131) Fix infer type of kernel in dense. (apache#4125) [Relay][AlterOpLayout] NHWC to NCHWc pad operator. (apache#4103) [ARITH] Fix lowering of floormod(x, y) != 0 (apache#4127) [RFC][RUNTIME] Introduce new object protocol. (apache#4115) [Relay][Topi] Disable conv NHWC pack int8. (apache#4038) Update task_cpp_unittest.sh ...
As Title. Enables Intel VNNI instructions for Int8 quantized networks.