* Fix Column.record_stream(...) for unmaterialized tensors
* lint
* Record streams for indices on non-materialized columns
* add docstring
* fix for cpu index
* Record also stream on storage
* Always call self.storage.record_stream when storage is on GPU
* fix lint
---------
Co-authored-by: Xin Yao <xiny@nvidia.com>
* add set_stream
* add .record_stream for NDArray and HeteroGraph
* refactor dgl stream Python APIs
* test record_stream
* add unit test for record stream
* use pytorch's stream
* fix lint
* fix cpu build
* address comments
* address comments
* add record stream tests for dgl.graph
* record frames and update dataloder
* add docstring
* update frame
* add backend check for record_stream
* remove CUDAThreadEntry::stream
* record stream for newly created formats
* fix bug
* fix cpp test
* fix None c_void_p to c_handle
* * Workaround for graph data saving/loading compatibility problem in Column class. There may be more places in DGL with the same issue, due to using Python serialization, instead of a more cohesive, comprehensive strategy. This is just a local fix.
* Add checking for non-empty states
* Add unit test
* Handle the case of columns without storage
Co-authored-by: ndickson <ndickson@nvidia.com>
Co-authored-by: Xin Yao <xiny@nvidia.com>
* Explicitly unpin tensoradapter allocated arrays
* Undo unrelated change
* Add unit test
* update unit test
* add pinned_by_dgl flag to NDArray::Container
* use dgl.ndarray for holding the pinning status
* update multi-gpu uva inference
* reinterpret cast NDArray::Container* to DLTensor* in MoveAsDLTensor
* update unpin column and examples
* add unit test for unpin column
Co-authored-by: Dominique LaSalle <dlasalle@nvidia.com>
Co-authored-by: nv-dlasalle <63612878+nv-dlasalle@users.noreply.github.com>
* * Added half_(), float_(), and double_() functions to DGLHeteroGraph, HeteroNodeDataView, and HeteroEdgeDataView, for converting floating-point tensor data to float16, float32, or float64 precision
* * Extracted out private functions for floating-point type conversion, to reduce code duplication
* * Added test for floating-point data conversion functions, half_(), float_(), and double_()
* * Moved half_(), float_(), and double_() functions from HeteroNodeDataView and HeteroEdgeDataView to Frame class
* * Updated test_float_cast() to use dgl.heterograph instead of dgl.graph
* Added to CONTRIBUTORS.md
* * Changed data type conversion to be deferred until the data is accessed, to avoid redundant conversions of data that isn't used.
* * Addressed issues flagged by linter
* * Worked around a bug in the old version of mxnet that's currently used for DGL testing
* * Only defer Column data type conversion if there is a pending device transfer or index sampling to be done. This is expected to be the desired behaviour based on discussions of a few use cases, as described in the comments.
* * Moved floating-point feature data conversion functions to dgl.transforms.functional
* Changed them from in-place behaviour to shallow copy (out-of-place) behaviour
* * Fixed linter issues
* * Removed lines that unintentionally added to_half, to_float, and to_double to DGLHeteroGraph
* Moved _init_api line to the end of the file again
* * Removed one of the two leading underscores from Frame.__astype_float, making it not fully private
Co-authored-by: nv-dlasalle <63612878+nv-dlasalle@users.noreply.github.com>
* fix uva sampling with features
* fix
* add is_listlike function to distinguish strings from sequence
* fix
Co-authored-by: nv-dlasalle <63612878+nv-dlasalle@users.noreply.github.com>
* huuuuge update
* remove
* lint
* lint
* fix
* what happened to nccl
* update multi-gpu unsupervised graphsage example
* replace most of the dgl.mp.process with torch.mp.spawn
* update if condition for use_uva case
* update user guide
* address comments
* incorporating suggestions from @jermainewang
* oops
* fix tutorial to pass CI
* oops
* fix again
Co-authored-by: Xin Yao <xiny@nvidia.com>
* Make column double indices lazy
* Copy indices to proper contexts
* Fix initialization
* Add unit test
* Fix unit test for tensorflow
* Remove unused member
Co-authored-by: Quan (Andy) Gan <coin2028@hotmail.com>
* test basics
* batched graph & filter, mxnet filter fix
* frame and function; bugfix
* test graph adj and inc matrices
* fixing start = 0 for mxnet
* test index
* inplace update & line graph
* multi send recv
* more tests
* oops
* more tests
* removing old test files; readonly graphs for mxnet still kept
* modifying test scripts
* adding a placeholder for pytorch to reserve directory
* torch 0.4.1 compat fixes
* moving backend out of compute to avoid nose detection
* tests guide
* mx sparse-to-dense/sparse-to-numpy is buggy
* oops
* contribution guide for unit tests
* printing incmat
* printing dlpack
* small push
* typo
* fixing duplicate entries that causes undefined behavior
* move equal comparison to backend
* fix lint for graph_index.py
* pylint for base.py
* pylint for batched_graph.py
* pylint for frame.py; simplify and fix bugs in frame when index is slice type
* pylint for graph.py
* pylint for immutable_graph_index.py
* pylint for init.py
* pylint for rest files in root package
* pylint for _ffi package
* pylint for function package
* pylint for runtime package
* pylint for runtime.ir package
* add pylint to ci
* fix mx tests
* fix lint errors
* fix ci
* fix as requested
* fix lint
* fix bug: frame append should check itself
* more test case
* fix multi-send-recv bug
* remv msg graph and clean up
* test cases
* more test case
* fix for batchedgraph
* fix bugs: converting from a graph with edges
* fix
* add more operators to utils.Index
* clear frame executor
* change message indicator to a graph level index
* fix test cases
* guard the case that mxnet does not support concat zero shape tensor
* fix bug: avoid convert full slice to numpy
* test multi-send-recv after conversion
* fix as request (partially)
* add dtype, ctx to full_1d
* add slice data to utils.Index
* fix
* more doc string
* fix as requested
* inplace write row op and executor
* update scheduler and graph to use inplace write
* fix
* fix bug
* test case for inplace
* fix bugs for inplace apply node/edge
* fix comments
* th.allclose -> U.allclose
* fix recv nodes are all 0deg; fix hybriddict does not through keyerror properly
* fallback to apply_nodes when all nodes are 0deg; WIP on pull spmv 0deg
* new 0deg behavior
* new 0deg behavior
* update mx utest for pull-0deg
* fix mx
* fix mx
* get rid of unnecessary sort-n-unique
* pickling support
* resorting to suggested way of pickling
* custom attribute pickling check
* working around a weird pytorch pickling bug
* including partial frame case
* pickling everything now
* fix as requested
* Fix
1. Fix two typos in gcn.py and gcn_spmv.py
2. Update README
* Fix GCN module
1. Update the outdated graph convolution layer class
2. Fix a bug in the code where dropout never works. Modules like dropout/batch norm depend on whether we are in the training stage or inference stage.
* Fix a bug in dropout
1. dropout depends on nn.Module.training
* Update GCN module
* Fix README
* Fix dropout & remove self.msg_field
* Fix
* Align with TF implementation
* Make g an argument for forward
* Remove features from the argument of GraphConv layer
* Support for create nodes/edges after setting representations
* Remove redundant commit
* Delete test_init_repr.py
* Test case for dynamic addition
* Base 'add_rows' upon 'append'
* Move test function
* Fix
* test by assertion
* changed add_rows to adding blank rows only; adding convert_to to backend
* moving test to basics
* oops mxnet
* WIP: API renaming
* API rewrite and node function refactor
* builtin functions
* builtin functions tested
* fix test
* send and recv spmv test
* WIP: fix examples
* Fix examples using new APIs