Skip to content

Implementation of DPCTLQueue_Fill8/16/32/64/128 function to SyclInterface library #831

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

Merged
merged 10 commits into from
May 13, 2022

Conversation

oleksandr-pavlyk
Copy link
Contributor

Also added tests and docstrings.

All functions except DPCTLQueue_Fill128 take unsigned integers of the corresponding width. The DPCTLQueue_Fill128 takes a uint64_t *v. The caller must ensure that v[0] and v[1] can be accessed. Fill128 populates memory with struct uint128_t {uint64_t v[0], uint64_t v[1]}.

  • Have you provided a meaningful PR description?
  • Have you added a test, reproducer or referred to an issue with a reproducer?
  • Have you tested your changes locally for CPU and GPU devices?
  • Have you made sure that new changes do not introduce compiler warnings?

@github-actions
Copy link

github-actions bot commented May 8, 2022

@oleksandr-pavlyk oleksandr-pavlyk force-pushed the impl_fill branch 4 times, most recently from 8849327 to 1bd2b29 Compare May 12, 2022 13:10
@coveralls
Copy link
Collaborator

coveralls commented May 12, 2022

Coverage Status

Coverage decreased (-0.03%) to 82.895% when pulling d975549 on impl_fill into f0a4f63 on master.

vlad-perevezentsev and others added 10 commits May 12, 2022 12:24
…nce HTMLs are not used for CI coverage collection
Whenever C++ source code contains device code, DPC++ would perform
two compilation passes (for host and for device portions) and combine
these two into fat object file. In the process of doing this it generates
temporary integration headers. So functions from these headers get
instrumented and .lcov file would contain references to deleted header
files, in the form of /tmp/dpctl_sycl_queue_integrface-header-hex.h

Added -save-temps instructs DPC++ to keep all the temporaries around and
makes these headers available for llvm-profdata and llvm-cov to use.

The side-effect of using -save-temps=obj is that preprocessor output
files are also kept around and referenced by instrumentation tools.
These files are very large. So much so that generated .json file can
not be uploaded to coverall service.

Therefore the -save-temps=obj is commented out. May still be useful
for manual profile collection.

References to deleted header files are still present (and wreck
llvm-lcov calls), but that can be addressed using llvm-cov option to
ignore certain files (like /tmp/dpctl_*.h)
Since addition of --save-temps=obj, a slew of host/device object
files were added and llvm-cov can not work with some of them.

Since binaries can actually be shared objects, use that instead.

Process traces for libtensor and libsyclinterface shared objects
This is until we have GEMM implemented in dpctl
@oleksandr-pavlyk oleksandr-pavlyk merged commit 83bd76f into master May 13, 2022
@oleksandr-pavlyk oleksandr-pavlyk deleted the impl_fill branch May 13, 2022 02:47
@github-actions
Copy link

Deleted rendered PR docs from intelpython.github.com/dpctl, latest should be updated shortly. 🤞

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants