Sparse conversion functions#
This module contains all sparse conversion routines.
The sparse conversion routines describe operations performed on a matrix in sparse format to obtain a matrix in a different sparse format.
hipsparseXnnz()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXdense2csr()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Matrix descriptor
8 hipsparseMatDescr_t descr;
9 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
10
11 // Dense matrix in column order
12 // 1 2 0 3 0
13 // A = 0 4 5 0 0
14 // 6 0 0 7 8
15 std::vector<float> hdense_A = {
16 1.0f, 0.0f, 6.0f, 2.0f, 4.0f, 0.0f, 0.0f, 5.0f, 0.0f, 3.0f, 0.0f, 7.0f, 0.0f, 0.0f, 8.0f};
17
18 int m = 3;
19 int n = 5;
20 hipsparseDirection_t dir = HIPSPARSE_DIRECTION_ROW;
21
22 float* ddense_A = nullptr;
23 HIP_CHECK(hipMalloc((void**)&ddense_A, sizeof(float) * m * n));
24 HIP_CHECK(hipMemcpy(ddense_A, hdense_A.data(), sizeof(float) * m * n, hipMemcpyHostToDevice));
25
26 // Allocate memory for the nnz_per_row_columns array
27 int* dnnz_per_row;
28 HIP_CHECK(hipMalloc((void**)&dnnz_per_row, sizeof(int) * m));
29
30 int nnz_A;
31 HIPSPARSE_CHECK(hipsparseSnnz(handle, dir, m, n, descr, ddense_A, m, dnnz_per_row, &nnz_A));
32
33 // Allocate sparse CSR matrix
34 int* dcsrRowPtr = nullptr;
35 int* dcsrColInd = nullptr;
36 float* dcsrVal = nullptr;
37 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
38 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz_A));
39 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz_A));
40
41 HIPSPARSE_CHECK(hipsparseSdense2csr(
42 handle, m, n, descr, ddense_A, m, dnnz_per_row, dcsrVal, dcsrRowPtr, dcsrColInd));
43
44 HIP_CHECK(hipFree(dcsrRowPtr));
45 HIP_CHECK(hipFree(dcsrColInd));
46 HIP_CHECK(hipFree(dcsrVal));
47 HIP_CHECK(hipFree(dnnz_per_row));
48 HIP_CHECK(hipFree(ddense_A));
49
50 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
51 HIPSPARSE_CHECK(hipsparseDestroy(handle));
52
53 return 0;
54}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Matrix descriptor
8 hipsparseMatDescr_t descr;
9 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
10
11 // Dense matrix in column order
12 // 1 2 0 3 0
13 // A = 0 4 5 0 0
14 // 6 0 0 7 8
15 float hdense_A[] = {1.0, 0.0, 6.0, 2.0, 4.0, 0.0, 0.0, 5.0, 0.0, 3.0, 0.0, 7.0, 0.0, 0.0, 8.0};
16
17 int m = 3;
18 int n = 5;
19 hipsparseDirection_t dir = HIPSPARSE_DIRECTION_ROW;
20
21 float* ddense_A = NULL;
22 HIP_CHECK(hipMalloc((void**)&ddense_A, sizeof(float) * m * n));
23 HIP_CHECK(hipMemcpy(ddense_A, hdense_A, sizeof(float) * m * n, hipMemcpyHostToDevice));
24
25 // Allocate memory for the nnz_per_row_columns array
26 int* dnnz_per_row;
27 HIP_CHECK(hipMalloc((void**)&dnnz_per_row, sizeof(int) * m));
28
29 int nnz_A;
30 HIPSPARSE_CHECK(hipsparseSnnz(handle, dir, m, n, descr, ddense_A, m, dnnz_per_row, &nnz_A));
31
32 // Allocate sparse CSR matrix
33 int* dcsrRowPtr = NULL;
34 int* dcsrColInd = NULL;
35 float* dcsrVal = NULL;
36 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
37 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz_A));
38 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz_A));
39
40 HIPSPARSE_CHECK(hipsparseSdense2csr(
41 handle, m, n, descr, ddense_A, m, dnnz_per_row, dcsrVal, dcsrRowPtr, dcsrColInd));
42
43 HIP_CHECK(hipFree(dcsrRowPtr));
44 HIP_CHECK(hipFree(dcsrColInd));
45 HIP_CHECK(hipFree(dcsrVal));
46 HIP_CHECK(hipFree(dnnz_per_row));
47 HIP_CHECK(hipFree(ddense_A));
48
49 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
50 HIPSPARSE_CHECK(hipsparseDestroy(handle));
51
52 return 0;
53}
hipsparseXpruneDense2csr_bufferSize()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXpruneDense2csr_bufferSizeExt()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXpruneDense2csrNnz()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXpruneDense2csr()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Matrix descriptor
8 hipsparseMatDescr_t descr;
9 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
10
11 // Dense matrix in column order
12 // 1 2 0 3 0
13 // A = 0 4 5 0 0
14 // 6 0 0 7 8
15 std::vector<float> hdense_A = {
16 1.0f, 0.0f, 6.0f, 2.0f, 4.0f, 0.0f, 0.0f, 5.0f, 0.0f, 3.0f, 0.0f, 7.0f, 0.0f, 0.0f, 8.0f};
17
18 int m = 3;
19 int n = 5;
20 int lda = m;
21 float threshold = 4.0f;
22
23 float* ddense_A = nullptr;
24 HIP_CHECK(hipMalloc((void**)&ddense_A, sizeof(float) * lda * n));
25 HIP_CHECK(hipMemcpy(ddense_A, hdense_A.data(), sizeof(float) * lda * n, hipMemcpyHostToDevice));
26
27 // Allocate sparse CSR matrix
28 int* dcsrRowPtr = nullptr;
29 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
30
31 size_t bufferSize;
32 HIPSPARSE_CHECK(hipsparseSpruneDense2csr_bufferSize(
33 handle, m, n, ddense_A, lda, &threshold, descr, nullptr, dcsrRowPtr, nullptr, &bufferSize));
34
35 void* dbuffer = nullptr;
36 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
37
38 int nnz_A;
39 HIPSPARSE_CHECK(hipsparseSpruneDense2csrNnz(
40 handle, m, n, ddense_A, lda, &threshold, descr, dcsrRowPtr, &nnz_A, dbuffer));
41
42 int* dcsrColInd = nullptr;
43 float* dcsrVal = nullptr;
44 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz_A));
45 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz_A));
46
47 HIPSPARSE_CHECK(hipsparseSpruneDense2csr(
48 handle, m, n, ddense_A, lda, &threshold, descr, dcsrVal, dcsrRowPtr, dcsrColInd, dbuffer));
49
50 HIP_CHECK(hipFree(dcsrRowPtr));
51 HIP_CHECK(hipFree(dcsrColInd));
52 HIP_CHECK(hipFree(dcsrVal));
53 HIP_CHECK(hipFree(ddense_A));
54 HIP_CHECK(hipFree(dbuffer));
55
56 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
57 HIPSPARSE_CHECK(hipsparseDestroy(handle));
58
59 return 0;
60}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Matrix descriptor
8 hipsparseMatDescr_t descr;
9 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
10
11 // Dense matrix in column order
12 // 1 2 0 3 0
13 // A = 0 4 5 0 0
14 // 6 0 0 7 8
15 float hdense_A[] = {1.0, 0.0, 6.0, 2.0, 4.0, 0.0, 0.0, 5.0, 0.0, 3.0, 0.0, 7.0, 0.0, 0.0, 8.0};
16
17 int m = 3;
18 int n = 5;
19 int lda = m;
20 float threshold = 4.0;
21
22 float* ddense_A = NULL;
23 HIP_CHECK(hipMalloc((void**)&ddense_A, sizeof(float) * lda * n));
24 HIP_CHECK(hipMemcpy(ddense_A, hdense_A, sizeof(float) * lda * n, hipMemcpyHostToDevice));
25
26 // Allocate sparse CSR matrix
27 int* dcsrRowPtr = NULL;
28 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
29
30 size_t bufferSize;
31 HIPSPARSE_CHECK(hipsparseSpruneDense2csr_bufferSize(
32 handle, m, n, ddense_A, lda, &threshold, descr, NULL, dcsrRowPtr, NULL, &bufferSize));
33
34 void* dbuffer = NULL;
35 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
36
37 int nnz_A;
38 HIPSPARSE_CHECK(hipsparseSpruneDense2csrNnz(
39 handle, m, n, ddense_A, lda, &threshold, descr, dcsrRowPtr, &nnz_A, dbuffer));
40
41 int* dcsrColInd = NULL;
42 float* dcsrVal = NULL;
43 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz_A));
44 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz_A));
45
46 HIPSPARSE_CHECK(hipsparseSpruneDense2csr(
47 handle, m, n, ddense_A, lda, &threshold, descr, dcsrVal, dcsrRowPtr, dcsrColInd, dbuffer));
48
49 HIP_CHECK(hipFree(dcsrRowPtr));
50 HIP_CHECK(hipFree(dcsrColInd));
51 HIP_CHECK(hipFree(dcsrVal));
52 HIP_CHECK(hipFree(ddense_A));
53 HIP_CHECK(hipFree(dbuffer));
54
55 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
56 HIPSPARSE_CHECK(hipsparseDestroy(handle));
57
58 return 0;
59}
hipsparseXpruneDense2csrByPercentage_bufferSize()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXpruneDense2csrByPercentage_bufferSizeExt()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXpruneDense2csrNnzByPercentage()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXpruneDense2csrByPercentage()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Matrix descriptor
8 hipsparseMatDescr_t descr;
9 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
10
11 // Dense matrix in column order
12 // 1 2 0 3 0
13 // A = 0 4 5 0 0
14 // 6 0 0 7 8
15 std::vector<float> hdense_A = {
16 1.0f, 0.0f, 6.0f, 2.0f, 4.0f, 0.0f, 0.0f, 5.0f, 0.0f, 3.0f, 0.0f, 7.0f, 0.0f, 0.0f, 8.0f};
17
18 int m = 3;
19 int n = 5;
20 int lda = m;
21 float percentage = 70.0f;
22
23 float* ddense_A = nullptr;
24 HIP_CHECK(hipMalloc((void**)&ddense_A, sizeof(float) * lda * n));
25 HIP_CHECK(hipMemcpy(ddense_A, hdense_A.data(), sizeof(float) * lda * n, hipMemcpyHostToDevice));
26
27 // Allocate sparse CSR matrix
28 int* dcsrRowPtr = nullptr;
29 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
30
31 pruneInfo_t info;
32 HIPSPARSE_CHECK(hipsparseCreatePruneInfo(&info));
33
34 size_t bufferSize;
35 HIPSPARSE_CHECK(hipsparseSpruneDense2csrByPercentage_bufferSize(handle,
36 m,
37 n,
38 ddense_A,
39 lda,
40 percentage,
41 descr,
42 nullptr,
43 dcsrRowPtr,
44 nullptr,
45 info,
46 &bufferSize));
47
48 void* dbuffer = nullptr;
49 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
50
51 int nnz_A;
52 HIPSPARSE_CHECK(hipsparseSpruneDense2csrNnzByPercentage(
53 handle, m, n, ddense_A, lda, percentage, descr, dcsrRowPtr, &nnz_A, info, dbuffer));
54
55 int* dcsrColInd = nullptr;
56 float* dcsrVal = nullptr;
57 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz_A));
58 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz_A));
59
60 HIPSPARSE_CHECK(hipsparseSpruneDense2csrByPercentage(handle,
61 m,
62 n,
63 ddense_A,
64 lda,
65 percentage,
66 descr,
67 dcsrVal,
68 dcsrRowPtr,
69 dcsrColInd,
70 info,
71 dbuffer));
72
73 HIP_CHECK(hipFree(dcsrRowPtr));
74 HIP_CHECK(hipFree(dcsrColInd));
75 HIP_CHECK(hipFree(dcsrVal));
76 HIP_CHECK(hipFree(ddense_A));
77 HIP_CHECK(hipFree(dbuffer));
78
79 HIPSPARSE_CHECK(hipsparseDestroyPruneInfo(info));
80 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
81 HIPSPARSE_CHECK(hipsparseDestroy(handle));
82
83 return 0;
84}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Matrix descriptor
8 hipsparseMatDescr_t descr;
9 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
10
11 // Dense matrix in column order
12 // 1 2 0 3 0
13 // A = 0 4 5 0 0
14 // 6 0 0 7 8
15 float hdense_A[] = {1.0, 0.0, 6.0, 2.0, 4.0, 0.0, 0.0, 5.0, 0.0, 3.0, 0.0, 7.0, 0.0, 0.0, 8.0};
16
17 int m = 3;
18 int n = 5;
19 int lda = m;
20 float percentage = 70.0;
21
22 float* ddense_A = NULL;
23 HIP_CHECK(hipMalloc((void**)&ddense_A, sizeof(float) * lda * n));
24 HIP_CHECK(hipMemcpy(ddense_A, hdense_A, sizeof(float) * lda * n, hipMemcpyHostToDevice));
25
26 // Allocate sparse CSR matrix
27 int* dcsrRowPtr = NULL;
28 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
29
30 pruneInfo_t info;
31 HIPSPARSE_CHECK(hipsparseCreatePruneInfo(&info));
32
33 size_t bufferSize;
34 HIPSPARSE_CHECK(hipsparseSpruneDense2csrByPercentage_bufferSize(
35 handle, m, n, ddense_A, lda, percentage, descr, NULL, dcsrRowPtr, NULL, info, &bufferSize));
36
37 void* dbuffer = NULL;
38 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
39
40 int nnz_A;
41 HIPSPARSE_CHECK(hipsparseSpruneDense2csrNnzByPercentage(
42 handle, m, n, ddense_A, lda, percentage, descr, dcsrRowPtr, &nnz_A, info, dbuffer));
43
44 int* dcsrColInd = NULL;
45 float* dcsrVal = NULL;
46 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz_A));
47 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz_A));
48
49 HIPSPARSE_CHECK(hipsparseSpruneDense2csrByPercentage(handle,
50 m,
51 n,
52 ddense_A,
53 lda,
54 percentage,
55 descr,
56 dcsrVal,
57 dcsrRowPtr,
58 dcsrColInd,
59 info,
60 dbuffer));
61
62 HIP_CHECK(hipFree(dcsrRowPtr));
63 HIP_CHECK(hipFree(dcsrColInd));
64 HIP_CHECK(hipFree(dcsrVal));
65 HIP_CHECK(hipFree(ddense_A));
66 HIP_CHECK(hipFree(dbuffer));
67
68 HIPSPARSE_CHECK(hipsparseDestroyPruneInfo(info));
69 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
70 HIPSPARSE_CHECK(hipsparseDestroy(handle));
71
72 return 0;
73}
hipsparseXdense2csc()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXcsr2dense()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Matrix descriptor
8 hipsparseMatDescr_t descr;
9 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
10
11 // Sparse matrix in CSR format
12 // 1 2 0 3 0
13 // A = 0 4 5 0 0
14 // 6 0 0 7 8
15 std::vector<int> hcsrRowPtr = {0, 3, 5, 8};
16 std::vector<int> hcsrColInd = {0, 1, 3, 1, 2, 0, 3, 4};
17 std::vector<float> hcsrVal = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f};
18
19 int m = 3;
20 int n = 5;
21 int ld = 3;
22 int nnz = 8;
23
24 int* dcsrRowPtr = nullptr;
25 int* dcsrColInd = nullptr;
26 float* dcsrVal = nullptr;
27 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
28 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
29 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
30
31 HIP_CHECK(
32 hipMemcpy(dcsrRowPtr, hcsrRowPtr.data(), sizeof(int) * (m + 1), hipMemcpyHostToDevice));
33 HIP_CHECK(hipMemcpy(dcsrColInd, hcsrColInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
34 HIP_CHECK(hipMemcpy(dcsrVal, hcsrVal.data(), sizeof(float) * nnz, hipMemcpyHostToDevice));
35
36 float* ddense_A = nullptr;
37 HIP_CHECK(hipMalloc((void**)&ddense_A, sizeof(float) * ld * n));
38
39 HIPSPARSE_CHECK(
40 hipsparseScsr2dense(handle, m, n, descr, dcsrVal, dcsrRowPtr, dcsrColInd, ddense_A, ld));
41
42 HIP_CHECK(hipFree(dcsrRowPtr));
43 HIP_CHECK(hipFree(dcsrColInd));
44 HIP_CHECK(hipFree(dcsrVal));
45 HIP_CHECK(hipFree(ddense_A));
46
47 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
48 HIPSPARSE_CHECK(hipsparseDestroy(handle));
49
50 return 0;
51}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Matrix descriptor
8 hipsparseMatDescr_t descr;
9 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
10
11 // Sparse matrix in CSR format
12 // 1 2 0 3 0
13 // A = 0 4 5 0 0
14 // 6 0 0 7 8
15 int hcsrRowPtr[4] = {0, 3, 5, 8};
16 int hcsrColInd[8] = {0, 1, 3, 1, 2, 0, 3, 4};
17 float hcsrVal[8] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0};
18
19 int m = 3;
20 int n = 5;
21 int ld = 3;
22 int nnz = 8;
23
24 int* dcsrRowPtr = NULL;
25 int* dcsrColInd = NULL;
26 float* dcsrVal = NULL;
27 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
28 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
29 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
30
31 HIP_CHECK(hipMemcpy(dcsrRowPtr, hcsrRowPtr, sizeof(int) * (m + 1), hipMemcpyHostToDevice));
32 HIP_CHECK(hipMemcpy(dcsrColInd, hcsrColInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
33 HIP_CHECK(hipMemcpy(dcsrVal, hcsrVal, sizeof(float) * nnz, hipMemcpyHostToDevice));
34
35 float* ddense_A = NULL;
36 HIP_CHECK(hipMalloc((void**)&ddense_A, sizeof(float) * ld * n));
37
38 HIPSPARSE_CHECK(
39 hipsparseScsr2dense(handle, m, n, descr, dcsrVal, dcsrRowPtr, dcsrColInd, ddense_A, ld));
40
41 HIP_CHECK(hipFree(dcsrRowPtr));
42 HIP_CHECK(hipFree(dcsrColInd));
43 HIP_CHECK(hipFree(dcsrVal));
44 HIP_CHECK(hipFree(ddense_A));
45
46 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
47 HIPSPARSE_CHECK(hipsparseDestroy(handle));
48
49 return 0;
50}
hipsparseXcsc2dense()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXcsr2bsrNnz()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXcsr2bsr()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Matrix descriptor
8 hipsparseMatDescr_t csr_descr;
9 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&csr_descr));
10
11 hipsparseMatDescr_t bsr_descr;
12 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&bsr_descr));
13
14 // Sparse matrix in CSR format
15 // 1 2 0 3 0
16 // A = 0 4 5 0 0
17 // 6 0 0 7 8
18 std::vector<int> hcsrRowPtr = {0, 3, 5, 8};
19 std::vector<int> hcsrColInd = {0, 1, 3, 1, 2, 0, 3, 4};
20 std::vector<float> hcsrVal = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f};
21
22 int m = 3;
23 int n = 5;
24 int nnz = 8;
25 int blockDim = 3;
26 hipsparseDirection_t dir = HIPSPARSE_DIRECTION_ROW;
27
28 int mb = (m + blockDim - 1) / blockDim;
29 int nb = (n + blockDim - 1) / blockDim;
30
31 int* dcsrRowPtr = nullptr;
32 int* dcsrColInd = nullptr;
33 float* dcsrVal = nullptr;
34 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
35 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
36 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
37
38 HIP_CHECK(
39 hipMemcpy(dcsrRowPtr, hcsrRowPtr.data(), sizeof(int) * (m + 1), hipMemcpyHostToDevice));
40 HIP_CHECK(hipMemcpy(dcsrColInd, hcsrColInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
41 HIP_CHECK(hipMemcpy(dcsrVal, hcsrVal.data(), sizeof(float) * nnz, hipMemcpyHostToDevice));
42
43 int* dbsrRowPtr = nullptr;
44 HIP_CHECK(hipMalloc((void**)&dbsrRowPtr, sizeof(int) * (mb + 1)));
45
46 int nnzb;
47 HIPSPARSE_CHECK(hipsparseXcsr2bsrNnz(handle,
48 dir,
49 m,
50 n,
51 csr_descr,
52 dcsrRowPtr,
53 dcsrColInd,
54 blockDim,
55 bsr_descr,
56 dbsrRowPtr,
57 &nnzb));
58
59 int* dbsrColInd = nullptr;
60 float* dbsrVal = nullptr;
61 HIP_CHECK(hipMalloc((void**)&dbsrColInd, sizeof(int) * nnzb));
62 HIP_CHECK(hipMalloc((void**)&dbsrVal, sizeof(float) * blockDim * blockDim * nnzb));
63
64 HIPSPARSE_CHECK(hipsparseScsr2bsr(handle,
65 dir,
66 m,
67 n,
68 csr_descr,
69 dcsrVal,
70 dcsrRowPtr,
71 dcsrColInd,
72 blockDim,
73 bsr_descr,
74 dbsrVal,
75 dbsrRowPtr,
76 dbsrColInd));
77
78 HIP_CHECK(hipFree(dcsrRowPtr));
79 HIP_CHECK(hipFree(dcsrColInd));
80 HIP_CHECK(hipFree(dcsrVal));
81
82 HIP_CHECK(hipFree(dbsrRowPtr));
83 HIP_CHECK(hipFree(dbsrColInd));
84 HIP_CHECK(hipFree(dbsrVal));
85
86 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(csr_descr));
87 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(bsr_descr));
88 HIPSPARSE_CHECK(hipsparseDestroy(handle));
89
90 return 0;
91}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Matrix descriptor
8 hipsparseMatDescr_t csr_descr;
9 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&csr_descr));
10
11 hipsparseMatDescr_t bsr_descr;
12 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&bsr_descr));
13
14 // Sparse matrix in CSR format
15 // 1 2 0 3 0
16 // A = 0 4 5 0 0
17 // 6 0 0 7 8
18 int hcsrRowPtr[4] = {0, 3, 5, 8};
19 int hcsrColInd[8] = {0, 1, 3, 1, 2, 0, 3, 4};
20 float hcsrVal[8] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0};
21
22 int m = 3;
23 int n = 5;
24 int nnz = 8;
25 int blockDim = 3;
26 hipsparseDirection_t dir = HIPSPARSE_DIRECTION_ROW;
27
28 int mb = (m + blockDim - 1) / blockDim;
29 int nb = (n + blockDim - 1) / blockDim;
30
31 int* dcsrRowPtr = NULL;
32 int* dcsrColInd = NULL;
33 float* dcsrVal = NULL;
34 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
35 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
36 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
37
38 HIP_CHECK(hipMemcpy(dcsrRowPtr, hcsrRowPtr, sizeof(int) * (m + 1), hipMemcpyHostToDevice));
39 HIP_CHECK(hipMemcpy(dcsrColInd, hcsrColInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
40 HIP_CHECK(hipMemcpy(dcsrVal, hcsrVal, sizeof(float) * nnz, hipMemcpyHostToDevice));
41
42 int* dbsrRowPtr = NULL;
43 HIP_CHECK(hipMalloc((void**)&dbsrRowPtr, sizeof(int) * (mb + 1)));
44
45 int nnzb;
46 HIPSPARSE_CHECK(hipsparseXcsr2bsrNnz(handle,
47 dir,
48 m,
49 n,
50 csr_descr,
51 dcsrRowPtr,
52 dcsrColInd,
53 blockDim,
54 bsr_descr,
55 dbsrRowPtr,
56 &nnzb));
57
58 int* dbsrColInd = NULL;
59 float* dbsrVal = NULL;
60 HIP_CHECK(hipMalloc((void**)&dbsrColInd, sizeof(int) * nnzb));
61 HIP_CHECK(hipMalloc((void**)&dbsrVal, sizeof(float) * blockDim * blockDim * nnzb));
62
63 HIPSPARSE_CHECK(hipsparseScsr2bsr(handle,
64 dir,
65 m,
66 n,
67 csr_descr,
68 dcsrVal,
69 dcsrRowPtr,
70 dcsrColInd,
71 blockDim,
72 bsr_descr,
73 dbsrVal,
74 dbsrRowPtr,
75 dbsrColInd));
76
77 HIP_CHECK(hipFree(dcsrRowPtr));
78 HIP_CHECK(hipFree(dcsrColInd));
79 HIP_CHECK(hipFree(dcsrVal));
80
81 HIP_CHECK(hipFree(dbsrRowPtr));
82 HIP_CHECK(hipFree(dbsrColInd));
83 HIP_CHECK(hipFree(dbsrVal));
84
85 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(csr_descr));
86 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(bsr_descr));
87 HIPSPARSE_CHECK(hipsparseDestroy(handle));
88
89 return 0;
90}
hipsparseXnnz_compress()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Matrix descriptor
8 hipsparseMatDescr_t descr_A;
9 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr_A));
10
11 // 1 2 0 3 0
12 // A = 0 4 5 0 0
13 // 6 0 0 7 8
14 float tol = 4.2f;
15
16 int m = 3;
17 int n = 5;
18 int nnz_A = 8;
19
20 std::vector<int> hcsrRowPtr_A = {0, 3, 5, 8};
21 std::vector<float> hcsrVal_A = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f};
22
23 int* dcsrRowPtr_A = nullptr;
24 float* dcsrVal_A = nullptr;
25 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr_A, sizeof(int) * (m + 1)));
26 HIP_CHECK(hipMalloc((void**)&dcsrVal_A, sizeof(float) * nnz_A));
27
28 HIP_CHECK(
29 hipMemcpy(dcsrRowPtr_A, hcsrRowPtr_A.data(), sizeof(int) * (m + 1), hipMemcpyHostToDevice));
30 HIP_CHECK(hipMemcpy(dcsrVal_A, hcsrVal_A.data(), sizeof(float) * nnz_A, hipMemcpyHostToDevice));
31
32 // Allocate memory for the nnz_per_row array
33 int* dnnz_per_row;
34 HIP_CHECK(hipMalloc((void**)&dnnz_per_row, sizeof(int) * m));
35
36 // Call snnz_compress() which fills in nnz_per_row array and finds the number
37 // of entries that will be in the compressed CSR matrix
38 int nnz_C;
39 HIPSPARSE_CHECK(hipsparseSnnz_compress(
40 handle, m, descr_A, dcsrVal_A, dcsrRowPtr_A, dnnz_per_row, &nnz_C, tol));
41
42 HIP_CHECK(hipFree(dcsrRowPtr_A));
43 HIP_CHECK(hipFree(dcsrVal_A));
44 HIP_CHECK(hipFree(dnnz_per_row));
45
46 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr_A));
47 HIPSPARSE_CHECK(hipsparseDestroy(handle));
48
49 return 0;
50}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Matrix descriptor
8 hipsparseMatDescr_t descr_A;
9 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr_A));
10
11 // 1 2 0 3 0
12 // A = 0 4 5 0 0
13 // 6 0 0 7 8
14 float tol = 4.2;
15
16 int m = 3;
17 int n = 5;
18 int nnz_A = 8;
19
20 int hcsrRowPtr_A[4] = {0, 3, 5, 8};
21 float hcsrVal_A[8] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0};
22
23 int* dcsrRowPtr_A = NULL;
24 float* dcsrVal_A = NULL;
25 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr_A, sizeof(int) * (m + 1)));
26 HIP_CHECK(hipMalloc((void**)&dcsrVal_A, sizeof(float) * nnz_A));
27
28 HIP_CHECK(hipMemcpy(dcsrRowPtr_A, hcsrRowPtr_A, sizeof(int) * (m + 1), hipMemcpyHostToDevice));
29 HIP_CHECK(hipMemcpy(dcsrVal_A, hcsrVal_A, sizeof(float) * nnz_A, hipMemcpyHostToDevice));
30
31 // Allocate memory for the nnz_per_row array
32 int* dnnz_per_row;
33 HIP_CHECK(hipMalloc((void**)&dnnz_per_row, sizeof(int) * m));
34
35 // Call snnz_compress() which fills in nnz_per_row array and finds the number
36 // of entries that will be in the compressed CSR matrix
37 int nnz_C;
38 HIPSPARSE_CHECK(hipsparseSnnz_compress(
39 handle, m, descr_A, dcsrVal_A, dcsrRowPtr_A, dnnz_per_row, &nnz_C, tol));
40
41 HIP_CHECK(hipFree(dcsrRowPtr_A));
42 HIP_CHECK(hipFree(dcsrVal_A));
43 HIP_CHECK(hipFree(dnnz_per_row));
44
45 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr_A));
46 HIPSPARSE_CHECK(hipsparseDestroy(handle));
47
48 return 0;
49}
hipsparseXcsr2coo()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Sparse matrix in COO format
8 // 1 2 0 3 0
9 // A = 0 4 5 0 0
10 // 6 0 0 7 8
11 std::vector<int> hcooRowInd = {0, 0, 0, 1, 1, 2, 2, 2};
12 std::vector<int> hcooColInd = {0, 1, 3, 1, 2, 0, 3, 4};
13 std::vector<float> hcooVal = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f};
14
15 int m = 3;
16 int n = 5;
17 int nnz = 8;
18 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
19
20 int* dcooRowInd = nullptr;
21 int* dcooColInd = nullptr;
22 HIP_CHECK(hipMalloc((void**)&dcooRowInd, sizeof(int) * nnz));
23 HIP_CHECK(hipMalloc((void**)&dcooColInd, sizeof(int) * nnz));
24
25 HIP_CHECK(hipMemcpy(dcooRowInd, hcooRowInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
26 HIP_CHECK(hipMemcpy(dcooColInd, hcooColInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
27
28 int* dcsrRowPtr = nullptr;
29 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
30
31 HIPSPARSE_CHECK(hipsparseXcoo2csr(handle, dcooRowInd, nnz, m, dcsrRowPtr, base));
32
33 HIP_CHECK(hipFree(dcooRowInd));
34 HIP_CHECK(hipFree(dcooColInd));
35
36 HIP_CHECK(hipFree(dcsrRowPtr));
37
38 HIPSPARSE_CHECK(hipsparseDestroy(handle));
39
40 return 0;
41}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Sparse matrix in COO format
8 // 1 2 0 3 0
9 // A = 0 4 5 0 0
10 // 6 0 0 7 8
11 int hcooRowInd[8] = {0, 0, 0, 1, 1, 2, 2, 2};
12 int hcooColInd[8] = {0, 1, 3, 1, 2, 0, 3, 4};
13 float hcooVal[8] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0};
14
15 int m = 3;
16 int n = 5;
17 int nnz = 8;
18 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
19
20 int* dcooRowInd = NULL;
21 int* dcooColInd = NULL;
22 HIP_CHECK(hipMalloc((void**)&dcooRowInd, sizeof(int) * nnz));
23 HIP_CHECK(hipMalloc((void**)&dcooColInd, sizeof(int) * nnz));
24
25 HIP_CHECK(hipMemcpy(dcooRowInd, hcooRowInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
26 HIP_CHECK(hipMemcpy(dcooColInd, hcooColInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
27
28 int* dcsrRowPtr = NULL;
29 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
30
31 HIPSPARSE_CHECK(hipsparseXcoo2csr(handle, dcooRowInd, nnz, m, dcsrRowPtr, base));
32
33 HIP_CHECK(hipFree(dcooRowInd));
34 HIP_CHECK(hipFree(dcooColInd));
35
36 HIP_CHECK(hipFree(dcsrRowPtr));
37
38 HIPSPARSE_CHECK(hipsparseDestroy(handle));
39
40 return 0;
41}
hipsparseXcsr2csc()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Sparse matrix in CSR format
8 // 1 2 0 3 0
9 // A = 0 4 5 0 0
10 // 6 0 0 7 8
11 std::vector<int> hcsrRowPtr = {0, 3, 5, 8};
12 std::vector<int> hcsrColInd = {0, 1, 3, 1, 2, 0, 3, 4};
13 std::vector<float> hcsrVal = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f};
14
15 int m = 3;
16 int n = 5;
17 int nnz = 8;
18 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
19 hipsparseAction_t action = HIPSPARSE_ACTION_NUMERIC;
20
21 int* dcsrRowPtr = nullptr;
22 int* dcsrColInd = nullptr;
23 float* dcsrVal = nullptr;
24 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
25 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
26 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
27
28 HIP_CHECK(
29 hipMemcpy(dcsrRowPtr, hcsrRowPtr.data(), sizeof(int) * (m + 1), hipMemcpyHostToDevice));
30 HIP_CHECK(hipMemcpy(dcsrColInd, hcsrColInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
31 HIP_CHECK(hipMemcpy(dcsrVal, hcsrVal.data(), sizeof(float) * nnz, hipMemcpyHostToDevice));
32
33 int* dcscRowInd = nullptr;
34 int* dcscColPtr = nullptr;
35 float* dcsc_val = nullptr;
36 HIP_CHECK(hipMalloc((void**)&dcscRowInd, sizeof(int) * nnz));
37 HIP_CHECK(hipMalloc((void**)&dcscColPtr, sizeof(int) * (n + 1)));
38 HIP_CHECK(hipMalloc((void**)&dcsc_val, sizeof(float) * nnz));
39
40 HIPSPARSE_CHECK(hipsparseScsr2csc(handle,
41 m,
42 n,
43 nnz,
44 dcsrVal,
45 dcsrRowPtr,
46 dcsrColInd,
47 dcsc_val,
48 dcscRowInd,
49 dcscColPtr,
50 action,
51 base));
52
53 HIP_CHECK(hipFree(dcsrRowPtr));
54 HIP_CHECK(hipFree(dcsrColInd));
55 HIP_CHECK(hipFree(dcsrVal));
56
57 HIP_CHECK(hipFree(dcscRowInd));
58 HIP_CHECK(hipFree(dcscColPtr));
59 HIP_CHECK(hipFree(dcsc_val));
60
61 HIPSPARSE_CHECK(hipsparseDestroy(handle));
62
63 return 0;
64}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Sparse matrix in CSR format
8 // 1 2 0 3 0
9 // A = 0 4 5 0 0
10 // 6 0 0 7 8
11 int hcsrRowPtr[4] = {0, 3, 5, 8};
12 int hcsrColInd[8] = {0, 1, 3, 1, 2, 0, 3, 4};
13 float hcsrVal[8] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0};
14
15 int m = 3;
16 int n = 5;
17 int nnz = 8;
18 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
19 hipsparseAction_t action = HIPSPARSE_ACTION_NUMERIC;
20
21 int* dcsrRowPtr = NULL;
22 int* dcsrColInd = NULL;
23 float* dcsrVal = NULL;
24 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
25 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
26 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
27
28 HIP_CHECK(hipMemcpy(dcsrRowPtr, hcsrRowPtr, sizeof(int) * (m + 1), hipMemcpyHostToDevice));
29 HIP_CHECK(hipMemcpy(dcsrColInd, hcsrColInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
30 HIP_CHECK(hipMemcpy(dcsrVal, hcsrVal, sizeof(float) * nnz, hipMemcpyHostToDevice));
31
32 int* dcscRowInd = NULL;
33 int* dcscColPtr = NULL;
34 float* dcsc_val = NULL;
35 HIP_CHECK(hipMalloc((void**)&dcscRowInd, sizeof(int) * nnz));
36 HIP_CHECK(hipMalloc((void**)&dcscColPtr, sizeof(int) * (n + 1)));
37 HIP_CHECK(hipMalloc((void**)&dcsc_val, sizeof(float) * nnz));
38
39 HIPSPARSE_CHECK(hipsparseScsr2csc(handle,
40 m,
41 n,
42 nnz,
43 dcsrVal,
44 dcsrRowPtr,
45 dcsrColInd,
46 dcsc_val,
47 dcscRowInd,
48 dcscColPtr,
49 action,
50 base));
51
52 HIP_CHECK(hipFree(dcsrRowPtr));
53 HIP_CHECK(hipFree(dcsrColInd));
54 HIP_CHECK(hipFree(dcsrVal));
55
56 HIP_CHECK(hipFree(dcscRowInd));
57 HIP_CHECK(hipFree(dcscColPtr));
58 HIP_CHECK(hipFree(dcsc_val));
59
60 HIPSPARSE_CHECK(hipsparseDestroy(handle));
61
62 return 0;
63}
hipsparseXcsr2cscEx2_bufferSize()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXcsr2cscEx2()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Sparse matrix in CSR format
8 // 1 2 0 3 0
9 // A = 0 4 5 0 0
10 // 6 0 0 7 8
11 std::vector<int> hcsrRowPtr = {0, 3, 5, 8};
12 std::vector<int> hcsrColInd = {0, 1, 3, 1, 2, 0, 3, 4};
13 std::vector<float> hcsrVal = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f};
14
15 int m = 3;
16 int n = 5;
17 int nnz = 8;
18 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
19 hipsparseAction_t action = HIPSPARSE_ACTION_NUMERIC;
20 hipsparseCsr2CscAlg_t alg = HIPSPARSE_CSR2CSC_ALG_DEFAULT;
21
22 int* dcsrRowPtr = nullptr;
23 int* dcsrColInd = nullptr;
24 float* dcsrVal = nullptr;
25 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
26 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
27 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
28
29 HIP_CHECK(
30 hipMemcpy(dcsrRowPtr, hcsrRowPtr.data(), sizeof(int) * (m + 1), hipMemcpyHostToDevice));
31 HIP_CHECK(hipMemcpy(dcsrColInd, hcsrColInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
32 HIP_CHECK(hipMemcpy(dcsrVal, hcsrVal.data(), sizeof(float) * nnz, hipMemcpyHostToDevice));
33
34 int* dcscRowInd = nullptr;
35 int* dcscColPtr = nullptr;
36 float* dcsc_val = nullptr;
37 HIP_CHECK(hipMalloc((void**)&dcscRowInd, sizeof(int) * nnz));
38 HIP_CHECK(hipMalloc((void**)&dcscColPtr, sizeof(int) * (n + 1)));
39 HIP_CHECK(hipMalloc((void**)&dcsc_val, sizeof(float) * nnz));
40
41 size_t bufferSize;
42 HIPSPARSE_CHECK(hipsparseCsr2cscEx2_bufferSize(handle,
43 m,
44 n,
45 nnz,
46 dcsrVal,
47 dcsrRowPtr,
48 dcsrColInd,
49 dcsc_val,
50 dcscColPtr,
51 dcscRowInd,
52 HIP_R_32F,
53 action,
54 base,
55 alg,
56 &bufferSize));
57
58 void* dbuffer = nullptr;
59 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
60
61 HIPSPARSE_CHECK(hipsparseCsr2cscEx2(handle,
62 m,
63 n,
64 nnz,
65 dcsrVal,
66 dcsrRowPtr,
67 dcsrColInd,
68 dcsc_val,
69 dcscColPtr,
70 dcscRowInd,
71 HIP_R_32F,
72 action,
73 base,
74 alg,
75 dbuffer));
76
77 HIP_CHECK(hipFree(dcsrRowPtr));
78 HIP_CHECK(hipFree(dcsrColInd));
79 HIP_CHECK(hipFree(dcsrVal));
80
81 HIP_CHECK(hipFree(dcscRowInd));
82 HIP_CHECK(hipFree(dcscColPtr));
83 HIP_CHECK(hipFree(dcsc_val));
84
85 HIP_CHECK(hipFree(dbuffer));
86
87 HIPSPARSE_CHECK(hipsparseDestroy(handle));
88
89 return 0;
90}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Sparse matrix in CSR format
8 // 1 2 0 3 0
9 // A = 0 4 5 0 0
10 // 6 0 0 7 8
11 int hcsrRowPtr[4] = {0, 3, 5, 8};
12 int hcsrColInd[8] = {0, 1, 3, 1, 2, 0, 3, 4};
13 float hcsrVal[8] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0};
14
15 int m = 3;
16 int n = 5;
17 int nnz = 8;
18 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
19 hipsparseAction_t action = HIPSPARSE_ACTION_NUMERIC;
20 hipsparseCsr2CscAlg_t alg = HIPSPARSE_CSR2CSC_ALG_DEFAULT;
21
22 int* dcsrRowPtr = NULL;
23 int* dcsrColInd = NULL;
24 float* dcsrVal = NULL;
25 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
26 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
27 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
28
29 HIP_CHECK(hipMemcpy(dcsrRowPtr, hcsrRowPtr, sizeof(int) * (m + 1), hipMemcpyHostToDevice));
30 HIP_CHECK(hipMemcpy(dcsrColInd, hcsrColInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
31 HIP_CHECK(hipMemcpy(dcsrVal, hcsrVal, sizeof(float) * nnz, hipMemcpyHostToDevice));
32
33 int* dcscRowInd = NULL;
34 int* dcscColPtr = NULL;
35 float* dcsc_val = NULL;
36 HIP_CHECK(hipMalloc((void**)&dcscRowInd, sizeof(int) * nnz));
37 HIP_CHECK(hipMalloc((void**)&dcscColPtr, sizeof(int) * (n + 1)));
38 HIP_CHECK(hipMalloc((void**)&dcsc_val, sizeof(float) * nnz));
39
40 size_t bufferSize;
41 HIPSPARSE_CHECK(hipsparseCsr2cscEx2_bufferSize(handle,
42 m,
43 n,
44 nnz,
45 dcsrVal,
46 dcsrRowPtr,
47 dcsrColInd,
48 dcsc_val,
49 dcscColPtr,
50 dcscRowInd,
51 HIP_R_32F,
52 action,
53 base,
54 alg,
55 &bufferSize));
56
57 void* dbuffer = NULL;
58 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
59
60 HIPSPARSE_CHECK(hipsparseCsr2cscEx2(handle,
61 m,
62 n,
63 nnz,
64 dcsrVal,
65 dcsrRowPtr,
66 dcsrColInd,
67 dcsc_val,
68 dcscColPtr,
69 dcscRowInd,
70 HIP_R_32F,
71 action,
72 base,
73 alg,
74 dbuffer));
75
76 HIP_CHECK(hipFree(dcsrRowPtr));
77 HIP_CHECK(hipFree(dcsrColInd));
78 HIP_CHECK(hipFree(dcsrVal));
79
80 HIP_CHECK(hipFree(dcscRowInd));
81 HIP_CHECK(hipFree(dcscColPtr));
82 HIP_CHECK(hipFree(dcsc_val));
83
84 HIP_CHECK(hipFree(dbuffer));
85
86 HIPSPARSE_CHECK(hipsparseDestroy(handle));
87
88 return 0;
89}
hipsparseXcsr2hyb()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t descr;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
9
10 // Sparse matrix in CSR format
11 // 1 2 0 3 0
12 // A = 0 4 5 0 0
13 // 6 0 0 7 8
14 std::vector<int> hcsrRowPtr = {0, 3, 5, 8};
15 std::vector<int> hcsrColInd = {0, 1, 3, 1, 2, 0, 3, 4};
16 std::vector<float> hcsrVal = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f};
17
18 int m = 3;
19 int n = 5;
20 int nnz = 8;
21 int userEllWidth = 2;
22 hipsparseHybPartition_t partitionType = HIPSPARSE_HYB_PARTITION_AUTO;
23
24 int* dcsrRowPtr = nullptr;
25 int* dcsrColInd = nullptr;
26 float* dcsrVal = nullptr;
27 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
28 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
29 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
30
31 HIP_CHECK(
32 hipMemcpy(dcsrRowPtr, hcsrRowPtr.data(), sizeof(int) * (m + 1), hipMemcpyHostToDevice));
33 HIP_CHECK(hipMemcpy(dcsrColInd, hcsrColInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
34 HIP_CHECK(hipMemcpy(dcsrVal, hcsrVal.data(), sizeof(float) * nnz, hipMemcpyHostToDevice));
35
36 hipsparseHybMat_t hyb;
37 HIPSPARSE_CHECK(hipsparseCreateHybMat(&hyb));
38
39 HIPSPARSE_CHECK(hipsparseScsr2hyb(
40 handle, m, n, descr, dcsrVal, dcsrRowPtr, dcsrColInd, hyb, userEllWidth, partitionType));
41
42 HIP_CHECK(hipFree(dcsrRowPtr));
43 HIP_CHECK(hipFree(dcsrColInd));
44 HIP_CHECK(hipFree(dcsrVal));
45
46 HIPSPARSE_CHECK(hipsparseDestroyHybMat(hyb));
47 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
48
49 HIPSPARSE_CHECK(hipsparseDestroy(handle));
50
51 return 0;
52}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t descr;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
9
10 // Sparse matrix in CSR format
11 // 1 2 0 3 0
12 // A = 0 4 5 0 0
13 // 6 0 0 7 8
14 int hcsrRowPtr[4] = {0, 3, 5, 8};
15 int hcsrColInd[8] = {0, 1, 3, 1, 2, 0, 3, 4};
16 float hcsrVal[8] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0};
17
18 int m = 3;
19 int n = 5;
20 int nnz = 8;
21 int userEllWidth = 2;
22 hipsparseHybPartition_t partitionType = HIPSPARSE_HYB_PARTITION_AUTO;
23
24 int* dcsrRowPtr = NULL;
25 int* dcsrColInd = NULL;
26 float* dcsrVal = NULL;
27 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
28 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
29 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
30
31 HIP_CHECK(hipMemcpy(dcsrRowPtr, hcsrRowPtr, sizeof(int) * (m + 1), hipMemcpyHostToDevice));
32 HIP_CHECK(hipMemcpy(dcsrColInd, hcsrColInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
33 HIP_CHECK(hipMemcpy(dcsrVal, hcsrVal, sizeof(float) * nnz, hipMemcpyHostToDevice));
34
35 hipsparseHybMat_t hyb;
36 HIPSPARSE_CHECK(hipsparseCreateHybMat(&hyb));
37
38 HIPSPARSE_CHECK(hipsparseScsr2hyb(
39 handle, m, n, descr, dcsrVal, dcsrRowPtr, dcsrColInd, hyb, userEllWidth, partitionType));
40
41 HIP_CHECK(hipFree(dcsrRowPtr));
42 HIP_CHECK(hipFree(dcsrColInd));
43 HIP_CHECK(hipFree(dcsrVal));
44
45 HIPSPARSE_CHECK(hipsparseDestroyHybMat(hyb));
46 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
47
48 HIPSPARSE_CHECK(hipsparseDestroy(handle));
49
50 return 0;
51}
hipsparseXgebsr2gebsc_bufferSize()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXgebsr2gebsc()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Sparse matrix in BSR format
8 // 1 2 | 0 3 | 0 0
9 // 0 4 | 5 0 | 0 1
10 // A = 6 0 | 0 7 | 8 0
11 // ---------------
12 // 0 0 | 3 0 | 2 2
13 // 1 0 | 0 0 | 4 3
14 // 7 2 | 0 0 | 1 4
15 std::vector<int> hbsrRowPtr = {0, 3, 6};
16 std::vector<int> hbsrColInd = {0, 1, 2, 0, 1, 2};
17 std::vector<float> hbsrVal
18 = {1.0f, 2.0f, 0.0f, 4.0f, 6.0f, 0.0f, 0.0f, 3.0f, 5.0f, 0.0f, 0.0f, 7.0f,
19 0.0f, 0.0f, 0.0f, 1.0f, 8.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 7.0f, 2.0f,
20 3.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f, 2.0f, 4.0f, 3.0f, 1.0f, 4.0f};
21
22 int m = 6;
23 int n = 6;
24 int rowBlockDim = 3;
25 int colBlockDim = 2;
26 int nnzb = 6;
27 hipsparseDirection_t dir = HIPSPARSE_DIRECTION_ROW;
28 hipsparseAction_t action = HIPSPARSE_ACTION_NUMERIC;
29 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
30
31 int mb = (m + rowBlockDim - 1) / rowBlockDim;
32 int nb = (n + colBlockDim - 1) / colBlockDim;
33
34 int* dbsrRowPtr = nullptr;
35 int* dbsrColInd = nullptr;
36 float* dbsrVal = nullptr;
37 HIP_CHECK(hipMalloc((void**)&dbsrRowPtr, sizeof(int) * (mb + 1)));
38 HIP_CHECK(hipMalloc((void**)&dbsrColInd, sizeof(int) * nnzb));
39 HIP_CHECK(hipMalloc((void**)&dbsrVal, sizeof(float) * rowBlockDim * colBlockDim * nnzb));
40
41 HIP_CHECK(
42 hipMemcpy(dbsrRowPtr, hbsrRowPtr.data(), sizeof(int) * (mb + 1), hipMemcpyHostToDevice));
43 HIP_CHECK(hipMemcpy(dbsrColInd, hbsrColInd.data(), sizeof(int) * nnzb, hipMemcpyHostToDevice));
44 HIP_CHECK(hipMemcpy(dbsrVal,
45 hbsrVal.data(),
46 sizeof(float) * rowBlockDim * colBlockDim * nnzb,
47 hipMemcpyHostToDevice));
48
49 int* dbscRowInd = nullptr;
50 int* dbscColPtr = nullptr;
51 float* dbscVal = nullptr;
52 HIP_CHECK(hipMalloc((void**)&dbscRowInd, sizeof(int) * nnzb));
53 HIP_CHECK(hipMalloc((void**)&dbscColPtr, sizeof(int) * (nb + 1)));
54 HIP_CHECK(hipMalloc((void**)&dbscVal, sizeof(float) * rowBlockDim * colBlockDim * nnzb));
55
56 size_t bufferSize;
57 HIPSPARSE_CHECK(hipsparseSgebsr2gebsc_bufferSize(handle,
58 mb,
59 nb,
60 nnzb,
61 dbsrVal,
62 dbsrRowPtr,
63 dbsrColInd,
64 rowBlockDim,
65 colBlockDim,
66 &bufferSize));
67
68 void* dbuffer = nullptr;
69 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
70
71 HIPSPARSE_CHECK(hipsparseSgebsr2gebsc(handle,
72 mb,
73 nb,
74 nnzb,
75 dbsrVal,
76 dbsrRowPtr,
77 dbsrColInd,
78 rowBlockDim,
79 colBlockDim,
80 dbscVal,
81 dbscRowInd,
82 dbscColPtr,
83 action,
84 base,
85 dbuffer));
86
87 HIP_CHECK(hipFree(dbsrRowPtr));
88 HIP_CHECK(hipFree(dbsrColInd));
89 HIP_CHECK(hipFree(dbsrVal));
90
91 HIP_CHECK(hipFree(dbscRowInd));
92 HIP_CHECK(hipFree(dbscColPtr));
93 HIP_CHECK(hipFree(dbscVal));
94
95 HIP_CHECK(hipFree(dbuffer));
96
97 HIPSPARSE_CHECK(hipsparseDestroy(handle));
98
99 return 0;
100}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Sparse matrix in BSR format
8 // 1 2 | 0 3 | 0 0
9 // 0 4 | 5 0 | 0 1
10 // A = 6 0 | 0 7 | 8 0
11 // ---------------
12 // 0 0 | 3 0 | 2 2
13 // 1 0 | 0 0 | 4 3
14 // 7 2 | 0 0 | 1 4
15 int hbsrRowPtr[3] = {0, 3, 6};
16 int hbsrColInd[6] = {0, 1, 2, 0, 1, 2};
17 float hbsrVal[36] = {1.0, 2.0, 0.0, 4.0, 6.0, 0.0, 0.0, 3.0, 5.0, 0.0, 0.0, 7.0,
18 0.0, 0.0, 0.0, 1.0, 8.0, 0.0, 0.0, 0.0, 1.0, 0.0, 7.0, 2.0,
19 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 3.0, 1.0, 4.0};
20
21 int m = 6;
22 int n = 6;
23 int rowBlockDim = 3;
24 int colBlockDim = 2;
25 int nnzb = 6;
26 hipsparseDirection_t dir = HIPSPARSE_DIRECTION_ROW;
27 hipsparseAction_t action = HIPSPARSE_ACTION_NUMERIC;
28 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
29
30 int mb = (m + rowBlockDim - 1) / rowBlockDim;
31 int nb = (n + colBlockDim - 1) / colBlockDim;
32
33 int* dbsrRowPtr = NULL;
34 int* dbsrColInd = NULL;
35 float* dbsrVal = NULL;
36 HIP_CHECK(hipMalloc((void**)&dbsrRowPtr, sizeof(int) * (mb + 1)));
37 HIP_CHECK(hipMalloc((void**)&dbsrColInd, sizeof(int) * nnzb));
38 HIP_CHECK(hipMalloc((void**)&dbsrVal, sizeof(float) * rowBlockDim * colBlockDim * nnzb));
39
40 HIP_CHECK(hipMemcpy(dbsrRowPtr, hbsrRowPtr, sizeof(int) * (mb + 1), hipMemcpyHostToDevice));
41 HIP_CHECK(hipMemcpy(dbsrColInd, hbsrColInd, sizeof(int) * nnzb, hipMemcpyHostToDevice));
42 HIP_CHECK(hipMemcpy(
43 dbsrVal, hbsrVal, sizeof(float) * rowBlockDim * colBlockDim * nnzb, hipMemcpyHostToDevice));
44
45 int* dbscRowInd = NULL;
46 int* dbscColPtr = NULL;
47 float* dbscVal = NULL;
48 HIP_CHECK(hipMalloc((void**)&dbscRowInd, sizeof(int) * nnzb));
49 HIP_CHECK(hipMalloc((void**)&dbscColPtr, sizeof(int) * (nb + 1)));
50 HIP_CHECK(hipMalloc((void**)&dbscVal, sizeof(float) * rowBlockDim * colBlockDim * nnzb));
51
52 size_t bufferSize;
53 HIPSPARSE_CHECK(hipsparseSgebsr2gebsc_bufferSize(handle,
54 mb,
55 nb,
56 nnzb,
57 dbsrVal,
58 dbsrRowPtr,
59 dbsrColInd,
60 rowBlockDim,
61 colBlockDim,
62 &bufferSize));
63
64 void* dbuffer = NULL;
65 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
66
67 HIPSPARSE_CHECK(hipsparseSgebsr2gebsc(handle,
68 mb,
69 nb,
70 nnzb,
71 dbsrVal,
72 dbsrRowPtr,
73 dbsrColInd,
74 rowBlockDim,
75 colBlockDim,
76 dbscVal,
77 dbscRowInd,
78 dbscColPtr,
79 action,
80 base,
81 dbuffer));
82
83 HIP_CHECK(hipFree(dbsrRowPtr));
84 HIP_CHECK(hipFree(dbsrColInd));
85 HIP_CHECK(hipFree(dbsrVal));
86
87 HIP_CHECK(hipFree(dbscRowInd));
88 HIP_CHECK(hipFree(dbscColPtr));
89 HIP_CHECK(hipFree(dbscVal));
90
91 HIP_CHECK(hipFree(dbuffer));
92
93 HIPSPARSE_CHECK(hipsparseDestroy(handle));
94
95 return 0;
96}
hipsparseXcsr2gebsr_bufferSize()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXcsr2gebsrNnz()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t csr_descr;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&csr_descr));
9
10 hipsparseMatDescr_t bsr_descr;
11 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&bsr_descr));
12
13 // Sparse matrix in CSR format
14 // 1 2 0 3 0 0
15 // 0 4 5 0 0 1
16 // A = 6 0 0 7 8 0
17 // 0 0 3 0 2 2
18 // 1 0 0 0 4 3
19 // 7 2 0 0 1 4
20 std::vector<int> hcsrRowPtr = {0, 3, 6, 9, 12, 15, 19};
21 std::vector<int> hcsrColInd = {0, 1, 3, 1, 2, 5, 0, 3, 4, 2, 4, 5, 0, 4, 5, 0, 1, 4, 5};
22 std::vector<float> hcsrVal = {1.0f,
23 2.0f,
24 3.0f,
25 4.0f,
26 5.0f,
27 1.0f,
28 6.0f,
29 7.0f,
30 8.0f,
31 3.0f,
32 2.0f,
33 2.0f,
34 1.0f,
35 4.0f,
36 3.0f,
37 7.0f,
38 2.0f,
39 1.0f,
40 4.0f};
41
42 int m = 6;
43 int n = 6;
44 int nnz = 19;
45 int rowBlockDim = 3;
46 int colBlockDim = 2;
47 hipsparseDirection_t dir = HIPSPARSE_DIRECTION_ROW;
48 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
49
50 int mb = (m + rowBlockDim - 1) / rowBlockDim;
51 int nb = (n + colBlockDim - 1) / colBlockDim;
52
53 int* dcsrRowPtr = nullptr;
54 int* dcsrColInd = nullptr;
55 float* dcsrVal = nullptr;
56 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
57 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
58 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
59
60 HIP_CHECK(
61 hipMemcpy(dcsrRowPtr, hcsrRowPtr.data(), sizeof(int) * (m + 1), hipMemcpyHostToDevice));
62 HIP_CHECK(hipMemcpy(dcsrColInd, hcsrColInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
63 HIP_CHECK(hipMemcpy(dcsrVal, hcsrVal.data(), sizeof(float) * nnz, hipMemcpyHostToDevice));
64
65 int* dbsrRowPtr = nullptr;
66 HIP_CHECK(hipMalloc((void**)&dbsrRowPtr, sizeof(int) * (mb + 1)));
67
68 size_t bufferSize;
69 HIPSPARSE_CHECK(hipsparseScsr2gebsr_bufferSize(handle,
70 dir,
71 m,
72 n,
73 csr_descr,
74 dcsrVal,
75 dcsrRowPtr,
76 dcsrColInd,
77 rowBlockDim,
78 colBlockDim,
79 &bufferSize));
80
81 void* dbuffer = nullptr;
82 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
83
84 int nnzb;
85 HIPSPARSE_CHECK(hipsparseXcsr2gebsrNnz(handle,
86 dir,
87 m,
88 n,
89 csr_descr,
90 dcsrRowPtr,
91 dcsrColInd,
92 bsr_descr,
93 dbsrRowPtr,
94 rowBlockDim,
95 colBlockDim,
96 &nnzb,
97 dbuffer));
98
99 int* dbsrColInd = nullptr;
100 float* dbsrVal = nullptr;
101 HIP_CHECK(hipMalloc((void**)&dbsrColInd, sizeof(int) * nnzb));
102 HIP_CHECK(hipMalloc((void**)&dbsrVal, sizeof(float) * rowBlockDim * colBlockDim * nnzb));
103
104 HIPSPARSE_CHECK(hipsparseScsr2gebsr(handle,
105 dir,
106 m,
107 n,
108 csr_descr,
109 dcsrVal,
110 dcsrRowPtr,
111 dcsrColInd,
112 bsr_descr,
113 dbsrVal,
114 dbsrRowPtr,
115 dbsrColInd,
116 rowBlockDim,
117 colBlockDim,
118 dbuffer));
119
120 HIP_CHECK(hipFree(dcsrRowPtr));
121 HIP_CHECK(hipFree(dcsrColInd));
122 HIP_CHECK(hipFree(dcsrVal));
123
124 HIP_CHECK(hipFree(dbsrRowPtr));
125 HIP_CHECK(hipFree(dbsrColInd));
126 HIP_CHECK(hipFree(dbsrVal));
127
128 HIP_CHECK(hipFree(dbuffer));
129
130 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(csr_descr));
131 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(bsr_descr));
132 HIPSPARSE_CHECK(hipsparseDestroy(handle));
133
134 return 0;
135}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t csr_descr;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&csr_descr));
9
10 hipsparseMatDescr_t bsr_descr;
11 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&bsr_descr));
12
13 // Sparse matrix in CSR format
14 // 1 2 0 3 0 0
15 // 0 4 5 0 0 1
16 // A = 6 0 0 7 8 0
17 // 0 0 3 0 2 2
18 // 1 0 0 0 4 3
19 // 7 2 0 0 1 4
20 int hcsrRowPtr[7] = {0, 3, 6, 9, 12, 15, 19};
21 int hcsrColInd[19] = {0, 1, 3, 1, 2, 5, 0, 3, 4, 2, 4, 5, 0, 4, 5, 0, 1, 4, 5};
22 float hcsrVal[19] = {1.0,
23 2.0,
24 3.0,
25 4.0,
26 5.0,
27 1.0,
28 6.0,
29 7.0,
30 8.0,
31 3.0,
32 2.0,
33 2.0,
34 1.0,
35 4.0,
36 3.0,
37 7.0,
38 2.0,
39 1.0,
40 4.0};
41
42 int m = 6;
43 int n = 6;
44 int nnz = 19;
45 int rowBlockDim = 3;
46 int colBlockDim = 2;
47 hipsparseDirection_t dir = HIPSPARSE_DIRECTION_ROW;
48 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
49
50 int mb = (m + rowBlockDim - 1) / rowBlockDim;
51 int nb = (n + colBlockDim - 1) / colBlockDim;
52
53 int* dcsrRowPtr = NULL;
54 int* dcsrColInd = NULL;
55 float* dcsrVal = NULL;
56 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
57 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
58 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
59
60 HIP_CHECK(hipMemcpy(dcsrRowPtr, hcsrRowPtr, sizeof(int) * (m + 1), hipMemcpyHostToDevice));
61 HIP_CHECK(hipMemcpy(dcsrColInd, hcsrColInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
62 HIP_CHECK(hipMemcpy(dcsrVal, hcsrVal, sizeof(float) * nnz, hipMemcpyHostToDevice));
63
64 int* dbsrRowPtr = NULL;
65 HIP_CHECK(hipMalloc((void**)&dbsrRowPtr, sizeof(int) * (mb + 1)));
66
67 size_t bufferSize;
68 HIPSPARSE_CHECK(hipsparseScsr2gebsr_bufferSize(handle,
69 dir,
70 m,
71 n,
72 csr_descr,
73 dcsrVal,
74 dcsrRowPtr,
75 dcsrColInd,
76 rowBlockDim,
77 colBlockDim,
78 &bufferSize));
79
80 void* dbuffer = NULL;
81 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
82
83 int nnzb;
84 HIPSPARSE_CHECK(hipsparseXcsr2gebsrNnz(handle,
85 dir,
86 m,
87 n,
88 csr_descr,
89 dcsrRowPtr,
90 dcsrColInd,
91 bsr_descr,
92 dbsrRowPtr,
93 rowBlockDim,
94 colBlockDim,
95 &nnzb,
96 dbuffer));
97
98 int* dbsrColInd = NULL;
99 float* dbsrVal = NULL;
100 HIP_CHECK(hipMalloc((void**)&dbsrColInd, sizeof(int) * nnzb));
101 HIP_CHECK(hipMalloc((void**)&dbsrVal, sizeof(float) * rowBlockDim * colBlockDim * nnzb));
102
103 HIPSPARSE_CHECK(hipsparseScsr2gebsr(handle,
104 dir,
105 m,
106 n,
107 csr_descr,
108 dcsrVal,
109 dcsrRowPtr,
110 dcsrColInd,
111 bsr_descr,
112 dbsrVal,
113 dbsrRowPtr,
114 dbsrColInd,
115 rowBlockDim,
116 colBlockDim,
117 dbuffer));
118
119 HIP_CHECK(hipFree(dcsrRowPtr));
120 HIP_CHECK(hipFree(dcsrColInd));
121 HIP_CHECK(hipFree(dcsrVal));
122
123 HIP_CHECK(hipFree(dbsrRowPtr));
124 HIP_CHECK(hipFree(dbsrColInd));
125 HIP_CHECK(hipFree(dbsrVal));
126
127 HIP_CHECK(hipFree(dbuffer));
128
129 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(csr_descr));
130 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(bsr_descr));
131 HIPSPARSE_CHECK(hipsparseDestroy(handle));
132
133 return 0;
134}
hipsparseXcsr2gebsr()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t csr_descr;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&csr_descr));
9
10 hipsparseMatDescr_t bsr_descr;
11 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&bsr_descr));
12
13 // Sparse matrix in CSR format
14 // 1 2 0 3 0 0
15 // 0 4 5 0 0 1
16 // A = 6 0 0 7 8 0
17 // 0 0 3 0 2 2
18 // 1 0 0 0 4 3
19 // 7 2 0 0 1 4
20 std::vector<int> hcsrRowPtr = {0, 3, 6, 9, 12, 15, 19};
21 std::vector<int> hcsrColInd = {0, 1, 3, 1, 2, 5, 0, 3, 4, 2, 4, 5, 0, 4, 5, 0, 1, 4, 5};
22 std::vector<float> hcsrVal = {1.0f,
23 2.0f,
24 3.0f,
25 4.0f,
26 5.0f,
27 1.0f,
28 6.0f,
29 7.0f,
30 8.0f,
31 3.0f,
32 2.0f,
33 2.0f,
34 1.0f,
35 4.0f,
36 3.0f,
37 7.0f,
38 2.0f,
39 1.0f,
40 4.0f};
41
42 int m = 6;
43 int n = 6;
44 int nnz = 19;
45 int rowBlockDim = 3;
46 int colBlockDim = 2;
47 hipsparseDirection_t dir = HIPSPARSE_DIRECTION_ROW;
48 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
49
50 int mb = (m + rowBlockDim - 1) / rowBlockDim;
51 int nb = (n + colBlockDim - 1) / colBlockDim;
52
53 int* dcsrRowPtr = nullptr;
54 int* dcsrColInd = nullptr;
55 float* dcsrVal = nullptr;
56 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
57 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
58 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
59
60 HIP_CHECK(
61 hipMemcpy(dcsrRowPtr, hcsrRowPtr.data(), sizeof(int) * (m + 1), hipMemcpyHostToDevice));
62 HIP_CHECK(hipMemcpy(dcsrColInd, hcsrColInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
63 HIP_CHECK(hipMemcpy(dcsrVal, hcsrVal.data(), sizeof(float) * nnz, hipMemcpyHostToDevice));
64
65 int* dbsrRowPtr = nullptr;
66 HIP_CHECK(hipMalloc((void**)&dbsrRowPtr, sizeof(int) * (mb + 1)));
67
68 size_t bufferSize;
69 HIPSPARSE_CHECK(hipsparseScsr2gebsr_bufferSize(handle,
70 dir,
71 m,
72 n,
73 csr_descr,
74 dcsrVal,
75 dcsrRowPtr,
76 dcsrColInd,
77 rowBlockDim,
78 colBlockDim,
79 &bufferSize));
80
81 void* dbuffer = nullptr;
82 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
83
84 int nnzb;
85 HIPSPARSE_CHECK(hipsparseXcsr2gebsrNnz(handle,
86 dir,
87 m,
88 n,
89 csr_descr,
90 dcsrRowPtr,
91 dcsrColInd,
92 bsr_descr,
93 dbsrRowPtr,
94 rowBlockDim,
95 colBlockDim,
96 &nnzb,
97 dbuffer));
98
99 int* dbsrColInd = nullptr;
100 float* dbsrVal = nullptr;
101 HIP_CHECK(hipMalloc((void**)&dbsrColInd, sizeof(int) * nnzb));
102 HIP_CHECK(hipMalloc((void**)&dbsrVal, sizeof(float) * rowBlockDim * colBlockDim * nnzb));
103
104 HIPSPARSE_CHECK(hipsparseScsr2gebsr(handle,
105 dir,
106 m,
107 n,
108 csr_descr,
109 dcsrVal,
110 dcsrRowPtr,
111 dcsrColInd,
112 bsr_descr,
113 dbsrVal,
114 dbsrRowPtr,
115 dbsrColInd,
116 rowBlockDim,
117 colBlockDim,
118 dbuffer));
119
120 HIP_CHECK(hipFree(dcsrRowPtr));
121 HIP_CHECK(hipFree(dcsrColInd));
122 HIP_CHECK(hipFree(dcsrVal));
123
124 HIP_CHECK(hipFree(dbsrRowPtr));
125 HIP_CHECK(hipFree(dbsrColInd));
126 HIP_CHECK(hipFree(dbsrVal));
127
128 HIP_CHECK(hipFree(dbuffer));
129
130 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(csr_descr));
131 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(bsr_descr));
132 HIPSPARSE_CHECK(hipsparseDestroy(handle));
133
134 return 0;
135}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t csr_descr;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&csr_descr));
9
10 hipsparseMatDescr_t bsr_descr;
11 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&bsr_descr));
12
13 // Sparse matrix in CSR format
14 // 1 2 0 3 0 0
15 // 0 4 5 0 0 1
16 // A = 6 0 0 7 8 0
17 // 0 0 3 0 2 2
18 // 1 0 0 0 4 3
19 // 7 2 0 0 1 4
20 int hcsrRowPtr[7] = {0, 3, 6, 9, 12, 15, 19};
21 int hcsrColInd[19] = {0, 1, 3, 1, 2, 5, 0, 3, 4, 2, 4, 5, 0, 4, 5, 0, 1, 4, 5};
22 float hcsrVal[19] = {1.0,
23 2.0,
24 3.0,
25 4.0,
26 5.0,
27 1.0,
28 6.0,
29 7.0,
30 8.0,
31 3.0,
32 2.0,
33 2.0,
34 1.0,
35 4.0,
36 3.0,
37 7.0,
38 2.0,
39 1.0,
40 4.0};
41
42 int m = 6;
43 int n = 6;
44 int nnz = 19;
45 int rowBlockDim = 3;
46 int colBlockDim = 2;
47 hipsparseDirection_t dir = HIPSPARSE_DIRECTION_ROW;
48 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
49
50 int mb = (m + rowBlockDim - 1) / rowBlockDim;
51 int nb = (n + colBlockDim - 1) / colBlockDim;
52
53 int* dcsrRowPtr = NULL;
54 int* dcsrColInd = NULL;
55 float* dcsrVal = NULL;
56 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
57 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
58 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
59
60 HIP_CHECK(hipMemcpy(dcsrRowPtr, hcsrRowPtr, sizeof(int) * (m + 1), hipMemcpyHostToDevice));
61 HIP_CHECK(hipMemcpy(dcsrColInd, hcsrColInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
62 HIP_CHECK(hipMemcpy(dcsrVal, hcsrVal, sizeof(float) * nnz, hipMemcpyHostToDevice));
63
64 int* dbsrRowPtr = NULL;
65 HIP_CHECK(hipMalloc((void**)&dbsrRowPtr, sizeof(int) * (mb + 1)));
66
67 size_t bufferSize;
68 HIPSPARSE_CHECK(hipsparseScsr2gebsr_bufferSize(handle,
69 dir,
70 m,
71 n,
72 csr_descr,
73 dcsrVal,
74 dcsrRowPtr,
75 dcsrColInd,
76 rowBlockDim,
77 colBlockDim,
78 &bufferSize));
79
80 void* dbuffer = NULL;
81 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
82
83 int nnzb;
84 HIPSPARSE_CHECK(hipsparseXcsr2gebsrNnz(handle,
85 dir,
86 m,
87 n,
88 csr_descr,
89 dcsrRowPtr,
90 dcsrColInd,
91 bsr_descr,
92 dbsrRowPtr,
93 rowBlockDim,
94 colBlockDim,
95 &nnzb,
96 dbuffer));
97
98 int* dbsrColInd = NULL;
99 float* dbsrVal = NULL;
100 HIP_CHECK(hipMalloc((void**)&dbsrColInd, sizeof(int) * nnzb));
101 HIP_CHECK(hipMalloc((void**)&dbsrVal, sizeof(float) * rowBlockDim * colBlockDim * nnzb));
102
103 HIPSPARSE_CHECK(hipsparseScsr2gebsr(handle,
104 dir,
105 m,
106 n,
107 csr_descr,
108 dcsrVal,
109 dcsrRowPtr,
110 dcsrColInd,
111 bsr_descr,
112 dbsrVal,
113 dbsrRowPtr,
114 dbsrColInd,
115 rowBlockDim,
116 colBlockDim,
117 dbuffer));
118
119 HIP_CHECK(hipFree(dcsrRowPtr));
120 HIP_CHECK(hipFree(dcsrColInd));
121 HIP_CHECK(hipFree(dcsrVal));
122
123 HIP_CHECK(hipFree(dbsrRowPtr));
124 HIP_CHECK(hipFree(dbsrColInd));
125 HIP_CHECK(hipFree(dbsrVal));
126
127 HIP_CHECK(hipFree(dbuffer));
128
129 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(csr_descr));
130 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(bsr_descr));
131 HIPSPARSE_CHECK(hipsparseDestroy(handle));
132
133 return 0;
134}
hipsparseXbsr2csr()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t csr_descr;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&csr_descr));
9
10 hipsparseMatDescr_t bsr_descr;
11 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&bsr_descr));
12
13 // Sparse matrix in BSR format
14 // 1 2 | 0 3 | 0 0
15 // 0 4 | 5 0 | 0 1
16 // ---------------
17 // A = 6 0 | 0 7 | 8 0
18 // 0 0 | 3 0 | 2 2
19 // ---------------
20 // 1 0 | 0 0 | 4 3
21 // 7 2 | 0 0 | 1 4
22 std::vector<int> hbsrRowPtr = {0, 3, 6, 8};
23 std::vector<int> hbsrColInd = {0, 1, 2, 0, 1, 2, 0, 2};
24 std::vector<float> hbsrVal = {1.0f, 2.0f, 0.0f, 4.0f, 0.0f, 3.0f, 5.0f, 0.0f, 0.0f, 0.0f, 0.0f,
25 1.0f, 6.0f, 0.0f, 0.0f, 0.0f, 0.0f, 7.0f, 3.0f, 0.0f, 8.0f, 0.0f,
26 2.0f, 2.0f, 1.0f, 0.0f, 7.0f, 2.0f, 4.0f, 3.0f, 1.0f, 4.0f};
27
28 int m = 6;
29 int n = 6;
30 int nnz = 32;
31 int mb = 3;
32 int nb = 3;
33 int nnzb = 8;
34 int blockDim = 2;
35 hipsparseDirection_t dir = HIPSPARSE_DIRECTION_ROW;
36
37 int* dbsrRowPtr = nullptr;
38 int* dbsrColInd = nullptr;
39 float* dbsrVal = nullptr;
40 HIP_CHECK(hipMalloc((void**)&dbsrRowPtr, sizeof(int) * (mb + 1)));
41 HIP_CHECK(hipMalloc((void**)&dbsrColInd, sizeof(int) * nnzb));
42 HIP_CHECK(hipMalloc((void**)&dbsrVal, sizeof(float) * blockDim * blockDim * nnzb));
43
44 HIP_CHECK(
45 hipMemcpy(dbsrRowPtr, hbsrRowPtr.data(), sizeof(int) * (mb + 1), hipMemcpyHostToDevice));
46 HIP_CHECK(hipMemcpy(dbsrColInd, hbsrColInd.data(), sizeof(int) * nnzb, hipMemcpyHostToDevice));
47 HIP_CHECK(hipMemcpy(dbsrVal,
48 hbsrVal.data(),
49 sizeof(float) * blockDim * blockDim * nnzb,
50 hipMemcpyHostToDevice));
51
52 int* dcsrRowPtr = nullptr;
53 int* dcsrColInd = nullptr;
54 float* dcsrVal = nullptr;
55 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
56 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
57 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
58
59 HIPSPARSE_CHECK(hipsparseSbsr2csr(handle,
60 dir,
61 mb,
62 nb,
63 bsr_descr,
64 dbsrVal,
65 dbsrRowPtr,
66 dbsrColInd,
67 blockDim,
68 csr_descr,
69 dcsrVal,
70 dcsrRowPtr,
71 dcsrColInd));
72
73 std::vector<int> hcsrRowPtr(m + 1);
74 std::vector<int> hcsrColInd(nnz);
75 std::vector<float> hcsrVal(nnz);
76
77 // Copy back to the host
78 HIP_CHECK(
79 hipMemcpy(hcsrRowPtr.data(), dcsrRowPtr, sizeof(int) * (m + 1), hipMemcpyDeviceToHost));
80 HIP_CHECK(hipMemcpy(hcsrColInd.data(), dcsrColInd, sizeof(int) * nnz, hipMemcpyDeviceToHost));
81 HIP_CHECK(hipMemcpy(hcsrVal.data(), dcsrVal, sizeof(float) * nnz, hipMemcpyDeviceToHost));
82
83 std::cout << "C" << std::endl;
84 for(int i = 0; i < m; i++)
85 {
86 int start = hcsrRowPtr[i];
87 int end = hcsrRowPtr[i + 1];
88
89 std::vector<float> temp(n, 0.0f);
90 for(int j = start; j < end; j++)
91 {
92 temp[hcsrColInd[j]] = hcsrVal[j];
93 }
94
95 for(int j = 0; j < n; j++)
96 {
97 std::cout << temp[j] << " ";
98 }
99 std::cout << std::endl;
100 }
101 std::cout << std::endl;
102
103 HIP_CHECK(hipFree(dbsrRowPtr));
104 HIP_CHECK(hipFree(dbsrColInd));
105 HIP_CHECK(hipFree(dbsrVal));
106
107 HIP_CHECK(hipFree(dcsrRowPtr));
108 HIP_CHECK(hipFree(dcsrColInd));
109 HIP_CHECK(hipFree(dcsrVal));
110
111 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(csr_descr));
112 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(bsr_descr));
113 HIPSPARSE_CHECK(hipsparseDestroy(handle));
114
115 return 0;
116}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t csr_descr;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&csr_descr));
9
10 hipsparseMatDescr_t bsr_descr;
11 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&bsr_descr));
12
13 // Sparse matrix in BSR format
14 // 1 2 | 0 3 | 0 0
15 // 0 4 | 5 0 | 0 1
16 // ---------------
17 // A = 6 0 | 0 7 | 8 0
18 // 0 0 | 3 0 | 2 2
19 // ---------------
20 // 1 0 | 0 0 | 4 3
21 // 7 2 | 0 0 | 1 4
22 int hbsrRowPtr[4] = {0, 3, 6, 8};
23 int hbsrColInd[8] = {0, 1, 2, 0, 1, 2, 0, 2};
24 float hbsrVal[32]
25 = {1.0, 2.0, 0.0, 4.0, 0.0, 3.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 6.0, 0.0, 0.0, 0.0,
26 0.0, 7.0, 3.0, 0.0, 8.0, 0.0, 2.0, 2.0, 1.0, 0.0, 7.0, 2.0, 4.0, 3.0, 1.0, 4.0};
27
28 int m = 6;
29 int n = 6;
30 int nnz = 32;
31 int mb = 3;
32 int nb = 3;
33 int nnzb = 8;
34 int blockDim = 2;
35 hipsparseDirection_t dir = HIPSPARSE_DIRECTION_ROW;
36
37 int* dbsrRowPtr = NULL;
38 int* dbsrColInd = NULL;
39 float* dbsrVal = NULL;
40 HIP_CHECK(hipMalloc((void**)&dbsrRowPtr, sizeof(int) * (mb + 1)));
41 HIP_CHECK(hipMalloc((void**)&dbsrColInd, sizeof(int) * nnzb));
42 HIP_CHECK(hipMalloc((void**)&dbsrVal, sizeof(float) * blockDim * blockDim * nnzb));
43
44 HIP_CHECK(hipMemcpy(dbsrRowPtr, hbsrRowPtr, sizeof(int) * (mb + 1), hipMemcpyHostToDevice));
45 HIP_CHECK(hipMemcpy(dbsrColInd, hbsrColInd, sizeof(int) * nnzb, hipMemcpyHostToDevice));
46 HIP_CHECK(hipMemcpy(
47 dbsrVal, hbsrVal, sizeof(float) * blockDim * blockDim * nnzb, hipMemcpyHostToDevice));
48
49 int* dcsrRowPtr = NULL;
50 int* dcsrColInd = NULL;
51 float* dcsrVal = NULL;
52 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
53 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
54 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
55
56 HIPSPARSE_CHECK(hipsparseSbsr2csr(handle,
57 dir,
58 mb,
59 nb,
60 bsr_descr,
61 dbsrVal,
62 dbsrRowPtr,
63 dbsrColInd,
64 blockDim,
65 csr_descr,
66 dcsrVal,
67 dcsrRowPtr,
68 dcsrColInd));
69
70 int* hcsrRowPtr = (int*)malloc((m + 1) * sizeof(int));
71 int* hcsrColInd = (int*)malloc((nnz) * sizeof(int));
72 float hcsrVal[nnz];
73
74 // Copy back to the host
75 HIP_CHECK(hipMemcpy(hcsrRowPtr, dcsrRowPtr, sizeof(int) * (m + 1), hipMemcpyDeviceToHost));
76 HIP_CHECK(hipMemcpy(hcsrColInd, dcsrColInd, sizeof(int) * nnz, hipMemcpyDeviceToHost));
77 HIP_CHECK(hipMemcpy(hcsrVal, dcsrVal, sizeof(float) * nnz, hipMemcpyDeviceToHost));
78
79 printf("C\n");
80 for(int i = 0; i < m; i++)
81 {
82 int start = hcsrRowPtr[i];
83 int end = hcsrRowPtr[i + 1];
84
85 float* temp = (float*)malloc(n * sizeof(float));
86 for(int j = start; j < end; j++)
87 {
88 temp[hcsrColInd[j]] = hcsrVal[j];
89 }
90
91 for(int j = 0; j < n; j++)
92 {
93 printf("%f ", temp[j]);
94 }
95 printf("\n");
96 free(temp);
97 }
98 printf("\n");
99
100 HIP_CHECK(hipFree(dbsrRowPtr));
101 HIP_CHECK(hipFree(dbsrColInd));
102 HIP_CHECK(hipFree(dbsrVal));
103
104 HIP_CHECK(hipFree(dcsrRowPtr));
105 HIP_CHECK(hipFree(dcsrColInd));
106 HIP_CHECK(hipFree(dcsrVal));
107
108 free(hcsrRowPtr);
109 free(hcsrColInd);
110
111 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(csr_descr));
112 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(bsr_descr));
113 HIPSPARSE_CHECK(hipsparseDestroy(handle));
114
115 return 0;
116}
hipsparseXgebsr2csr()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t csr_descr;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&csr_descr));
9
10 hipsparseMatDescr_t bsr_descr;
11 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&bsr_descr));
12
13 // Sparse matrix in GEBSR format
14 // 1 2 | 0 3 | 0 0
15 // 0 4 | 5 0 | 0 1
16 // A = 6 0 | 0 7 | 8 0
17 // ---------------
18 // 0 0 | 3 0 | 2 2
19 // 1 0 | 0 0 | 4 3
20 // 7 2 | 0 0 | 1 4
21 std::vector<int> hbsrRowPtr = {0, 3, 6};
22 std::vector<int> hbsrColInd = {0, 1, 2, 0, 1, 2};
23 std::vector<float> hbsrVal
24 = {1.0f, 2.0f, 0.0f, 4.0f, 6.0f, 0.0f, 0.0f, 3.0f, 5.0f, 0.0f, 0.0f, 7.0f,
25 0.0f, 0.0f, 0.0f, 1.0f, 8.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 7.0f, 2.0f,
26 3.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f, 2.0f, 4.0f, 3.0f, 1.0f, 4.0f};
27
28 int m = 6;
29 int n = 6;
30 int nnz = 36;
31 int mb = 2;
32 int nb = 3;
33 int nnzb = 6;
34 int rowBlockDim = 3;
35 int colBlockDim = 2;
36 hipsparseDirection_t dir = HIPSPARSE_DIRECTION_ROW;
37
38 int* dbsrRowPtr = nullptr;
39 int* dbsrColInd = nullptr;
40 float* dbsrVal = nullptr;
41 HIP_CHECK(hipMalloc((void**)&dbsrRowPtr, sizeof(int) * (mb + 1)));
42 HIP_CHECK(hipMalloc((void**)&dbsrColInd, sizeof(int) * nnzb));
43 HIP_CHECK(hipMalloc((void**)&dbsrVal, sizeof(float) * rowBlockDim * colBlockDim * nnzb));
44
45 HIP_CHECK(
46 hipMemcpy(dbsrRowPtr, hbsrRowPtr.data(), sizeof(int) * (mb + 1), hipMemcpyHostToDevice));
47 HIP_CHECK(hipMemcpy(dbsrColInd, hbsrColInd.data(), sizeof(int) * nnzb, hipMemcpyHostToDevice));
48 HIP_CHECK(hipMemcpy(dbsrVal,
49 hbsrVal.data(),
50 sizeof(float) * rowBlockDim * colBlockDim * nnzb,
51 hipMemcpyHostToDevice));
52
53 int* dcsrRowPtr = nullptr;
54 int* dcsrColInd = nullptr;
55 float* dcsrVal = nullptr;
56 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
57 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
58 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
59
60 HIPSPARSE_CHECK(hipsparseSgebsr2csr(handle,
61 dir,
62 mb,
63 nb,
64 bsr_descr,
65 dbsrVal,
66 dbsrRowPtr,
67 dbsrColInd,
68 rowBlockDim,
69 colBlockDim,
70 csr_descr,
71 dcsrVal,
72 dcsrRowPtr,
73 dcsrColInd));
74
75 HIP_CHECK(hipFree(dbsrRowPtr));
76 HIP_CHECK(hipFree(dbsrColInd));
77 HIP_CHECK(hipFree(dbsrVal));
78
79 HIP_CHECK(hipFree(dcsrRowPtr));
80 HIP_CHECK(hipFree(dcsrColInd));
81 HIP_CHECK(hipFree(dcsrVal));
82
83 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(csr_descr));
84 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(bsr_descr));
85 HIPSPARSE_CHECK(hipsparseDestroy(handle));
86
87 return 0;
88}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t csr_descr;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&csr_descr));
9
10 hipsparseMatDescr_t bsr_descr;
11 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&bsr_descr));
12
13 // Sparse matrix in GEBSR format
14 // 1 2 | 0 3 | 0 0
15 // 0 4 | 5 0 | 0 1
16 // A = 6 0 | 0 7 | 8 0
17 // ---------------
18 // 0 0 | 3 0 | 2 2
19 // 1 0 | 0 0 | 4 3
20 // 7 2 | 0 0 | 1 4
21 int hbsrRowPtr[3] = {0, 3, 6};
22 int hbsrColInd[6] = {0, 1, 2, 0, 1, 2};
23 float hbsrVal[36] = {1.0, 2.0, 0.0, 4.0, 6.0, 0.0, 0.0, 3.0, 5.0, 0.0, 0.0, 7.0,
24 0.0, 0.0, 0.0, 1.0, 8.0, 0.0, 0.0, 0.0, 1.0, 0.0, 7.0, 2.0,
25 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 3.0, 1.0, 4.0};
26
27 int m = 6;
28 int n = 6;
29 int nnz = 36;
30 int mb = 2;
31 int nb = 3;
32 int nnzb = 6;
33 int rowBlockDim = 3;
34 int colBlockDim = 2;
35 hipsparseDirection_t dir = HIPSPARSE_DIRECTION_ROW;
36
37 int* dbsrRowPtr = NULL;
38 int* dbsrColInd = NULL;
39 float* dbsrVal = NULL;
40 HIP_CHECK(hipMalloc((void**)&dbsrRowPtr, sizeof(int) * (mb + 1)));
41 HIP_CHECK(hipMalloc((void**)&dbsrColInd, sizeof(int) * nnzb));
42 HIP_CHECK(hipMalloc((void**)&dbsrVal, sizeof(float) * rowBlockDim * colBlockDim * nnzb));
43
44 HIP_CHECK(hipMemcpy(dbsrRowPtr, hbsrRowPtr, sizeof(int) * (mb + 1), hipMemcpyHostToDevice));
45 HIP_CHECK(hipMemcpy(dbsrColInd, hbsrColInd, sizeof(int) * nnzb, hipMemcpyHostToDevice));
46 HIP_CHECK(hipMemcpy(
47 dbsrVal, hbsrVal, sizeof(float) * rowBlockDim * colBlockDim * nnzb, hipMemcpyHostToDevice));
48
49 int* dcsrRowPtr = NULL;
50 int* dcsrColInd = NULL;
51 float* dcsrVal = NULL;
52 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
53 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
54 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
55
56 HIPSPARSE_CHECK(hipsparseSgebsr2csr(handle,
57 dir,
58 mb,
59 nb,
60 bsr_descr,
61 dbsrVal,
62 dbsrRowPtr,
63 dbsrColInd,
64 rowBlockDim,
65 colBlockDim,
66 csr_descr,
67 dcsrVal,
68 dcsrRowPtr,
69 dcsrColInd));
70
71 HIP_CHECK(hipFree(dbsrRowPtr));
72 HIP_CHECK(hipFree(dbsrColInd));
73 HIP_CHECK(hipFree(dbsrVal));
74
75 HIP_CHECK(hipFree(dcsrRowPtr));
76 HIP_CHECK(hipFree(dcsrColInd));
77 HIP_CHECK(hipFree(dcsrVal));
78
79 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(csr_descr));
80 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(bsr_descr));
81 HIPSPARSE_CHECK(hipsparseDestroy(handle));
82
83 return 0;
84}
hipsparseXcsr2csr_compress()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Matrix descriptor
8 hipsparseMatDescr_t descr;
9 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
10
11 // Sparse matrix in CSR format
12 // 1 2 0 3 0
13 // A = 0 4 5 0 0
14 // 6 0 0 7 8
15 std::vector<int> hcsrRowPtrA = {0, 3, 5, 8};
16 std::vector<int> hcsrColIndA = {0, 1, 3, 1, 2, 0, 3, 4};
17 std::vector<float> hcsrValA = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f};
18
19 int m = 3;
20 int n = 5;
21 int nnzA = 8;
22
23 float tol = 5.9f;
24
25 int* dcsrRowPtrA = nullptr;
26 int* dcsrColIndA = nullptr;
27 float* dcsrValA = nullptr;
28 HIP_CHECK(hipMalloc((void**)&dcsrRowPtrA, sizeof(int) * (m + 1)));
29 HIP_CHECK(hipMalloc((void**)&dcsrColIndA, sizeof(int) * nnzA));
30 HIP_CHECK(hipMalloc((void**)&dcsrValA, sizeof(float) * nnzA));
31
32 HIP_CHECK(
33 hipMemcpy(dcsrRowPtrA, hcsrRowPtrA.data(), sizeof(int) * (m + 1), hipMemcpyHostToDevice));
34 HIP_CHECK(
35 hipMemcpy(dcsrColIndA, hcsrColIndA.data(), sizeof(int) * nnzA, hipMemcpyHostToDevice));
36 HIP_CHECK(hipMemcpy(dcsrValA, hcsrValA.data(), sizeof(float) * nnzA, hipMemcpyHostToDevice));
37
38 // Allocate memory for the nnz_per_row array
39 int* dnnz_per_row;
40 HIP_CHECK(hipMalloc((void**)&dnnz_per_row, sizeof(int) * m));
41
42 // Call snnz_compress() which fills in nnz_per_row array and finds the number
43 // of entries that will be in the compressed CSR matrix
44 int nnzC;
45 HIPSPARSE_CHECK(
46 hipsparseSnnz_compress(handle, m, descr, dcsrValA, dcsrRowPtrA, dnnz_per_row, &nnzC, tol));
47
48 int* dcsrRowPtrC = nullptr;
49 int* dcsrColIndC = nullptr;
50 float* dcsrValC = nullptr;
51 HIP_CHECK(hipMalloc((void**)&dcsrRowPtrC, sizeof(int) * (m + 1)));
52 HIP_CHECK(hipMalloc((void**)&dcsrColIndC, sizeof(int) * nnzC));
53 HIP_CHECK(hipMalloc((void**)&dcsrValC, sizeof(float) * nnzC));
54
55 HIPSPARSE_CHECK(hipsparseScsr2csr_compress(handle,
56 m,
57 n,
58 descr,
59 dcsrValA,
60 dcsrColIndA,
61 dcsrRowPtrA,
62 nnzA,
63 dnnz_per_row,
64 dcsrValC,
65 dcsrColIndC,
66 dcsrRowPtrC,
67 tol));
68
69 HIP_CHECK(hipFree(dcsrRowPtrA));
70 HIP_CHECK(hipFree(dcsrColIndA));
71 HIP_CHECK(hipFree(dcsrValA));
72
73 HIP_CHECK(hipFree(dcsrRowPtrC));
74 HIP_CHECK(hipFree(dcsrColIndC));
75 HIP_CHECK(hipFree(dcsrValC));
76
77 HIP_CHECK(hipFree(dnnz_per_row));
78
79 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
80 HIPSPARSE_CHECK(hipsparseDestroy(handle));
81
82 return 0;
83}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Matrix descriptor
8 hipsparseMatDescr_t descr;
9 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
10
11 // Sparse matrix in CSR format
12 // 1 2 0 3 0
13 // A = 0 4 5 0 0
14 // 6 0 0 7 8
15 int hcsrRowPtrA[4] = {0, 3, 5, 8};
16 int hcsrColIndA[8] = {0, 1, 3, 1, 2, 0, 3, 4};
17 float hcsrValA[8] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0};
18
19 int m = 3;
20 int n = 5;
21 int nnzA = 8;
22
23 float tol = 5.9;
24
25 int* dcsrRowPtrA = NULL;
26 int* dcsrColIndA = NULL;
27 float* dcsrValA = NULL;
28 HIP_CHECK(hipMalloc((void**)&dcsrRowPtrA, sizeof(int) * (m + 1)));
29 HIP_CHECK(hipMalloc((void**)&dcsrColIndA, sizeof(int) * nnzA));
30 HIP_CHECK(hipMalloc((void**)&dcsrValA, sizeof(float) * nnzA));
31
32 HIP_CHECK(hipMemcpy(dcsrRowPtrA, hcsrRowPtrA, sizeof(int) * (m + 1), hipMemcpyHostToDevice));
33 HIP_CHECK(hipMemcpy(dcsrColIndA, hcsrColIndA, sizeof(int) * nnzA, hipMemcpyHostToDevice));
34 HIP_CHECK(hipMemcpy(dcsrValA, hcsrValA, sizeof(float) * nnzA, hipMemcpyHostToDevice));
35
36 // Allocate memory for the nnz_per_row array
37 int* dnnz_per_row;
38 HIP_CHECK(hipMalloc((void**)&dnnz_per_row, sizeof(int) * m));
39
40 // Call snnz_compress() which fills in nnz_per_row array and finds the number
41 // of entries that will be in the compressed CSR matrix
42 int nnzC;
43 HIPSPARSE_CHECK(
44 hipsparseSnnz_compress(handle, m, descr, dcsrValA, dcsrRowPtrA, dnnz_per_row, &nnzC, tol));
45
46 int* dcsrRowPtrC = NULL;
47 int* dcsrColIndC = NULL;
48 float* dcsrValC = NULL;
49 HIP_CHECK(hipMalloc((void**)&dcsrRowPtrC, sizeof(int) * (m + 1)));
50 HIP_CHECK(hipMalloc((void**)&dcsrColIndC, sizeof(int) * nnzC));
51 HIP_CHECK(hipMalloc((void**)&dcsrValC, sizeof(float) * nnzC));
52
53 HIPSPARSE_CHECK(hipsparseScsr2csr_compress(handle,
54 m,
55 n,
56 descr,
57 dcsrValA,
58 dcsrColIndA,
59 dcsrRowPtrA,
60 nnzA,
61 dnnz_per_row,
62 dcsrValC,
63 dcsrColIndC,
64 dcsrRowPtrC,
65 tol));
66
67 HIP_CHECK(hipFree(dcsrRowPtrA));
68 HIP_CHECK(hipFree(dcsrColIndA));
69 HIP_CHECK(hipFree(dcsrValA));
70
71 HIP_CHECK(hipFree(dcsrRowPtrC));
72 HIP_CHECK(hipFree(dcsrColIndC));
73 HIP_CHECK(hipFree(dcsrValC));
74
75 HIP_CHECK(hipFree(dnnz_per_row));
76
77 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
78 HIPSPARSE_CHECK(hipsparseDestroy(handle));
79
80 return 0;
81}
hipsparseXpruneCsr2csr_bufferSize()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXpruneCsr2csr_bufferSizeExt()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXpruneCsr2csrNnz()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXpruneCsr2csr()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXpruneCsr2csrByPercentage_bufferSize()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXpruneCsr2csrByPercentage_bufferSizeExt()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXpruneCsr2csrNnzByPercentage()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXpruneCsr2csrByPercentage()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXhyb2csr()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXcoo2csr()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Sparse matrix in COO format
8 // 1 2 0 3 0
9 // A = 0 4 5 0 0
10 // 6 0 0 7 8
11 std::vector<int> hcooRowInd = {0, 0, 0, 1, 1, 2, 2, 2};
12 std::vector<int> hcooColInd = {0, 1, 3, 1, 2, 0, 3, 4};
13 std::vector<float> hcooVal = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f};
14
15 int m = 3;
16 int n = 5;
17 int nnz = 8;
18 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
19
20 int* dcooRowInd = nullptr;
21 int* dcooColInd = nullptr;
22 HIP_CHECK(hipMalloc((void**)&dcooRowInd, sizeof(int) * nnz));
23 HIP_CHECK(hipMalloc((void**)&dcooColInd, sizeof(int) * nnz));
24
25 HIP_CHECK(hipMemcpy(dcooRowInd, hcooRowInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
26 HIP_CHECK(hipMemcpy(dcooColInd, hcooColInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
27
28 int* dcsrRowPtr = nullptr;
29 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
30
31 HIPSPARSE_CHECK(hipsparseXcoo2csr(handle, dcooRowInd, nnz, m, dcsrRowPtr, base));
32
33 HIP_CHECK(hipFree(dcooRowInd));
34 HIP_CHECK(hipFree(dcooColInd));
35
36 HIP_CHECK(hipFree(dcsrRowPtr));
37
38 HIPSPARSE_CHECK(hipsparseDestroy(handle));
39
40 return 0;
41}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Sparse matrix in COO format
8 // 1 2 0 3 0
9 // A = 0 4 5 0 0
10 // 6 0 0 7 8
11 int hcooRowInd[8] = {0, 0, 0, 1, 1, 2, 2, 2};
12 int hcooColInd[8] = {0, 1, 3, 1, 2, 0, 3, 4};
13 float hcooVal[8] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0};
14
15 int m = 3;
16 int n = 5;
17 int nnz = 8;
18 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
19
20 int* dcooRowInd = NULL;
21 int* dcooColInd = NULL;
22 HIP_CHECK(hipMalloc((void**)&dcooRowInd, sizeof(int) * nnz));
23 HIP_CHECK(hipMalloc((void**)&dcooColInd, sizeof(int) * nnz));
24
25 HIP_CHECK(hipMemcpy(dcooRowInd, hcooRowInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
26 HIP_CHECK(hipMemcpy(dcooColInd, hcooColInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
27
28 int* dcsrRowPtr = NULL;
29 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
30
31 HIPSPARSE_CHECK(hipsparseXcoo2csr(handle, dcooRowInd, nnz, m, dcsrRowPtr, base));
32
33 HIP_CHECK(hipFree(dcooRowInd));
34 HIP_CHECK(hipFree(dcooColInd));
35
36 HIP_CHECK(hipFree(dcsrRowPtr));
37
38 HIPSPARSE_CHECK(hipsparseDestroy(handle));
39
40 return 0;
41}
hipsparseCreateIdentityPermutation()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 int n = 10;
8
9 int* dperm = nullptr;
10 HIP_CHECK(hipMalloc((void**)&dperm, sizeof(int) * n));
11
12 HIPSPARSE_CHECK(hipsparseCreateIdentityPermutation(handle, n, dperm));
13
14 HIPSPARSE_CHECK(hipsparseDestroy(handle));
15
16 return 0;
17}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 int n = 10;
8
9 int* dperm = NULL;
10 HIP_CHECK(hipMalloc((void**)&dperm, sizeof(int) * n));
11
12 HIPSPARSE_CHECK(hipsparseCreateIdentityPermutation(handle, n, dperm));
13
14 HIPSPARSE_CHECK(hipsparseDestroy(handle));
15
16 return 0;
17}
hipsparseXcsrsort_bufferSizeExt()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t descr;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
9
10 // Sparse matrix in CSR format (columns unsorted)
11 // 1 2 0 3 0
12 // A = 0 4 5 0 0
13 // 6 0 0 7 8
14 std::vector<int> hcsrRowPtr = {0, 3, 5, 8};
15 std::vector<int> hcsrColInd = {3, 1, 0, 2, 1, 0, 4, 3};
16 std::vector<float> hcsrVal = {3.0f, 2.0f, 1.0f, 5.0f, 4.0f, 6.0f, 8.0f, 7.0f};
17
18 int m = 3;
19 int n = 5;
20 int nnz = 8;
21
22 int* dcsrRowPtr = nullptr;
23 int* dcsrColInd = nullptr;
24 float* dcsrVal = nullptr;
25 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
26 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
27 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
28
29 HIP_CHECK(
30 hipMemcpy(dcsrRowPtr, hcsrRowPtr.data(), sizeof(int) * (m + 1), hipMemcpyHostToDevice));
31 HIP_CHECK(hipMemcpy(dcsrColInd, hcsrColInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
32 HIP_CHECK(hipMemcpy(dcsrVal, hcsrVal.data(), sizeof(float) * nnz, hipMemcpyHostToDevice));
33
34 size_t bufferSize;
35 HIPSPARSE_CHECK(
36 hipsparseXcsrsort_bufferSizeExt(handle, m, n, nnz, dcsrRowPtr, dcsrColInd, &bufferSize));
37
38 void* dbuffer = nullptr;
39 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
40
41 int* dperm = nullptr;
42 HIP_CHECK(hipMalloc((void**)&dperm, sizeof(int) * nnz));
43 HIPSPARSE_CHECK(hipsparseCreateIdentityPermutation(handle, nnz, dperm));
44
45 HIPSPARSE_CHECK(
46 hipsparseXcsrsort(handle, m, n, nnz, descr, dcsrRowPtr, dcsrColInd, dperm, dbuffer));
47
48 float* dcsrValSorted = nullptr;
49 HIP_CHECK(hipMalloc((void**)&dcsrValSorted, sizeof(float) * nnz));
50 HIPSPARSE_CHECK(
51 hipsparseSgthr(handle, nnz, dcsrVal, dcsrValSorted, dperm, HIPSPARSE_INDEX_BASE_ZERO));
52
53 HIP_CHECK(hipFree(dcsrRowPtr));
54 HIP_CHECK(hipFree(dcsrColInd));
55 HIP_CHECK(hipFree(dcsrVal));
56 HIP_CHECK(hipFree(dcsrValSorted));
57
58 HIP_CHECK(hipFree(dbuffer));
59 HIP_CHECK(hipFree(dperm));
60
61 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
62 HIPSPARSE_CHECK(hipsparseDestroy(handle));
63
64 return 0;
65}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t descr;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
9
10 // Sparse matrix in CSR format (columns unsorted)
11 // 1 2 0 3 0
12 // A = 0 4 5 0 0
13 // 6 0 0 7 8
14 int hcsrRowPtr[4] = {0, 3, 5, 8};
15 int hcsrColInd[8] = {3, 1, 0, 2, 1, 0, 4, 3};
16 float hcsrVal[8] = {3.0, 2.0, 1.0, 5.0, 4.0, 6.0, 8.0, 7.0};
17
18 int m = 3;
19 int n = 5;
20 int nnz = 8;
21
22 int* dcsrRowPtr = NULL;
23 int* dcsrColInd = NULL;
24 float* dcsrVal = NULL;
25 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
26 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
27 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
28
29 HIP_CHECK(hipMemcpy(dcsrRowPtr, hcsrRowPtr, sizeof(int) * (m + 1), hipMemcpyHostToDevice));
30 HIP_CHECK(hipMemcpy(dcsrColInd, hcsrColInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
31 HIP_CHECK(hipMemcpy(dcsrVal, hcsrVal, sizeof(float) * nnz, hipMemcpyHostToDevice));
32
33 size_t bufferSize;
34 HIPSPARSE_CHECK(
35 hipsparseXcsrsort_bufferSizeExt(handle, m, n, nnz, dcsrRowPtr, dcsrColInd, &bufferSize));
36
37 void* dbuffer = NULL;
38 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
39
40 int* dperm = NULL;
41 HIP_CHECK(hipMalloc((void**)&dperm, sizeof(int) * nnz));
42 HIPSPARSE_CHECK(hipsparseCreateIdentityPermutation(handle, nnz, dperm));
43
44 HIPSPARSE_CHECK(
45 hipsparseXcsrsort(handle, m, n, nnz, descr, dcsrRowPtr, dcsrColInd, dperm, dbuffer));
46
47 float* dcsrValSorted = NULL;
48 HIP_CHECK(hipMalloc((void**)&dcsrValSorted, sizeof(float) * nnz));
49 HIPSPARSE_CHECK(
50 hipsparseSgthr(handle, nnz, dcsrVal, dcsrValSorted, dperm, HIPSPARSE_INDEX_BASE_ZERO));
51
52 HIP_CHECK(hipFree(dcsrRowPtr));
53 HIP_CHECK(hipFree(dcsrColInd));
54 HIP_CHECK(hipFree(dcsrVal));
55 HIP_CHECK(hipFree(dcsrValSorted));
56
57 HIP_CHECK(hipFree(dbuffer));
58 HIP_CHECK(hipFree(dperm));
59
60 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
61 HIPSPARSE_CHECK(hipsparseDestroy(handle));
62
63 return 0;
64}
hipsparseXcsrsort()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t descr;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
9
10 // Sparse matrix in CSR format (columns unsorted)
11 // 1 2 0 3 0
12 // A = 0 4 5 0 0
13 // 6 0 0 7 8
14 std::vector<int> hcsrRowPtr = {0, 3, 5, 8};
15 std::vector<int> hcsrColInd = {3, 1, 0, 2, 1, 0, 4, 3};
16 std::vector<float> hcsrVal = {3.0f, 2.0f, 1.0f, 5.0f, 4.0f, 6.0f, 8.0f, 7.0f};
17
18 int m = 3;
19 int n = 5;
20 int nnz = 8;
21
22 int* dcsrRowPtr = nullptr;
23 int* dcsrColInd = nullptr;
24 float* dcsrVal = nullptr;
25 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
26 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
27 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
28
29 HIP_CHECK(
30 hipMemcpy(dcsrRowPtr, hcsrRowPtr.data(), sizeof(int) * (m + 1), hipMemcpyHostToDevice));
31 HIP_CHECK(hipMemcpy(dcsrColInd, hcsrColInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
32 HIP_CHECK(hipMemcpy(dcsrVal, hcsrVal.data(), sizeof(float) * nnz, hipMemcpyHostToDevice));
33
34 size_t bufferSize;
35 HIPSPARSE_CHECK(
36 hipsparseXcsrsort_bufferSizeExt(handle, m, n, nnz, dcsrRowPtr, dcsrColInd, &bufferSize));
37
38 void* dbuffer = nullptr;
39 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
40
41 int* dperm = nullptr;
42 HIP_CHECK(hipMalloc((void**)&dperm, sizeof(int) * nnz));
43 HIPSPARSE_CHECK(hipsparseCreateIdentityPermutation(handle, nnz, dperm));
44
45 HIPSPARSE_CHECK(
46 hipsparseXcsrsort(handle, m, n, nnz, descr, dcsrRowPtr, dcsrColInd, dperm, dbuffer));
47
48 float* dcsrValSorted = nullptr;
49 HIP_CHECK(hipMalloc((void**)&dcsrValSorted, sizeof(float) * nnz));
50 HIPSPARSE_CHECK(
51 hipsparseSgthr(handle, nnz, dcsrVal, dcsrValSorted, dperm, HIPSPARSE_INDEX_BASE_ZERO));
52
53 HIP_CHECK(hipFree(dcsrRowPtr));
54 HIP_CHECK(hipFree(dcsrColInd));
55 HIP_CHECK(hipFree(dcsrVal));
56 HIP_CHECK(hipFree(dcsrValSorted));
57
58 HIP_CHECK(hipFree(dbuffer));
59 HIP_CHECK(hipFree(dperm));
60
61 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
62 HIPSPARSE_CHECK(hipsparseDestroy(handle));
63
64 return 0;
65}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t descr;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
9
10 // Sparse matrix in CSR format (columns unsorted)
11 // 1 2 0 3 0
12 // A = 0 4 5 0 0
13 // 6 0 0 7 8
14 int hcsrRowPtr[4] = {0, 3, 5, 8};
15 int hcsrColInd[8] = {3, 1, 0, 2, 1, 0, 4, 3};
16 float hcsrVal[8] = {3.0, 2.0, 1.0, 5.0, 4.0, 6.0, 8.0, 7.0};
17
18 int m = 3;
19 int n = 5;
20 int nnz = 8;
21
22 int* dcsrRowPtr = NULL;
23 int* dcsrColInd = NULL;
24 float* dcsrVal = NULL;
25 HIP_CHECK(hipMalloc((void**)&dcsrRowPtr, sizeof(int) * (m + 1)));
26 HIP_CHECK(hipMalloc((void**)&dcsrColInd, sizeof(int) * nnz));
27 HIP_CHECK(hipMalloc((void**)&dcsrVal, sizeof(float) * nnz));
28
29 HIP_CHECK(hipMemcpy(dcsrRowPtr, hcsrRowPtr, sizeof(int) * (m + 1), hipMemcpyHostToDevice));
30 HIP_CHECK(hipMemcpy(dcsrColInd, hcsrColInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
31 HIP_CHECK(hipMemcpy(dcsrVal, hcsrVal, sizeof(float) * nnz, hipMemcpyHostToDevice));
32
33 size_t bufferSize;
34 HIPSPARSE_CHECK(
35 hipsparseXcsrsort_bufferSizeExt(handle, m, n, nnz, dcsrRowPtr, dcsrColInd, &bufferSize));
36
37 void* dbuffer = NULL;
38 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
39
40 int* dperm = NULL;
41 HIP_CHECK(hipMalloc((void**)&dperm, sizeof(int) * nnz));
42 HIPSPARSE_CHECK(hipsparseCreateIdentityPermutation(handle, nnz, dperm));
43
44 HIPSPARSE_CHECK(
45 hipsparseXcsrsort(handle, m, n, nnz, descr, dcsrRowPtr, dcsrColInd, dperm, dbuffer));
46
47 float* dcsrValSorted = NULL;
48 HIP_CHECK(hipMalloc((void**)&dcsrValSorted, sizeof(float) * nnz));
49 HIPSPARSE_CHECK(
50 hipsparseSgthr(handle, nnz, dcsrVal, dcsrValSorted, dperm, HIPSPARSE_INDEX_BASE_ZERO));
51
52 HIP_CHECK(hipFree(dcsrRowPtr));
53 HIP_CHECK(hipFree(dcsrColInd));
54 HIP_CHECK(hipFree(dcsrVal));
55 HIP_CHECK(hipFree(dcsrValSorted));
56
57 HIP_CHECK(hipFree(dbuffer));
58 HIP_CHECK(hipFree(dperm));
59
60 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
61 HIPSPARSE_CHECK(hipsparseDestroy(handle));
62
63 return 0;
64}
hipsparseXcscsort_bufferSizeExt()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t descr;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
9
10 // Sparse matrix in CSC format (unsorted row indices)
11 // 1 2 0 3 0
12 // A = 0 4 5 0 0
13 // 6 0 0 7 8
14 std::vector<int> hcscRowInd = {2, 0, 1, 0, 1, 2, 0, 2};
15 std::vector<int> hcscColPtr = {0, 2, 4, 5, 7, 8};
16 std::vector<float> hcscVal = {6.0f, 1.0f, 4.0f, 2.0f, 5.0f, 7.0f, 3.0f, 8.0f};
17
18 int m = 3;
19 int n = 5;
20 int nnz = 8;
21
22 int* dcscRowInd = nullptr;
23 int* dcscColPtr = nullptr;
24 float* dcscVal = nullptr;
25 HIP_CHECK(hipMalloc((void**)&dcscRowInd, sizeof(int) * nnz));
26 HIP_CHECK(hipMalloc((void**)&dcscColPtr, sizeof(int) * (n + 1)));
27 HIP_CHECK(hipMalloc((void**)&dcscVal, sizeof(float) * nnz));
28
29 HIP_CHECK(hipMemcpy(dcscRowInd, hcscRowInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
30 HIP_CHECK(
31 hipMemcpy(dcscColPtr, hcscColPtr.data(), sizeof(int) * (n + 1), hipMemcpyHostToDevice));
32 HIP_CHECK(hipMemcpy(dcscVal, hcscVal.data(), sizeof(float) * nnz, hipMemcpyHostToDevice));
33
34 size_t bufferSize;
35 HIPSPARSE_CHECK(
36 hipsparseXcscsort_bufferSizeExt(handle, m, n, nnz, dcscColPtr, dcscRowInd, &bufferSize));
37
38 void* dbuffer = nullptr;
39 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
40
41 int* dperm = nullptr;
42 HIP_CHECK(hipMalloc((void**)&dperm, sizeof(int) * nnz));
43 HIPSPARSE_CHECK(hipsparseCreateIdentityPermutation(handle, nnz, dperm));
44
45 HIPSPARSE_CHECK(
46 hipsparseXcscsort(handle, m, n, nnz, descr, dcscColPtr, dcscRowInd, dperm, dbuffer));
47
48 float* dcscValSorted = nullptr;
49 HIP_CHECK(hipMalloc((void**)&dcscValSorted, sizeof(float) * nnz));
50 HIPSPARSE_CHECK(
51 hipsparseSgthr(handle, nnz, dcscVal, dcscValSorted, dperm, HIPSPARSE_INDEX_BASE_ZERO));
52
53 HIP_CHECK(hipFree(dcscRowInd));
54 HIP_CHECK(hipFree(dcscColPtr));
55 HIP_CHECK(hipFree(dcscVal));
56 HIP_CHECK(hipFree(dcscValSorted));
57
58 HIP_CHECK(hipFree(dbuffer));
59 HIP_CHECK(hipFree(dperm));
60
61 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
62 HIPSPARSE_CHECK(hipsparseDestroy(handle));
63
64 return 0;
65}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t descr;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
9
10 // Sparse matrix in CSC format (unsorted row indices)
11 // 1 2 0 3 0
12 // A = 0 4 5 0 0
13 // 6 0 0 7 8
14 int hcscRowInd[8] = {2, 0, 1, 0, 1, 2, 0, 2};
15 int hcscColPtr[6] = {0, 2, 4, 5, 7, 8};
16 float hcscVal[8] = {6.0, 1.0, 4.0, 2.0, 5.0, 7.0, 3.0, 8.0};
17
18 int m = 3;
19 int n = 5;
20 int nnz = 8;
21
22 int* dcscRowInd = NULL;
23 int* dcscColPtr = NULL;
24 float* dcscVal = NULL;
25 HIP_CHECK(hipMalloc((void**)&dcscRowInd, sizeof(int) * nnz));
26 HIP_CHECK(hipMalloc((void**)&dcscColPtr, sizeof(int) * (n + 1)));
27 HIP_CHECK(hipMalloc((void**)&dcscVal, sizeof(float) * nnz));
28
29 HIP_CHECK(hipMemcpy(dcscRowInd, hcscRowInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
30 HIP_CHECK(hipMemcpy(dcscColPtr, hcscColPtr, sizeof(int) * (n + 1), hipMemcpyHostToDevice));
31 HIP_CHECK(hipMemcpy(dcscVal, hcscVal, sizeof(float) * nnz, hipMemcpyHostToDevice));
32
33 size_t bufferSize;
34 HIPSPARSE_CHECK(
35 hipsparseXcscsort_bufferSizeExt(handle, m, n, nnz, dcscColPtr, dcscRowInd, &bufferSize));
36
37 void* dbuffer = NULL;
38 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
39
40 int* dperm = NULL;
41 HIP_CHECK(hipMalloc((void**)&dperm, sizeof(int) * nnz));
42 HIPSPARSE_CHECK(hipsparseCreateIdentityPermutation(handle, nnz, dperm));
43
44 HIPSPARSE_CHECK(
45 hipsparseXcscsort(handle, m, n, nnz, descr, dcscColPtr, dcscRowInd, dperm, dbuffer));
46
47 float* dcscValSorted = NULL;
48 HIP_CHECK(hipMalloc((void**)&dcscValSorted, sizeof(float) * nnz));
49 HIPSPARSE_CHECK(
50 hipsparseSgthr(handle, nnz, dcscVal, dcscValSorted, dperm, HIPSPARSE_INDEX_BASE_ZERO));
51
52 HIP_CHECK(hipFree(dcscRowInd));
53 HIP_CHECK(hipFree(dcscColPtr));
54 HIP_CHECK(hipFree(dcscVal));
55 HIP_CHECK(hipFree(dcscValSorted));
56
57 HIP_CHECK(hipFree(dbuffer));
58 HIP_CHECK(hipFree(dperm));
59
60 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
61 HIPSPARSE_CHECK(hipsparseDestroy(handle));
62
63 return 0;
64}
hipsparseXcscsort()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t descr;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
9
10 // Sparse matrix in CSC format (unsorted row indices)
11 // 1 2 0 3 0
12 // A = 0 4 5 0 0
13 // 6 0 0 7 8
14 std::vector<int> hcscRowInd = {2, 0, 1, 0, 1, 2, 0, 2};
15 std::vector<int> hcscColPtr = {0, 2, 4, 5, 7, 8};
16 std::vector<float> hcscVal = {6.0f, 1.0f, 4.0f, 2.0f, 5.0f, 7.0f, 3.0f, 8.0f};
17
18 int m = 3;
19 int n = 5;
20 int nnz = 8;
21
22 int* dcscRowInd = nullptr;
23 int* dcscColPtr = nullptr;
24 float* dcscVal = nullptr;
25 HIP_CHECK(hipMalloc((void**)&dcscRowInd, sizeof(int) * nnz));
26 HIP_CHECK(hipMalloc((void**)&dcscColPtr, sizeof(int) * (n + 1)));
27 HIP_CHECK(hipMalloc((void**)&dcscVal, sizeof(float) * nnz));
28
29 HIP_CHECK(hipMemcpy(dcscRowInd, hcscRowInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
30 HIP_CHECK(
31 hipMemcpy(dcscColPtr, hcscColPtr.data(), sizeof(int) * (n + 1), hipMemcpyHostToDevice));
32 HIP_CHECK(hipMemcpy(dcscVal, hcscVal.data(), sizeof(float) * nnz, hipMemcpyHostToDevice));
33
34 size_t bufferSize;
35 HIPSPARSE_CHECK(
36 hipsparseXcscsort_bufferSizeExt(handle, m, n, nnz, dcscColPtr, dcscRowInd, &bufferSize));
37
38 void* dbuffer = nullptr;
39 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
40
41 int* dperm = nullptr;
42 HIP_CHECK(hipMalloc((void**)&dperm, sizeof(int) * nnz));
43 HIPSPARSE_CHECK(hipsparseCreateIdentityPermutation(handle, nnz, dperm));
44
45 HIPSPARSE_CHECK(
46 hipsparseXcscsort(handle, m, n, nnz, descr, dcscColPtr, dcscRowInd, dperm, dbuffer));
47
48 float* dcscValSorted = nullptr;
49 HIP_CHECK(hipMalloc((void**)&dcscValSorted, sizeof(float) * nnz));
50 HIPSPARSE_CHECK(
51 hipsparseSgthr(handle, nnz, dcscVal, dcscValSorted, dperm, HIPSPARSE_INDEX_BASE_ZERO));
52
53 HIP_CHECK(hipFree(dcscRowInd));
54 HIP_CHECK(hipFree(dcscColPtr));
55 HIP_CHECK(hipFree(dcscVal));
56 HIP_CHECK(hipFree(dcscValSorted));
57
58 HIP_CHECK(hipFree(dbuffer));
59 HIP_CHECK(hipFree(dperm));
60
61 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
62 HIPSPARSE_CHECK(hipsparseDestroy(handle));
63
64 return 0;
65}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t descr;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descr));
9
10 // Sparse matrix in CSC format (unsorted row indices)
11 // 1 2 0 3 0
12 // A = 0 4 5 0 0
13 // 6 0 0 7 8
14 int hcscRowInd[8] = {2, 0, 1, 0, 1, 2, 0, 2};
15 int hcscColPtr[6] = {0, 2, 4, 5, 7, 8};
16 float hcscVal[8] = {6.0, 1.0, 4.0, 2.0, 5.0, 7.0, 3.0, 8.0};
17
18 int m = 3;
19 int n = 5;
20 int nnz = 8;
21
22 int* dcscRowInd = NULL;
23 int* dcscColPtr = NULL;
24 float* dcscVal = NULL;
25 HIP_CHECK(hipMalloc((void**)&dcscRowInd, sizeof(int) * nnz));
26 HIP_CHECK(hipMalloc((void**)&dcscColPtr, sizeof(int) * (n + 1)));
27 HIP_CHECK(hipMalloc((void**)&dcscVal, sizeof(float) * nnz));
28
29 HIP_CHECK(hipMemcpy(dcscRowInd, hcscRowInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
30 HIP_CHECK(hipMemcpy(dcscColPtr, hcscColPtr, sizeof(int) * (n + 1), hipMemcpyHostToDevice));
31 HIP_CHECK(hipMemcpy(dcscVal, hcscVal, sizeof(float) * nnz, hipMemcpyHostToDevice));
32
33 size_t bufferSize;
34 HIPSPARSE_CHECK(
35 hipsparseXcscsort_bufferSizeExt(handle, m, n, nnz, dcscColPtr, dcscRowInd, &bufferSize));
36
37 void* dbuffer = NULL;
38 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
39
40 int* dperm = NULL;
41 HIP_CHECK(hipMalloc((void**)&dperm, sizeof(int) * nnz));
42 HIPSPARSE_CHECK(hipsparseCreateIdentityPermutation(handle, nnz, dperm));
43
44 HIPSPARSE_CHECK(
45 hipsparseXcscsort(handle, m, n, nnz, descr, dcscColPtr, dcscRowInd, dperm, dbuffer));
46
47 float* dcscValSorted = NULL;
48 HIP_CHECK(hipMalloc((void**)&dcscValSorted, sizeof(float) * nnz));
49 HIPSPARSE_CHECK(
50 hipsparseSgthr(handle, nnz, dcscVal, dcscValSorted, dperm, HIPSPARSE_INDEX_BASE_ZERO));
51
52 HIP_CHECK(hipFree(dcscRowInd));
53 HIP_CHECK(hipFree(dcscColPtr));
54 HIP_CHECK(hipFree(dcscVal));
55 HIP_CHECK(hipFree(dcscValSorted));
56
57 HIP_CHECK(hipFree(dbuffer));
58 HIP_CHECK(hipFree(dperm));
59
60 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descr));
61 HIPSPARSE_CHECK(hipsparseDestroy(handle));
62
63 return 0;
64}
hipsparseXcoosort_bufferSizeExt()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Sparse matrix in COO format (with unsorted row indices)
8 // 1 2 0 3 0
9 // A = 0 4 5 0 0
10 // 6 0 0 7 8
11 std::vector<int> hcooRowInd = {0, 2, 0, 1, 1, 0, 2, 2};
12 std::vector<int> hcooColInd = {0, 0, 1, 1, 2, 3, 3, 4};
13 std::vector<float> hcooVal = {1.0f, 6.0f, 2.0f, 4.0f, 5.0f, 3.0f, 7.0f, 8.0f};
14
15 int m = 3;
16 int n = 5;
17 int nnz = 8;
18 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
19
20 int* dcooRowInd = nullptr;
21 int* dcooColInd = nullptr;
22 float* dcooVal = nullptr;
23 HIP_CHECK(hipMalloc((void**)&dcooRowInd, sizeof(int) * nnz));
24 HIP_CHECK(hipMalloc((void**)&dcooColInd, sizeof(int) * nnz));
25 HIP_CHECK(hipMalloc((void**)&dcooVal, sizeof(float) * nnz));
26
27 HIP_CHECK(hipMemcpy(dcooRowInd, hcooRowInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
28 HIP_CHECK(hipMemcpy(dcooColInd, hcooColInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
29 HIP_CHECK(hipMemcpy(dcooVal, hcooVal.data(), sizeof(float) * nnz, hipMemcpyHostToDevice));
30
31 size_t bufferSize;
32 HIPSPARSE_CHECK(
33 hipsparseXcoosort_bufferSizeExt(handle, m, n, nnz, dcooRowInd, dcooColInd, &bufferSize));
34
35 void* dbuffer = nullptr;
36 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
37
38 int* dperm = nullptr;
39 HIP_CHECK(hipMalloc((void**)&dperm, sizeof(int) * nnz));
40 HIPSPARSE_CHECK(hipsparseCreateIdentityPermutation(handle, nnz, dperm));
41
42 HIPSPARSE_CHECK(
43 hipsparseXcoosortByRow(handle, m, n, nnz, dcooRowInd, dcooColInd, dperm, dbuffer));
44
45 float* dcooValSorted = nullptr;
46 HIP_CHECK(hipMalloc((void**)&dcooValSorted, sizeof(float) * nnz));
47 HIPSPARSE_CHECK(hipsparseSgthr(handle, nnz, dcooVal, dcooValSorted, dperm, base));
48
49 HIP_CHECK(hipFree(dcooRowInd));
50 HIP_CHECK(hipFree(dcooColInd));
51 HIP_CHECK(hipFree(dcooVal));
52 HIP_CHECK(hipFree(dcooValSorted));
53 HIP_CHECK(hipFree(dperm));
54
55 HIP_CHECK(hipFree(dbuffer));
56
57 HIPSPARSE_CHECK(hipsparseDestroy(handle));
58
59 return 0;
60}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Sparse matrix in COO format (with unsorted row indices)
8 // 1 2 0 3 0
9 // A = 0 4 5 0 0
10 // 6 0 0 7 8
11 int hcooRowInd[8] = {0, 2, 0, 1, 1, 0, 2, 2};
12 int hcooColInd[8] = {0, 0, 1, 1, 2, 3, 3, 4};
13 float hcooVal[8] = {1.0, 6.0, 2.0, 4.0, 5.0, 3.0, 7.0, 8.0};
14
15 int m = 3;
16 int n = 5;
17 int nnz = 8;
18 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
19
20 int* dcooRowInd = NULL;
21 int* dcooColInd = NULL;
22 float* dcooVal = NULL;
23 HIP_CHECK(hipMalloc((void**)&dcooRowInd, sizeof(int) * nnz));
24 HIP_CHECK(hipMalloc((void**)&dcooColInd, sizeof(int) * nnz));
25 HIP_CHECK(hipMalloc((void**)&dcooVal, sizeof(float) * nnz));
26
27 HIP_CHECK(hipMemcpy(dcooRowInd, hcooRowInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
28 HIP_CHECK(hipMemcpy(dcooColInd, hcooColInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
29 HIP_CHECK(hipMemcpy(dcooVal, hcooVal, sizeof(float) * nnz, hipMemcpyHostToDevice));
30
31 size_t bufferSize;
32 HIPSPARSE_CHECK(
33 hipsparseXcoosort_bufferSizeExt(handle, m, n, nnz, dcooRowInd, dcooColInd, &bufferSize));
34
35 void* dbuffer = NULL;
36 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
37
38 int* dperm = NULL;
39 HIP_CHECK(hipMalloc((void**)&dperm, sizeof(int) * nnz));
40 HIPSPARSE_CHECK(hipsparseCreateIdentityPermutation(handle, nnz, dperm));
41
42 HIPSPARSE_CHECK(
43 hipsparseXcoosortByRow(handle, m, n, nnz, dcooRowInd, dcooColInd, dperm, dbuffer));
44
45 float* dcooValSorted = NULL;
46 HIP_CHECK(hipMalloc((void**)&dcooValSorted, sizeof(float) * nnz));
47 HIPSPARSE_CHECK(hipsparseSgthr(handle, nnz, dcooVal, dcooValSorted, dperm, base));
48
49 HIP_CHECK(hipFree(dcooRowInd));
50 HIP_CHECK(hipFree(dcooColInd));
51 HIP_CHECK(hipFree(dcooVal));
52 HIP_CHECK(hipFree(dcooValSorted));
53 HIP_CHECK(hipFree(dperm));
54
55 HIP_CHECK(hipFree(dbuffer));
56
57 HIPSPARSE_CHECK(hipsparseDestroy(handle));
58
59 return 0;
60}
hipsparseXcoosortByRow()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Sparse matrix in COO format (with unsorted row indices)
8 // 1 2 0 3 0
9 // A = 0 4 5 0 0
10 // 6 0 0 7 8
11 std::vector<int> hcooRowInd = {0, 2, 0, 1, 1, 0, 2, 2};
12 std::vector<int> hcooColInd = {0, 0, 1, 1, 2, 3, 3, 4};
13 std::vector<float> hcooVal = {1.0f, 6.0f, 2.0f, 4.0f, 5.0f, 3.0f, 7.0f, 8.0f};
14
15 int m = 3;
16 int n = 5;
17 int nnz = 8;
18 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
19
20 int* dcooRowInd = nullptr;
21 int* dcooColInd = nullptr;
22 float* dcooVal = nullptr;
23 HIP_CHECK(hipMalloc((void**)&dcooRowInd, sizeof(int) * nnz));
24 HIP_CHECK(hipMalloc((void**)&dcooColInd, sizeof(int) * nnz));
25 HIP_CHECK(hipMalloc((void**)&dcooVal, sizeof(float) * nnz));
26
27 HIP_CHECK(hipMemcpy(dcooRowInd, hcooRowInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
28 HIP_CHECK(hipMemcpy(dcooColInd, hcooColInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
29 HIP_CHECK(hipMemcpy(dcooVal, hcooVal.data(), sizeof(float) * nnz, hipMemcpyHostToDevice));
30
31 size_t bufferSize;
32 HIPSPARSE_CHECK(
33 hipsparseXcoosort_bufferSizeExt(handle, m, n, nnz, dcooRowInd, dcooColInd, &bufferSize));
34
35 void* dbuffer = nullptr;
36 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
37
38 int* dperm = nullptr;
39 HIP_CHECK(hipMalloc((void**)&dperm, sizeof(int) * nnz));
40 HIPSPARSE_CHECK(hipsparseCreateIdentityPermutation(handle, nnz, dperm));
41
42 HIPSPARSE_CHECK(
43 hipsparseXcoosortByRow(handle, m, n, nnz, dcooRowInd, dcooColInd, dperm, dbuffer));
44
45 float* dcooValSorted = nullptr;
46 HIP_CHECK(hipMalloc((void**)&dcooValSorted, sizeof(float) * nnz));
47 HIPSPARSE_CHECK(hipsparseSgthr(handle, nnz, dcooVal, dcooValSorted, dperm, base));
48
49 HIP_CHECK(hipFree(dcooRowInd));
50 HIP_CHECK(hipFree(dcooColInd));
51 HIP_CHECK(hipFree(dcooVal));
52 HIP_CHECK(hipFree(dcooValSorted));
53 HIP_CHECK(hipFree(dperm));
54
55 HIP_CHECK(hipFree(dbuffer));
56
57 HIPSPARSE_CHECK(hipsparseDestroy(handle));
58
59 return 0;
60}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Sparse matrix in COO format (with unsorted row indices)
8 // 1 2 0 3 0
9 // A = 0 4 5 0 0
10 // 6 0 0 7 8
11 int hcooRowInd[8] = {0, 2, 0, 1, 1, 0, 2, 2};
12 int hcooColInd[8] = {0, 0, 1, 1, 2, 3, 3, 4};
13 float hcooVal[8] = {1.0, 6.0, 2.0, 4.0, 5.0, 3.0, 7.0, 8.0};
14
15 int m = 3;
16 int n = 5;
17 int nnz = 8;
18 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
19
20 int* dcooRowInd = NULL;
21 int* dcooColInd = NULL;
22 float* dcooVal = NULL;
23 HIP_CHECK(hipMalloc((void**)&dcooRowInd, sizeof(int) * nnz));
24 HIP_CHECK(hipMalloc((void**)&dcooColInd, sizeof(int) * nnz));
25 HIP_CHECK(hipMalloc((void**)&dcooVal, sizeof(float) * nnz));
26
27 HIP_CHECK(hipMemcpy(dcooRowInd, hcooRowInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
28 HIP_CHECK(hipMemcpy(dcooColInd, hcooColInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
29 HIP_CHECK(hipMemcpy(dcooVal, hcooVal, sizeof(float) * nnz, hipMemcpyHostToDevice));
30
31 size_t bufferSize;
32 HIPSPARSE_CHECK(
33 hipsparseXcoosort_bufferSizeExt(handle, m, n, nnz, dcooRowInd, dcooColInd, &bufferSize));
34
35 void* dbuffer = NULL;
36 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
37
38 int* dperm = NULL;
39 HIP_CHECK(hipMalloc((void**)&dperm, sizeof(int) * nnz));
40 HIPSPARSE_CHECK(hipsparseCreateIdentityPermutation(handle, nnz, dperm));
41
42 HIPSPARSE_CHECK(
43 hipsparseXcoosortByRow(handle, m, n, nnz, dcooRowInd, dcooColInd, dperm, dbuffer));
44
45 float* dcooValSorted = NULL;
46 HIP_CHECK(hipMalloc((void**)&dcooValSorted, sizeof(float) * nnz));
47 HIPSPARSE_CHECK(hipsparseSgthr(handle, nnz, dcooVal, dcooValSorted, dperm, base));
48
49 HIP_CHECK(hipFree(dcooRowInd));
50 HIP_CHECK(hipFree(dcooColInd));
51 HIP_CHECK(hipFree(dcooVal));
52 HIP_CHECK(hipFree(dcooValSorted));
53 HIP_CHECK(hipFree(dperm));
54
55 HIP_CHECK(hipFree(dbuffer));
56
57 HIPSPARSE_CHECK(hipsparseDestroy(handle));
58
59 return 0;
60}
hipsparseXcoosortByColumn()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Sparse matrix in COO format (with unsorted column indices)
8 // 1 2 0 3 0
9 // A = 0 4 5 0 0
10 // 6 0 0 7 8
11 std::vector<int> hcooRowInd = {0, 0, 0, 1, 1, 2, 2, 2};
12 std::vector<int> hcooColInd = {0, 1, 3, 1, 2, 0, 3, 4};
13 std::vector<float> hcooVal = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f};
14
15 int m = 3;
16 int n = 5;
17 int nnz = 8;
18 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
19
20 int* dcooRowInd = nullptr;
21 int* dcooColInd = nullptr;
22 float* dcooVal = nullptr;
23 HIP_CHECK(hipMalloc((void**)&dcooRowInd, sizeof(int) * nnz));
24 HIP_CHECK(hipMalloc((void**)&dcooColInd, sizeof(int) * nnz));
25 HIP_CHECK(hipMalloc((void**)&dcooVal, sizeof(float) * nnz));
26
27 HIP_CHECK(hipMemcpy(dcooRowInd, hcooRowInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
28 HIP_CHECK(hipMemcpy(dcooColInd, hcooColInd.data(), sizeof(int) * nnz, hipMemcpyHostToDevice));
29 HIP_CHECK(hipMemcpy(dcooVal, hcooVal.data(), sizeof(float) * nnz, hipMemcpyHostToDevice));
30
31 size_t bufferSize;
32 HIPSPARSE_CHECK(
33 hipsparseXcoosort_bufferSizeExt(handle, m, n, nnz, dcooRowInd, dcooColInd, &bufferSize));
34
35 void* dbuffer = nullptr;
36 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
37
38 int* dperm = nullptr;
39 HIP_CHECK(hipMalloc((void**)&dperm, sizeof(int) * nnz));
40 HIPSPARSE_CHECK(hipsparseCreateIdentityPermutation(handle, nnz, dperm));
41
42 HIPSPARSE_CHECK(
43 hipsparseXcoosortByColumn(handle, m, n, nnz, dcooRowInd, dcooColInd, dperm, dbuffer));
44
45 float* dcooValSorted = nullptr;
46 HIP_CHECK(hipMalloc((void**)&dcooValSorted, sizeof(float) * nnz));
47 HIPSPARSE_CHECK(hipsparseSgthr(handle, nnz, dcooVal, dcooValSorted, dperm, base));
48
49 HIP_CHECK(hipFree(dcooRowInd));
50 HIP_CHECK(hipFree(dcooColInd));
51 HIP_CHECK(hipFree(dcooVal));
52
53 HIP_CHECK(hipFree(dcooValSorted));
54 HIP_CHECK(hipFree(dperm));
55
56 HIP_CHECK(hipFree(dbuffer));
57
58 HIPSPARSE_CHECK(hipsparseDestroy(handle));
59
60 return 0;
61}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 // Sparse matrix in COO format (with unsorted column indices)
8 // 1 2 0 3 0
9 // A = 0 4 5 0 0
10 // 6 0 0 7 8
11 int hcooRowInd[8] = {0, 0, 0, 1, 1, 2, 2, 2};
12 int hcooColInd[8] = {0, 1, 3, 1, 2, 0, 3, 4};
13 float hcooVal[8] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0};
14
15 int m = 3;
16 int n = 5;
17 int nnz = 8;
18 hipsparseIndexBase_t base = HIPSPARSE_INDEX_BASE_ZERO;
19
20 int* dcooRowInd = NULL;
21 int* dcooColInd = NULL;
22 float* dcooVal = NULL;
23 HIP_CHECK(hipMalloc((void**)&dcooRowInd, sizeof(int) * nnz));
24 HIP_CHECK(hipMalloc((void**)&dcooColInd, sizeof(int) * nnz));
25 HIP_CHECK(hipMalloc((void**)&dcooVal, sizeof(float) * nnz));
26
27 HIP_CHECK(hipMemcpy(dcooRowInd, hcooRowInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
28 HIP_CHECK(hipMemcpy(dcooColInd, hcooColInd, sizeof(int) * nnz, hipMemcpyHostToDevice));
29 HIP_CHECK(hipMemcpy(dcooVal, hcooVal, sizeof(float) * nnz, hipMemcpyHostToDevice));
30
31 size_t bufferSize;
32 HIPSPARSE_CHECK(
33 hipsparseXcoosort_bufferSizeExt(handle, m, n, nnz, dcooRowInd, dcooColInd, &bufferSize));
34
35 void* dbuffer = NULL;
36 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
37
38 int* dperm = NULL;
39 HIP_CHECK(hipMalloc((void**)&dperm, sizeof(int) * nnz));
40 HIPSPARSE_CHECK(hipsparseCreateIdentityPermutation(handle, nnz, dperm));
41
42 HIPSPARSE_CHECK(
43 hipsparseXcoosortByColumn(handle, m, n, nnz, dcooRowInd, dcooColInd, dperm, dbuffer));
44
45 float* dcooValSorted = NULL;
46 HIP_CHECK(hipMalloc((void**)&dcooValSorted, sizeof(float) * nnz));
47 HIPSPARSE_CHECK(hipsparseSgthr(handle, nnz, dcooVal, dcooValSorted, dperm, base));
48
49 HIP_CHECK(hipFree(dcooRowInd));
50 HIP_CHECK(hipFree(dcooColInd));
51 HIP_CHECK(hipFree(dcooVal));
52
53 HIP_CHECK(hipFree(dcooValSorted));
54 HIP_CHECK(hipFree(dperm));
55
56 HIP_CHECK(hipFree(dbuffer));
57
58 HIPSPARSE_CHECK(hipsparseDestroy(handle));
59
60 return 0;
61}
hipsparseXgebsr2gebsr_bufferSize()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXgebsr2gebsrNnz()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t descrA;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descrA));
9
10 hipsparseMatDescr_t descrC;
11 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descrC));
12
13 // Sparse matrix in BSR format
14 // 1 2 | 0 3 | 0 0
15 // 0 4 | 5 0 | 0 1
16 // A = 6 0 | 0 7 | 8 0
17 // ---------------
18 // 0 0 | 3 0 | 2 2
19 // 1 0 | 0 0 | 4 3
20 // 7 2 | 0 0 | 1 4
21 std::vector<int> hbsrRowPtrA = {0, 3, 6};
22 std::vector<int> hbsrColIndA = {0, 1, 2, 0, 1, 2};
23 std::vector<float> hbsrValA
24 = {1.0f, 2.0f, 0.0f, 4.0f, 6.0f, 0.0f, 0.0f, 3.0f, 5.0f, 0.0f, 0.0f, 7.0f,
25 0.0f, 0.0f, 0.0f, 1.0f, 8.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 7.0f, 2.0f,
26 3.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f, 2.0f, 4.0f, 3.0f, 1.0f, 4.0f};
27
28 int m = 6;
29 int n = 6;
30 int rowBlockDimA = 3;
31 int colBlockDimA = 2;
32 int rowBlockDimC = 2;
33 int colBlockDimC = 2;
34 hipsparseDirection_t dirA = HIPSPARSE_DIRECTION_ROW;
35
36 int mbA = (m + rowBlockDimA - 1) / rowBlockDimA;
37 int nbA = (n + colBlockDimA - 1) / colBlockDimA;
38 int nnzbA = 6;
39
40 int mbC = (m + rowBlockDimC - 1) / rowBlockDimC;
41 int nbC = (n + colBlockDimC - 1) / colBlockDimC;
42
43 int* dbsrRowPtrA = nullptr;
44 int* dbsrColIndA = nullptr;
45 float* dbsrValA = nullptr;
46
47 HIP_CHECK(hipMalloc((void**)&dbsrRowPtrA, sizeof(int) * (mbA + 1)));
48 HIP_CHECK(hipMalloc((void**)&dbsrColIndA, sizeof(int) * nnzbA));
49 HIP_CHECK(hipMalloc((void**)&dbsrValA, sizeof(float) * rowBlockDimA * colBlockDimA * nnzbA));
50
51 HIP_CHECK(
52 hipMemcpy(dbsrRowPtrA, hbsrRowPtrA.data(), sizeof(int) * (mbA + 1), hipMemcpyHostToDevice));
53 HIP_CHECK(
54 hipMemcpy(dbsrColIndA, hbsrColIndA.data(), sizeof(int) * nnzbA, hipMemcpyHostToDevice));
55 HIP_CHECK(hipMemcpy(dbsrValA,
56 hbsrValA.data(),
57 sizeof(float) * rowBlockDimA * colBlockDimA * nnzbA,
58 hipMemcpyHostToDevice));
59
60 int* dbsrRowPtrC = nullptr;
61 HIP_CHECK(hipMalloc((void**)&dbsrRowPtrC, sizeof(int) * (mbC + 1)));
62
63 int bufferSize;
64 HIPSPARSE_CHECK(hipsparseSgebsr2gebsr_bufferSize(handle,
65 dirA,
66 mbA,
67 nbA,
68 nnzbA,
69 descrA,
70 dbsrValA,
71 dbsrRowPtrA,
72 dbsrColIndA,
73 rowBlockDimA,
74 colBlockDimA,
75 rowBlockDimC,
76 colBlockDimC,
77 &bufferSize));
78
79 void* dbuffer = nullptr;
80 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
81
82 int nnzbC;
83 HIPSPARSE_CHECK(hipsparseXgebsr2gebsrNnz(handle,
84 dirA,
85 mbA,
86 nbA,
87 nnzbA,
88 descrA,
89 dbsrRowPtrA,
90 dbsrColIndA,
91 rowBlockDimA,
92 colBlockDimA,
93 descrC,
94 dbsrRowPtrC,
95 rowBlockDimC,
96 colBlockDimC,
97 &nnzbC,
98 dbuffer));
99
100 HIP_CHECK(hipDeviceSynchronize());
101
102 int* dbsrColIndC = nullptr;
103 float* dbsrValC = nullptr;
104 HIP_CHECK(hipMalloc((void**)&dbsrColIndC, sizeof(int) * nnzbC));
105 HIP_CHECK(hipMalloc((void**)&dbsrValC, sizeof(float) * rowBlockDimC * colBlockDimC * nnzbC));
106
107 HIPSPARSE_CHECK(hipsparseSgebsr2gebsr(handle,
108 dirA,
109 mbA,
110 nbA,
111 nnzbA,
112 descrA,
113 dbsrValA,
114 dbsrRowPtrA,
115 dbsrColIndA,
116 rowBlockDimA,
117 colBlockDimA,
118 descrC,
119 dbsrValC,
120 dbsrRowPtrC,
121 dbsrColIndC,
122 rowBlockDimC,
123 colBlockDimC,
124 dbuffer));
125
126 HIP_CHECK(hipFree(dbsrRowPtrA));
127 HIP_CHECK(hipFree(dbsrColIndA));
128 HIP_CHECK(hipFree(dbsrValA));
129
130 HIP_CHECK(hipFree(dbsrRowPtrC));
131 HIP_CHECK(hipFree(dbsrColIndC));
132 HIP_CHECK(hipFree(dbsrValC));
133
134 HIP_CHECK(hipFree(dbuffer));
135
136 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descrA));
137 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descrC));
138 HIPSPARSE_CHECK(hipsparseDestroy(handle));
139
140 return 0;
141}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t descrA;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descrA));
9
10 hipsparseMatDescr_t descrC;
11 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descrC));
12
13 // Sparse matrix in BSR format
14 // 1 2 | 0 3 | 0 0
15 // 0 4 | 5 0 | 0 1
16 // A = 6 0 | 0 7 | 8 0
17 // ---------------
18 // 0 0 | 3 0 | 2 2
19 // 1 0 | 0 0 | 4 3
20 // 7 2 | 0 0 | 1 4
21 int hbsrRowPtrA[3] = {0, 3, 6};
22 int hbsrColIndA[6] = {0, 1, 2, 0, 1, 2};
23 float hbsrValA[36] = {1.0, 2.0, 0.0, 4.0, 6.0, 0.0, 0.0, 3.0, 5.0, 0.0, 0.0, 7.0,
24 0.0, 0.0, 0.0, 1.0, 8.0, 0.0, 0.0, 0.0, 1.0, 0.0, 7.0, 2.0,
25 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 3.0, 1.0, 4.0};
26
27 int m = 6;
28 int n = 6;
29 int rowBlockDimA = 3;
30 int colBlockDimA = 2;
31 int rowBlockDimC = 2;
32 int colBlockDimC = 2;
33 hipsparseDirection_t dirA = HIPSPARSE_DIRECTION_ROW;
34
35 int mbA = (m + rowBlockDimA - 1) / rowBlockDimA;
36 int nbA = (n + colBlockDimA - 1) / colBlockDimA;
37 int nnzbA = 6;
38
39 int mbC = (m + rowBlockDimC - 1) / rowBlockDimC;
40 int nbC = (n + colBlockDimC - 1) / colBlockDimC;
41
42 int* dbsrRowPtrA = NULL;
43 int* dbsrColIndA = NULL;
44 float* dbsrValA = NULL;
45
46 HIP_CHECK(hipMalloc((void**)&dbsrRowPtrA, sizeof(int) * (mbA + 1)));
47 HIP_CHECK(hipMalloc((void**)&dbsrColIndA, sizeof(int) * nnzbA));
48 HIP_CHECK(hipMalloc((void**)&dbsrValA, sizeof(float) * rowBlockDimA * colBlockDimA * nnzbA));
49
50 HIP_CHECK(hipMemcpy(dbsrRowPtrA, hbsrRowPtrA, sizeof(int) * (mbA + 1), hipMemcpyHostToDevice));
51 HIP_CHECK(hipMemcpy(dbsrColIndA, hbsrColIndA, sizeof(int) * nnzbA, hipMemcpyHostToDevice));
52 HIP_CHECK(hipMemcpy(dbsrValA,
53 hbsrValA,
54 sizeof(float) * rowBlockDimA * colBlockDimA * nnzbA,
55 hipMemcpyHostToDevice));
56
57 int* dbsrRowPtrC = NULL;
58 HIP_CHECK(hipMalloc((void**)&dbsrRowPtrC, sizeof(int) * (mbC + 1)));
59
60 int bufferSize;
61 HIPSPARSE_CHECK(hipsparseSgebsr2gebsr_bufferSize(handle,
62 dirA,
63 mbA,
64 nbA,
65 nnzbA,
66 descrA,
67 dbsrValA,
68 dbsrRowPtrA,
69 dbsrColIndA,
70 rowBlockDimA,
71 colBlockDimA,
72 rowBlockDimC,
73 colBlockDimC,
74 &bufferSize));
75
76 void* dbuffer = NULL;
77 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
78
79 int nnzbC;
80 HIPSPARSE_CHECK(hipsparseXgebsr2gebsrNnz(handle,
81 dirA,
82 mbA,
83 nbA,
84 nnzbA,
85 descrA,
86 dbsrRowPtrA,
87 dbsrColIndA,
88 rowBlockDimA,
89 colBlockDimA,
90 descrC,
91 dbsrRowPtrC,
92 rowBlockDimC,
93 colBlockDimC,
94 &nnzbC,
95 dbuffer));
96
97 HIP_CHECK(hipDeviceSynchronize());
98
99 int* dbsrColIndC = NULL;
100 float* dbsrValC = NULL;
101 HIP_CHECK(hipMalloc((void**)&dbsrColIndC, sizeof(int) * nnzbC));
102 HIP_CHECK(hipMalloc((void**)&dbsrValC, sizeof(float) * rowBlockDimC * colBlockDimC * nnzbC));
103
104 HIPSPARSE_CHECK(hipsparseSgebsr2gebsr(handle,
105 dirA,
106 mbA,
107 nbA,
108 nnzbA,
109 descrA,
110 dbsrValA,
111 dbsrRowPtrA,
112 dbsrColIndA,
113 rowBlockDimA,
114 colBlockDimA,
115 descrC,
116 dbsrValC,
117 dbsrRowPtrC,
118 dbsrColIndC,
119 rowBlockDimC,
120 colBlockDimC,
121 dbuffer));
122
123 HIP_CHECK(hipFree(dbsrRowPtrA));
124 HIP_CHECK(hipFree(dbsrColIndA));
125 HIP_CHECK(hipFree(dbsrValA));
126
127 HIP_CHECK(hipFree(dbsrRowPtrC));
128 HIP_CHECK(hipFree(dbsrColIndC));
129 HIP_CHECK(hipFree(dbsrValC));
130
131 HIP_CHECK(hipFree(dbuffer));
132
133 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descrA));
134 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descrC));
135 HIPSPARSE_CHECK(hipsparseDestroy(handle));
136
137 return 0;
138}
hipsparseXgebsr2gebsr()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t descrA;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descrA));
9
10 hipsparseMatDescr_t descrC;
11 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descrC));
12
13 // Sparse matrix in BSR format
14 // 1 2 | 0 3 | 0 0
15 // 0 4 | 5 0 | 0 1
16 // A = 6 0 | 0 7 | 8 0
17 // ---------------
18 // 0 0 | 3 0 | 2 2
19 // 1 0 | 0 0 | 4 3
20 // 7 2 | 0 0 | 1 4
21 std::vector<int> hbsrRowPtrA = {0, 3, 6};
22 std::vector<int> hbsrColIndA = {0, 1, 2, 0, 1, 2};
23 std::vector<float> hbsrValA
24 = {1.0f, 2.0f, 0.0f, 4.0f, 6.0f, 0.0f, 0.0f, 3.0f, 5.0f, 0.0f, 0.0f, 7.0f,
25 0.0f, 0.0f, 0.0f, 1.0f, 8.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 7.0f, 2.0f,
26 3.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f, 2.0f, 4.0f, 3.0f, 1.0f, 4.0f};
27
28 int m = 6;
29 int n = 6;
30 int rowBlockDimA = 3;
31 int colBlockDimA = 2;
32 int rowBlockDimC = 2;
33 int colBlockDimC = 2;
34 hipsparseDirection_t dirA = HIPSPARSE_DIRECTION_ROW;
35
36 int mbA = (m + rowBlockDimA - 1) / rowBlockDimA;
37 int nbA = (n + colBlockDimA - 1) / colBlockDimA;
38 int nnzbA = 6;
39
40 int mbC = (m + rowBlockDimC - 1) / rowBlockDimC;
41 int nbC = (n + colBlockDimC - 1) / colBlockDimC;
42
43 int* dbsrRowPtrA = nullptr;
44 int* dbsrColIndA = nullptr;
45 float* dbsrValA = nullptr;
46
47 HIP_CHECK(hipMalloc((void**)&dbsrRowPtrA, sizeof(int) * (mbA + 1)));
48 HIP_CHECK(hipMalloc((void**)&dbsrColIndA, sizeof(int) * nnzbA));
49 HIP_CHECK(hipMalloc((void**)&dbsrValA, sizeof(float) * rowBlockDimA * colBlockDimA * nnzbA));
50
51 HIP_CHECK(
52 hipMemcpy(dbsrRowPtrA, hbsrRowPtrA.data(), sizeof(int) * (mbA + 1), hipMemcpyHostToDevice));
53 HIP_CHECK(
54 hipMemcpy(dbsrColIndA, hbsrColIndA.data(), sizeof(int) * nnzbA, hipMemcpyHostToDevice));
55 HIP_CHECK(hipMemcpy(dbsrValA,
56 hbsrValA.data(),
57 sizeof(float) * rowBlockDimA * colBlockDimA * nnzbA,
58 hipMemcpyHostToDevice));
59
60 int* dbsrRowPtrC = nullptr;
61 HIP_CHECK(hipMalloc((void**)&dbsrRowPtrC, sizeof(int) * (mbC + 1)));
62
63 int bufferSize;
64 HIPSPARSE_CHECK(hipsparseSgebsr2gebsr_bufferSize(handle,
65 dirA,
66 mbA,
67 nbA,
68 nnzbA,
69 descrA,
70 dbsrValA,
71 dbsrRowPtrA,
72 dbsrColIndA,
73 rowBlockDimA,
74 colBlockDimA,
75 rowBlockDimC,
76 colBlockDimC,
77 &bufferSize));
78
79 void* dbuffer = nullptr;
80 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
81
82 int nnzbC;
83 HIPSPARSE_CHECK(hipsparseXgebsr2gebsrNnz(handle,
84 dirA,
85 mbA,
86 nbA,
87 nnzbA,
88 descrA,
89 dbsrRowPtrA,
90 dbsrColIndA,
91 rowBlockDimA,
92 colBlockDimA,
93 descrC,
94 dbsrRowPtrC,
95 rowBlockDimC,
96 colBlockDimC,
97 &nnzbC,
98 dbuffer));
99
100 HIP_CHECK(hipDeviceSynchronize());
101
102 int* dbsrColIndC = nullptr;
103 float* dbsrValC = nullptr;
104 HIP_CHECK(hipMalloc((void**)&dbsrColIndC, sizeof(int) * nnzbC));
105 HIP_CHECK(hipMalloc((void**)&dbsrValC, sizeof(float) * rowBlockDimC * colBlockDimC * nnzbC));
106
107 HIPSPARSE_CHECK(hipsparseSgebsr2gebsr(handle,
108 dirA,
109 mbA,
110 nbA,
111 nnzbA,
112 descrA,
113 dbsrValA,
114 dbsrRowPtrA,
115 dbsrColIndA,
116 rowBlockDimA,
117 colBlockDimA,
118 descrC,
119 dbsrValC,
120 dbsrRowPtrC,
121 dbsrColIndC,
122 rowBlockDimC,
123 colBlockDimC,
124 dbuffer));
125
126 HIP_CHECK(hipFree(dbsrRowPtrA));
127 HIP_CHECK(hipFree(dbsrColIndA));
128 HIP_CHECK(hipFree(dbsrValA));
129
130 HIP_CHECK(hipFree(dbsrRowPtrC));
131 HIP_CHECK(hipFree(dbsrColIndC));
132 HIP_CHECK(hipFree(dbsrValC));
133
134 HIP_CHECK(hipFree(dbuffer));
135
136 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descrA));
137 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descrC));
138 HIPSPARSE_CHECK(hipsparseDestroy(handle));
139
140 return 0;
141}
1int main(int argc, char* argv[])
2{
3 // hipSPARSE handle
4 hipsparseHandle_t handle;
5 HIPSPARSE_CHECK(hipsparseCreate(&handle));
6
7 hipsparseMatDescr_t descrA;
8 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descrA));
9
10 hipsparseMatDescr_t descrC;
11 HIPSPARSE_CHECK(hipsparseCreateMatDescr(&descrC));
12
13 // Sparse matrix in BSR format
14 // 1 2 | 0 3 | 0 0
15 // 0 4 | 5 0 | 0 1
16 // A = 6 0 | 0 7 | 8 0
17 // ---------------
18 // 0 0 | 3 0 | 2 2
19 // 1 0 | 0 0 | 4 3
20 // 7 2 | 0 0 | 1 4
21 int hbsrRowPtrA[3] = {0, 3, 6};
22 int hbsrColIndA[6] = {0, 1, 2, 0, 1, 2};
23 float hbsrValA[36] = {1.0, 2.0, 0.0, 4.0, 6.0, 0.0, 0.0, 3.0, 5.0, 0.0, 0.0, 7.0,
24 0.0, 0.0, 0.0, 1.0, 8.0, 0.0, 0.0, 0.0, 1.0, 0.0, 7.0, 2.0,
25 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 3.0, 1.0, 4.0};
26
27 int m = 6;
28 int n = 6;
29 int rowBlockDimA = 3;
30 int colBlockDimA = 2;
31 int rowBlockDimC = 2;
32 int colBlockDimC = 2;
33 hipsparseDirection_t dirA = HIPSPARSE_DIRECTION_ROW;
34
35 int mbA = (m + rowBlockDimA - 1) / rowBlockDimA;
36 int nbA = (n + colBlockDimA - 1) / colBlockDimA;
37 int nnzbA = 6;
38
39 int mbC = (m + rowBlockDimC - 1) / rowBlockDimC;
40 int nbC = (n + colBlockDimC - 1) / colBlockDimC;
41
42 int* dbsrRowPtrA = NULL;
43 int* dbsrColIndA = NULL;
44 float* dbsrValA = NULL;
45
46 HIP_CHECK(hipMalloc((void**)&dbsrRowPtrA, sizeof(int) * (mbA + 1)));
47 HIP_CHECK(hipMalloc((void**)&dbsrColIndA, sizeof(int) * nnzbA));
48 HIP_CHECK(hipMalloc((void**)&dbsrValA, sizeof(float) * rowBlockDimA * colBlockDimA * nnzbA));
49
50 HIP_CHECK(hipMemcpy(dbsrRowPtrA, hbsrRowPtrA, sizeof(int) * (mbA + 1), hipMemcpyHostToDevice));
51 HIP_CHECK(hipMemcpy(dbsrColIndA, hbsrColIndA, sizeof(int) * nnzbA, hipMemcpyHostToDevice));
52 HIP_CHECK(hipMemcpy(dbsrValA,
53 hbsrValA,
54 sizeof(float) * rowBlockDimA * colBlockDimA * nnzbA,
55 hipMemcpyHostToDevice));
56
57 int* dbsrRowPtrC = NULL;
58 HIP_CHECK(hipMalloc((void**)&dbsrRowPtrC, sizeof(int) * (mbC + 1)));
59
60 int bufferSize;
61 HIPSPARSE_CHECK(hipsparseSgebsr2gebsr_bufferSize(handle,
62 dirA,
63 mbA,
64 nbA,
65 nnzbA,
66 descrA,
67 dbsrValA,
68 dbsrRowPtrA,
69 dbsrColIndA,
70 rowBlockDimA,
71 colBlockDimA,
72 rowBlockDimC,
73 colBlockDimC,
74 &bufferSize));
75
76 void* dbuffer = NULL;
77 HIP_CHECK(hipMalloc((void**)&dbuffer, bufferSize));
78
79 int nnzbC;
80 HIPSPARSE_CHECK(hipsparseXgebsr2gebsrNnz(handle,
81 dirA,
82 mbA,
83 nbA,
84 nnzbA,
85 descrA,
86 dbsrRowPtrA,
87 dbsrColIndA,
88 rowBlockDimA,
89 colBlockDimA,
90 descrC,
91 dbsrRowPtrC,
92 rowBlockDimC,
93 colBlockDimC,
94 &nnzbC,
95 dbuffer));
96
97 HIP_CHECK(hipDeviceSynchronize());
98
99 int* dbsrColIndC = NULL;
100 float* dbsrValC = NULL;
101 HIP_CHECK(hipMalloc((void**)&dbsrColIndC, sizeof(int) * nnzbC));
102 HIP_CHECK(hipMalloc((void**)&dbsrValC, sizeof(float) * rowBlockDimC * colBlockDimC * nnzbC));
103
104 HIPSPARSE_CHECK(hipsparseSgebsr2gebsr(handle,
105 dirA,
106 mbA,
107 nbA,
108 nnzbA,
109 descrA,
110 dbsrValA,
111 dbsrRowPtrA,
112 dbsrColIndA,
113 rowBlockDimA,
114 colBlockDimA,
115 descrC,
116 dbsrValC,
117 dbsrRowPtrC,
118 dbsrColIndC,
119 rowBlockDimC,
120 colBlockDimC,
121 dbuffer));
122
123 HIP_CHECK(hipFree(dbsrRowPtrA));
124 HIP_CHECK(hipFree(dbsrColIndA));
125 HIP_CHECK(hipFree(dbsrValA));
126
127 HIP_CHECK(hipFree(dbsrRowPtrC));
128 HIP_CHECK(hipFree(dbsrColIndC));
129 HIP_CHECK(hipFree(dbsrValC));
130
131 HIP_CHECK(hipFree(dbuffer));
132
133 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descrA));
134 HIPSPARSE_CHECK(hipsparseDestroyMatDescr(descrC));
135 HIPSPARSE_CHECK(hipsparseDestroy(handle));
136
137 return 0;
138}
hipsparseXcsru2csr_bufferSizeExt()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXcsru2csr()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
hipsparseXcsr2csru()#
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml
Warning
doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hipsparse/checkouts/7.13.0-preview/projects/hipsparse/docs/doxygen/xml/index.xml