-
Notifications
You must be signed in to change notification settings - Fork 801
[SYCL] Add BFloat16 aspect #4266
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
Conversation
f20179c to
26c7363
Compare
s-kanaev
left a comment
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.
Although the changes look good to me, @romanovvlad do we allow for new features in Runtime nowadays?
sycl/source/detail/device_info.hpp
Outdated
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 any spec for the extension?
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.
Here it is #4237
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.
It seems #4237 is a spec for SYCL extension. Is there any spec for "a low-level extension"?
Could you please clarify why the temporary solution thru checking platform name is needed? Can we wait and implement the proper solution?
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.
Can we wait and implement the proper solution?
I'd like to have it merged soon. Is it ok if we merge it as is and update the implementation later, when we have the proper solution?
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.
Coping my answer from below.
It seems #4237 is a spec for SYCL extension. Is there any spec for "a low-level extension"?
Nothing to share right now
Could you please clarify why the temporary solution thru checking platform name is needed? Can we wait and implement the proper solution?
So users could already write bfloat16 - sensitive code using aspect traits deciding for them which version of kernel should be enqueued: with or without bf16 conversion feature.
sycl/source/detail/device_info.hpp
Outdated
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 believe, there should be a better way to verify the device is either of Intel's GPUs.
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.
Right now there is no low-level runtime specification for the feature, so it's the best, what came in my mind. Do you have any ideas?
romanovvlad
left a comment
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.
@romanovvlad do we allow for new features in Runtime nowadays?
Yes, we do.
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.
Are we going to map it to a specific value in future?
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.
Yes
sycl/source/detail/device_info.hpp
Outdated
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.
It seems #4237 is a spec for SYCL extension. Is there any spec for "a low-level extension"?
Could you please clarify why the temporary solution thru checking platform name is needed? Can we wait and implement the proper solution?
Nothing to share right now
So users could already write bfloat16 - sensitive code using aspect traits deciding for them which version of kernel should be enqueued: with or without bf16 conversion feature. |
Currently this aspect is mapped on a device info which is being proved by get_platform_name function, claiming, that any Intel GPU device supports BFloat16 extension. Once we have a lower-level spec we can re-map it on the appropriate OpenCL extension. Spec: intel#4237 Signed-off-by: Dmitry Sidorov <[email protected]>
26c7363 to
423ff17
Compare
|
Updated minor version and ABI test |
|
E2E test: intel/llvm-test-suite#390 |
|
Closing: there are several issues with not mapping an aspect directly on a low-level extension. Also to use aspects for this device code feature we also need https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/DeviceIf/device_if.asciidoc which is not implemented. Instead I'll introduce a driver option to enable generation the BF16 conversion instructions. |
Currently this aspect is mapped on a device info which is
being proved by get_platform_name function, claiming, that any
Intel GPU device supports BFloat16 extension. Once we have
a lower-level spec we can re-map it on the appropriate OpenCL
extension.
Spec:
#4237
Signed-off-by: Dmitry Sidorov [email protected]