Skip to content
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

[REVIEW] FEA subgraph modifications #1

Open
wants to merge 51 commits into
base: main
Choose a base branch
from

Conversation

ChuckHastings
Copy link
Contributor

No description provided.

crozhon and others added 30 commits February 13, 2020 13:38
Moves the JSON interface from using the Writer / SAX version of
RapipJSON's interface to the Document version. This allows sorting of
the document and throwing assertions for invalid JSON. Previously we
could write incomplete files when a job was interrupted. Now
incomplete jobs will have an elapsed time of -1, but otherwise be
valid JSON.

Similarly some keys could have values of NaN or INF, which caused
the previous interface to write empty string for their value. This is
because RapidJSON disallows NaN and INF (the JSON spec doesn't include
them, but Javascript and other interfaces are more permissive). Now
these invalid values will be written as null to the resulting
document.
The shared_libs examples need to be linked with a C++ compiler since
they link against a C++ library. Previously, cmake properly used g++ as
expected. It's not clear why, but CMake decided to start using gcc for
these files because they end in ".c". This may be due to a change to one
of the parent CMakeLists.txt files, but it's difficult to find why this
behavior changed.

This change explicitly tells CMake to use the C++ linker with the
set_target_properties command.
Workaround for the PageRank Validation SegFault (issue #684 and #683)
* added mem calculation

* update google test for sm

* don't use cpu reference when using quick mode

* add compression

* revert two files

* revert one more files
RepeatFor0 uses whole grid sync operations. These are only supported on
Pascal and Volta architectures - SM 6.0 or greater. See
https://stackoverflow.com/a/48436451

Prevents an issue when compiling Google tests (unittests subdirectory)
for other architectures.
My previous commit broke when SM = 7.0. I think that when compiling both
host and device side, the host side version no longer had the kernels
defined but the device side did.

The fix is to keep the kernel defined in all compilations but #ifdef out
the use of this_grid.
* Prevent duplication of key "load-time" in output json

* Deleting commented out code for setting loadtime in json
Updating dev with master's bug-fixes and changes.
crozhon and others added 21 commits May 5, 2020 18:20
After updating moderngpu from 1.0 -> 2.0 we forgot to make sure that the
mgpu calls were on the same stream as our other kernels. Operators using
mgpu's SortedSearch and Scan functions expected them to be complete
before the next kernel call, but since the mgpu context was on the
default stream it executed in parallel with the other kernels. This
caused the output_offsets array used in the following kernel to be incorrect,
and out of bounds memory accesses would occur.

This fix ensures that the mgpu::standard_context_t is setup to use the
same stream as the other kernels. To do so, we keep a context pointer,
allocate it on the heap when the operator parameters are intialized, and
free it when they are released.
Add target device option in subgraph matching
Add the option to print to a file
Reviewer Request Scripts & Docs updated
Updating dev (docs, broken links, and scripts)
@raydouglass raydouglass changed the base branch from master to main August 28, 2020 15:12
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.

6 participants