Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
dgl
Commits
9a7ad16e
"...pytorch/git@developer.sourcefind.cn:OpenDAS/dgl.git" did not exist on "458b938c423743243640d2fb237581daec5da81e"
Unverified
Commit
9a7ad16e
authored
Jul 15, 2022
by
Quan (Andy) Gan
Committed by
GitHub
Jul 15, 2022
Browse files
decompose (#4259)
parent
fdbf5a0f
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
88 additions
and
76 deletions
+88
-76
src/array/cuda/sddmm_hetero_coo.cu
src/array/cuda/sddmm_hetero_coo.cu
+0
-76
src/array/cuda/sddmm_hetero_csr.cu
src/array/cuda/sddmm_hetero_csr.cu
+88
-0
No files found.
src/array/cuda/sddmm_hetero.cu
→
src/array/cuda/sddmm_hetero
_coo
.cu
View file @
9a7ad16e
...
@@ -9,39 +9,6 @@
...
@@ -9,39 +9,6 @@
namespace
dgl
{
namespace
dgl
{
namespace
aten
{
namespace
aten
{
/*!
* \brief CUDA implementation of g-SDDMM on heterograph using
Csr format.
*/
template
<
int
XPU
,
typename
IdType
,
int
bits
>
void
SDDMMCsrHetero
(
const
std
::
string
&
op
,
const
BcastOff
&
bcast
,
const
std
::
vector
<
CSRMatrix
>&
vec_csr
,
const
std
::
vector
<
NDArray
>&
vec_lhs
,
const
std
::
vector
<
NDArray
>&
vec_rhs
,
std
::
vector
<
NDArray
>
vec_out
,
int
lhs_target
,
int
rhs_target
,
const
std
::
vector
<
dgl_type_t
>&
lhs_eid
,
const
std
::
vector
<
dgl_type_t
>&
rhs_eid
)
{
SWITCH_BITS
(
bits
,
DType
,
{
SWITCH_OP
(
op
,
Op
,
{
SWITCH_TARGET
(
lhs_target
,
rhs_target
,
LhsTarget
,
RhsTarget
,
{
/* Call SDDMM CUDA kernel for each relation type sequentially */
for
(
dgl_type_t
etype
=
0
;
etype
<
lhs_eid
.
size
();
++
etype
)
{
CSRMatrix
csr
=
vec_csr
[
etype
];
NDArray
lhs
=
vec_lhs
[
lhs_eid
[
etype
]];
NDArray
rhs
=
vec_rhs
[
rhs_eid
[
etype
]];
NDArray
out
=
vec_out
[
etype
];
cuda
::
SDDMMCsr
<
IdType
,
DType
,
Op
,
LhsTarget
,
RhsTarget
>
(
bcast
,
csr
,
lhs
,
rhs
,
out
);
}
});
});
});
}
/*!
/*!
* \brief CUDA implementation of g-SDDMM on heterograph using
* \brief CUDA implementation of g-SDDMM on heterograph using
Csr format.
Csr format.
...
@@ -76,49 +43,6 @@ void SDDMMCooHetero(const std::string& op,
...
@@ -76,49 +43,6 @@ void SDDMMCooHetero(const std::string& op,
}
}
template
void
SDDMMCsrHetero
<
kDLGPU
,
int32_t
,
16
>(
const
std
::
string
&
op
,
const
BcastOff
&
bcast
,
const
std
::
vector
<
CSRMatrix
>&
vec_csr
,
const
std
::
vector
<
NDArray
>&
lhs
,
const
std
::
vector
<
NDArray
>&
rhs
,
std
::
vector
<
NDArray
>
out
,
int
lhs_target
,
int
rhs_target
,
const
std
::
vector
<
dgl_type_t
>&
in_eid
,
const
std
::
vector
<
dgl_type_t
>&
out_eid
);
template
void
SDDMMCsrHetero
<
kDLGPU
,
int64_t
,
16
>(
const
std
::
string
&
op
,
const
BcastOff
&
bcast
,
const
std
::
vector
<
CSRMatrix
>&
vec_csr
,
const
std
::
vector
<
NDArray
>&
lhs
,
const
std
::
vector
<
NDArray
>&
rhs
,
std
::
vector
<
NDArray
>
out
,
int
lhs_target
,
int
rhs_target
,
const
std
::
vector
<
dgl_type_t
>&
in_eid
,
const
std
::
vector
<
dgl_type_t
>&
out_eid
);
template
void
SDDMMCsrHetero
<
kDLGPU
,
int32_t
,
32
>(
const
std
::
string
&
op
,
const
BcastOff
&
bcast
,
const
std
::
vector
<
CSRMatrix
>&
vec_csr
,
const
std
::
vector
<
NDArray
>&
lhs
,
const
std
::
vector
<
NDArray
>&
rhs
,
std
::
vector
<
NDArray
>
out
,
int
lhs_target
,
int
rhs_target
,
const
std
::
vector
<
dgl_type_t
>&
in_eid
,
const
std
::
vector
<
dgl_type_t
>&
out_eid
);
template
void
SDDMMCsrHetero
<
kDLGPU
,
int64_t
,
32
>(
const
std
::
string
&
op
,
const
BcastOff
&
bcast
,
const
std
::
vector
<
CSRMatrix
>&
vec_csr
,
const
std
::
vector
<
NDArray
>&
lhs
,
const
std
::
vector
<
NDArray
>&
rhs
,
std
::
vector
<
NDArray
>
out
,
int
lhs_target
,
int
rhs_target
,
const
std
::
vector
<
dgl_type_t
>&
in_eid
,
const
std
::
vector
<
dgl_type_t
>&
out_eid
);
template
void
SDDMMCsrHetero
<
kDLGPU
,
int32_t
,
64
>(
const
std
::
string
&
op
,
const
BcastOff
&
bcast
,
const
std
::
vector
<
CSRMatrix
>&
vec_csr
,
const
std
::
vector
<
NDArray
>&
lhs
,
const
std
::
vector
<
NDArray
>&
rhs
,
std
::
vector
<
NDArray
>
out
,
int
lhs_target
,
int
rhs_target
,
const
std
::
vector
<
dgl_type_t
>&
in_eid
,
const
std
::
vector
<
dgl_type_t
>&
out_eid
);
template
void
SDDMMCsrHetero
<
kDLGPU
,
int64_t
,
64
>(
const
std
::
string
&
op
,
const
BcastOff
&
bcast
,
const
std
::
vector
<
CSRMatrix
>&
vec_csr
,
const
std
::
vector
<
NDArray
>&
lhs
,
const
std
::
vector
<
NDArray
>&
rhs
,
std
::
vector
<
NDArray
>
out
,
int
lhs_target
,
int
rhs_target
,
const
std
::
vector
<
dgl_type_t
>&
in_eid
,
const
std
::
vector
<
dgl_type_t
>&
out_eid
);
template
void
SDDMMCooHetero
<
kDLGPU
,
int32_t
,
16
>(
template
void
SDDMMCooHetero
<
kDLGPU
,
int32_t
,
16
>(
const
std
::
string
&
op
,
const
BcastOff
&
bcast
,
const
std
::
string
&
op
,
const
BcastOff
&
bcast
,
const
std
::
vector
<
COOMatrix
>&
vec_coo
,
const
std
::
vector
<
COOMatrix
>&
vec_coo
,
...
...
src/array/cuda/sddmm_hetero_csr.cu
0 → 100644
View file @
9a7ad16e
/*!
* Copyright (c) 2020 by Contributors
* \file array/cuda/sddmm.cu
* \brief SDDMM C APIs and definitions.
*/
#include <dgl/array.h>
#include "./sddmm.cuh"
namespace
dgl
{
namespace
aten
{
/*!
* \brief CUDA implementation of g-SDDMM on heterograph using
Csr format.
*/
template
<
int
XPU
,
typename
IdType
,
int
bits
>
void
SDDMMCsrHetero
(
const
std
::
string
&
op
,
const
BcastOff
&
bcast
,
const
std
::
vector
<
CSRMatrix
>&
vec_csr
,
const
std
::
vector
<
NDArray
>&
vec_lhs
,
const
std
::
vector
<
NDArray
>&
vec_rhs
,
std
::
vector
<
NDArray
>
vec_out
,
int
lhs_target
,
int
rhs_target
,
const
std
::
vector
<
dgl_type_t
>&
lhs_eid
,
const
std
::
vector
<
dgl_type_t
>&
rhs_eid
)
{
SWITCH_BITS
(
bits
,
DType
,
{
SWITCH_OP
(
op
,
Op
,
{
SWITCH_TARGET
(
lhs_target
,
rhs_target
,
LhsTarget
,
RhsTarget
,
{
/* Call SDDMM CUDA kernel for each relation type sequentially */
for
(
dgl_type_t
etype
=
0
;
etype
<
lhs_eid
.
size
();
++
etype
)
{
CSRMatrix
csr
=
vec_csr
[
etype
];
NDArray
lhs
=
vec_lhs
[
lhs_eid
[
etype
]];
NDArray
rhs
=
vec_rhs
[
rhs_eid
[
etype
]];
NDArray
out
=
vec_out
[
etype
];
cuda
::
SDDMMCsr
<
IdType
,
DType
,
Op
,
LhsTarget
,
RhsTarget
>
(
bcast
,
csr
,
lhs
,
rhs
,
out
);
}
});
});
});
}
template
void
SDDMMCsrHetero
<
kDLGPU
,
int32_t
,
16
>(
const
std
::
string
&
op
,
const
BcastOff
&
bcast
,
const
std
::
vector
<
CSRMatrix
>&
vec_csr
,
const
std
::
vector
<
NDArray
>&
lhs
,
const
std
::
vector
<
NDArray
>&
rhs
,
std
::
vector
<
NDArray
>
out
,
int
lhs_target
,
int
rhs_target
,
const
std
::
vector
<
dgl_type_t
>&
in_eid
,
const
std
::
vector
<
dgl_type_t
>&
out_eid
);
template
void
SDDMMCsrHetero
<
kDLGPU
,
int64_t
,
16
>(
const
std
::
string
&
op
,
const
BcastOff
&
bcast
,
const
std
::
vector
<
CSRMatrix
>&
vec_csr
,
const
std
::
vector
<
NDArray
>&
lhs
,
const
std
::
vector
<
NDArray
>&
rhs
,
std
::
vector
<
NDArray
>
out
,
int
lhs_target
,
int
rhs_target
,
const
std
::
vector
<
dgl_type_t
>&
in_eid
,
const
std
::
vector
<
dgl_type_t
>&
out_eid
);
template
void
SDDMMCsrHetero
<
kDLGPU
,
int32_t
,
32
>(
const
std
::
string
&
op
,
const
BcastOff
&
bcast
,
const
std
::
vector
<
CSRMatrix
>&
vec_csr
,
const
std
::
vector
<
NDArray
>&
lhs
,
const
std
::
vector
<
NDArray
>&
rhs
,
std
::
vector
<
NDArray
>
out
,
int
lhs_target
,
int
rhs_target
,
const
std
::
vector
<
dgl_type_t
>&
in_eid
,
const
std
::
vector
<
dgl_type_t
>&
out_eid
);
template
void
SDDMMCsrHetero
<
kDLGPU
,
int64_t
,
32
>(
const
std
::
string
&
op
,
const
BcastOff
&
bcast
,
const
std
::
vector
<
CSRMatrix
>&
vec_csr
,
const
std
::
vector
<
NDArray
>&
lhs
,
const
std
::
vector
<
NDArray
>&
rhs
,
std
::
vector
<
NDArray
>
out
,
int
lhs_target
,
int
rhs_target
,
const
std
::
vector
<
dgl_type_t
>&
in_eid
,
const
std
::
vector
<
dgl_type_t
>&
out_eid
);
template
void
SDDMMCsrHetero
<
kDLGPU
,
int32_t
,
64
>(
const
std
::
string
&
op
,
const
BcastOff
&
bcast
,
const
std
::
vector
<
CSRMatrix
>&
vec_csr
,
const
std
::
vector
<
NDArray
>&
lhs
,
const
std
::
vector
<
NDArray
>&
rhs
,
std
::
vector
<
NDArray
>
out
,
int
lhs_target
,
int
rhs_target
,
const
std
::
vector
<
dgl_type_t
>&
in_eid
,
const
std
::
vector
<
dgl_type_t
>&
out_eid
);
template
void
SDDMMCsrHetero
<
kDLGPU
,
int64_t
,
64
>(
const
std
::
string
&
op
,
const
BcastOff
&
bcast
,
const
std
::
vector
<
CSRMatrix
>&
vec_csr
,
const
std
::
vector
<
NDArray
>&
lhs
,
const
std
::
vector
<
NDArray
>&
rhs
,
std
::
vector
<
NDArray
>
out
,
int
lhs_target
,
int
rhs_target
,
const
std
::
vector
<
dgl_type_t
>&
in_eid
,
const
std
::
vector
<
dgl_type_t
>&
out_eid
);
}
// namespace aten
}
// namespace dgl
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment