* make graph symmetric
* call gklib routine.
* use gklib version except in windows.
* minor errors.
* fix test.
* update doc.
* fix a compile error.
* fix.
* add comments for the new C API.
* fix a bug.
* address comments.
* fix compile error.
* fix comment.
* add metis.
* add test.
* construct partition id.
* link to METIS github repo.
* update metis.
* add a tool for partitioning a graph.
* update metis.
* update.
* update.
* fix metis.
* fix lint
* fix indent.
* another way of building metis.
* disable metis in windows.
* test windows
* fix.
* disable metis for windows properly.
* fix for tensorflow.
* skip test for gpu.
* make graph symmetric
* address comments.
* more comments.
* fix compile
* fix a bug.
* add test.
* change the default #hops of HALO nodes.
Co-authored-by: Ubuntu <ubuntu@ip-172-31-26-167.us-east-2.compute.internal>
* remove edge and to bipartite and graphsage with sampling
* fixes
* fixes
* fixes
* reenable multigpu training
* fixes
* compatibility in DGLGraph
* rename to compact_as_bipartite
* bugfix
* lint
* add offline inference
* skip GPU tests
* fix
* addresses comments
* fix
* fix
* fix
* more tests
* more docs and unit tests
* workaround for empty slice on empty data
This commit fixes a bug where the lock guard (for concurrently accessing
the same scope from different threads) had basically no effect, due to
being bound to a temporary only.
Co-authored-by: Minjie Wang <minjie.wang@nyu.edu>
* improve performance of sample_neighbors
* some more improve
* test script
* benchmarks
* multi process
* update more tests
* WIP
* adding two API for state saving
* add create from state
* upd test
* missing file
* wip: pickle/unpickle
* more c apis
* find the problem of empty data array
* add null array; pickling speed is bad
* still bad perf
* still bad perf
* wip
* fix the pickle speed test; now everything looks good
* minor fix
* bugfix
* some lint fix
* address comments
* more fix
* fix lint
* add utest for random.choice
* add utest for dgl.rand_graph
* fix cpp utests
* try fix ci
* fix bug in TF backend
* upd choice docstring
* address comments
* upd
* try fix compile
* add comment
* [WIP] PinSAGE operators
* moved the edge remapping mess into C
* some docstrings
* lint
* lint x2
* lint x3
* skip gpu test on topk
* extend pinsage to any metapath
* lint x4
* addresses #1265
* add always_preserve (fixes#1266) and fix a silly bug
* disable gpu test on compaction
* lint
* fix a horrible bug and add more tests
* lint
* addresses comments
* lint
* bugfix
* addresses comments
Co-authored-by: Minjie Wang <minjie.wang@nyu.edu>
* Several optimizations on DGL-KG:
1. Sorted positive edges for sampling which can reduce random
memory access during positive sampling
2. Asynchronous node embedding update
3. Balanced Relation Partition that gives balanced number of
edges in each partition. When there is no cross partition
relation, relation embedding can be pin into GPU memory
4. tunable neg_sample_size instead of fixed neg_sample_size
* Fix test
* Fix test and eval.py
* Now TransR is OK
* Fix single GPU with mix_cpu_gpu
* Add app tests
* Fix test script
* fix mxnet
* Fix sample
* Add docstrings
* Fix
* Default value for num_workers
* Upd
* upd
* graph format
* fix lint
* lint
* fix
* unit test
* lint
* add magic num
* move serialize out of struct
* lint
Co-authored-by: zhoujinjing09 <zhoujinjing09@users.noreply.github.com>
* unit graph that prefers coo queries
* auto detect coo preference
* forgot some functions
* disable lint on detect_prefer_coo
* reorg
* change comment
* lint
* fix
* move array_utils.h to src
* compact graph impl
* fix redundant copying in idhashmap
* docstring
* moving preference detection to C
* lint
* fix unit test & address comments
* hypersparse autorestrict
* docstring & fix
* revert copyto and asnumbits
* fix stupid bug
* lint
* leave a TODO for sorted COO
* fixing same node type mapping to different id in different graphs
* addresses comments
* made induced nodes a feautre column
* lint?
* trying to refactor IndexSelect
* partial implementation
* add index select and assign for floats as well
* move to random choice source
* more updates
* fixes
* fixes
* more fixes
* adding python impl
* fixes
* unit test
* lint
* lint x2
* lint x3
* update metapath2vec
* debugging performance
* still debugging for performance
* tuning
* switching to succvec
* redo
* revert non-uniform sampler to use vector
* still not fast
* why does this crash with OpenMP???
* because there was a data race!!!
* add documentations and remove assign op
* lint
* lint x2
* lol what have i done
* lint x3
* fix and disable gpu testing
* bugfix
* generic random walk
* reorg the random walk source code
* Update randomwalks.h
* Update randomwalks_cpu.cc
* rename file
* move internal function to anonymous ns
* reorg & docstrings
* constant restart probability
* docstring fix
* more commit
* random walk with restart, tested
* some fixes
* switch to using NDArray for choice
* massive fix & docstring
* lint x?
* lint x??
* fix
* export symbols
* skip gpu test
* addresses comments
* replaces another VecToIdArray
* add randomwalks.h to include
* replace void * with template
* Add weight based edge sampler
* Can run, edge weight work.
TODO: test node weight
* Fix node weight sample
* Fix y
* Update doc
* Fix syntex
* Fix
* Fix GPU test for sampler
* Fix test
* Fix
* Refactor EdgeSampler to act as class object not function that it
can record its own private states.
* clean
* Fix
* Fix
* Fix run bug on kg app
* update
* update test
* test
* Simply python API and fix some C code
* Fix
* Fix
* Fix syntex
* Fix
* Update API description
* add replacement for edge sampler
* Now edge sampler support replacement and no-replacement
* Fix
* Fix
* change kg/app to use edge sampler with replacement config
* Update replacement algo
* Fix syntax
* Update
* Update
Co-authored-by: Da Zheng <zhengda1936@gmail.com>
* Add weight based edge sampler
* Can run, edge weight work.
TODO: test node weight
* Fix node weight sample
* Fix y
* Update doc
* Fix syntex
* Fix
* Fix GPU test for sampler
* Fix test
* Fix
* Refactor EdgeSampler to act as class object not function that it
can record its own private states.
* clean
* Fix
* Fix
* Fix run bug on kg app
* update
* update test
* test
* Simply python API and fix some C code
* Fix
* Fix
* Fix syntex
* Fix
* Update API description
* upd
* fig edgebatch edges
* add test
* trigger
* Update README.md for pytorch PinSage example.
Add noting that the PinSage model example under
example/pytorch/recommendation only work with Python 3.6+
as its dataset loader depends on stanfordnlp package
which work only with Python 3.6+.
* Provid a frame agnostic API to test nn modules on both CPU and CUDA side.
1. make dgl.nn.xxx frame agnostic
2. make test.backend include dgl.nn modules
3. modify test_edge_softmax of test/mxnet/test_nn.py and
test/pytorch/test_nn.py work on both CPU and GPU
* Fix style
* Delete unused code
* Make agnostic test only related to tests/backend
1. clear all agnostic related code in dgl.nn
2. make test_graph_conv agnostic to cpu/gpu
* Fix code style
* fix
* doc
* Make all test code under tests.mxnet/pytorch.test_nn.py
work on both CPU and GPU.
* Fix syntex
* Remove rand
* Start implementing masked-mm kernel.
Add base control flow code.
* Add masked dot declare
* Update func/variable name
* Skeleton compile OK
* Update Implement. Unify BinaryDot with BinaryReduce
* New Impl of x_dot_x, reuse binary reduce template
* Compile OK.
TODO:
1. make sure x_add_x, x_sub_x, x_mul_x, x_div_x work
2. let x_dot_x work
3. make sure backward of x_add_x, x_sub_x, x_mul_x, x_div_x work
4. let x_dot_x backward work
* Fix code style
* Now we can pass the tests/compute/test_kernel.py for add/sub/mul/div forward and backward
* Fix mxnet test code
* Add u_dot_v, u_dot_e, v_dot_e unitest.
* Update doc
* Now also support v_dot_u, e_dot_u, e_dot_v
* Add unroll for some loop
* Add some Opt for cuda backward of dot builtin.
Backward is still slow for dot
* Apply UnravelRavel opt for broadcast backward
* update docstring
* PBG negative edge sampler.
* add a positive edge to make it regular, handle last batch.
* exclude all positive edges in the parent graph.
* just uniformly sample negative nodes.
* fix lint.
* shuffle one-side nodes of positive edges.
* just uniformly sample negative nodes.
* change the data type.
* address comment.
* remove commented code.