Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions BUILD_TOPOLOGY.toml
Original file line number Diff line number Diff line change
Expand Up @@ -612,6 +612,11 @@ artifact_group = "math-libs"
type = "target-specific"
artifact_deps = ["blas", "prim", "sparse", "host-suite-sparse"]

[artifacts.rocalution]
artifact_group = "math-libs"
type = "target-specific"
artifact_deps = ["core-runtime", "core-hip", "blas", "prim", "rand", "sparse"]

[artifacts.rocwmma]
artifact_group = "math-libs"
type = "target-specific"
Expand Down
11 changes: 11 additions & 0 deletions build_tools/install_rocm_from_artifacts.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
[--rocprofiler-systems | --no-rocprofiler-systems]
[--rocprofiler-systems-examples | --no-rocprofiler-systems-examples]
[--rocrtst | --no-rocrtst]
[--rocalution | --no-rocalution]
[--rocwmma | --no-rocwmma]
[--libhipcxx | --no-libhipcxx]
[--tests | --no-tests]
Expand Down Expand Up @@ -382,6 +383,7 @@ def retrieve_artifacts_by_run_id(args):
args.rocprofiler_systems,
args.rocprofiler_systems_examples,
args.rocrtst,
args.rocalution,
args.rocwmma,
args.libhipcxx,
]
Expand Down Expand Up @@ -487,6 +489,8 @@ def retrieve_artifacts_by_run_id(args):
# rocrtst depends on sysdeps-hwloc (which depends on sysdeps-libpciaccess)
extra_artifacts.append("sysdeps-hwloc")
extra_artifacts.append("sysdeps-libpciaccess")
if args.rocalution:
extra_artifacts.append("rocalution")
if args.rocwmma:
extra_artifacts.append("rocwmma")
argv.append("rocwmma_dev")
Expand Down Expand Up @@ -846,6 +850,13 @@ def main(argv):
action=argparse.BooleanOptionalAction,
)

artifacts_group.add_argument(
"--rocalution",
default=False,
help="Include 'rocalution' artifacts",
action=argparse.BooleanOptionalAction,
)

artifacts_group.add_argument(
"--rocwmma",
default=False,
Expand Down
1 change: 1 addition & 0 deletions docs/development/installing_artifacts.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ Choose one of these options to specify where to install from:
| `--rocdecode` | Flag | Include rocDecode artifacts (Linux only) |
| `--rocjpeg` | Flag | Include rocJPEG artifacts (Linux only) |
| `--rocjitsu` | Flag | Include rocjitsu artifacts (Linux only) |
| `--rocalution` | Flag | Include rocALUTION artifacts |
| `--rocwmma` | Flag | Include rocWMMA artifacts |
| `--tests` | Flag | Include test artifacts for enabled components |

Expand Down
1 change: 1 addition & 0 deletions docs/development/windows_support.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ mainline, in open source, using MSVC, etc.).
| math-libs (BLAS) | [rocSOLVER](https://github.com/ROCm/rocm-libraries/tree/develop/projects/rocsolver) | rocm-libraries | ✅ | |
| math-libs (BLAS) | [hipSOLVER](https://github.com/ROCm/rocm-libraries/tree/develop/projects/hipsolver) | rocm-libraries | ✅ | |
| math-libs (BLAS) | [hipBLAS](https://github.com/ROCm/rocm-libraries/tree/develop/projects/hipblas) | rocm-libraries | ✅ | |
| math-libs | [rocALUTION](https://github.com/ROCm/rocm-libraries/tree/develop/projects/rocalution) | rocm-libraries | ✅ | |
| math-libs | [rocWMMA](https://github.com/ROCm/rocm-libraries/tree/develop/projects/rocwmma) | rocm-libraries | ✅ | |
| math-libs | [Composable Kernel](https://github.com/ROCm/rocm-libraries/tree/develop/projects/composablekernel) | rocm-libraries | ✅ | |
| math-libs | [libhipcxx](https://github.com/ROCm/libhipcxx) | standalone | ✅ | |
Expand Down
52 changes: 52 additions & 0 deletions math-libs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,58 @@ if(THEROCK_ENABLE_ROCWMMA)
)
endif(THEROCK_ENABLE_ROCWMMA)

if(THEROCK_ENABLE_ROCALUTION)
##############################################################################
# rocALUTION
##############################################################################

therock_cmake_subproject_declare(rocALUTION
EXTERNAL_SOURCE_DIR "${THEROCK_ROCM_LIBRARIES_SOURCE_DIR}/projects/rocalution"
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/rocALUTION"
BACKGROUND_BUILD
CMAKE_ARGS
-DHIP_PLATFORM=amd
-DROCM_PATH=
-DROCM_DIR=
-DSUPPORT_HIP=ON
-DSUPPORT_MPI=OFF
-DBUILD_CLIENTS_TESTS=${THEROCK_BUILD_TESTING}
-DBUILD_CLIENTS_BENCHMARKS=OFF
-DBUILD_CLIENTS_SAMPLES=OFF
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON # Needed for Ninja build
CMAKE_INCLUDES
therock_explicit_finders.cmake
COMPILER_TOOLCHAIN
amd-hip
BUILD_DEPS
rocm-cmake
rocPRIM
therock-googletest
Comment on lines +433 to +436

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are build errors on Windows:


[rocALUTION] [67/93] Building CXX object src/CMakeFiles/rocalution.dir/solvers/preconditioners/preconditioner_blockjacobi.cpp.obj
[rocALUTION] [68/93] Building CXX object src/CMakeFiles/rocalution.dir/base/backend_manager.cpp.obj
[rocALUTION] FAILED: src/CMakeFiles/rocalution.dir/base/backend_manager.cpp.obj 
[rocALUTION] ccache B:\build\core\clr\dist\lib\llvm\bin\clang++.exe -DSUPPORT_COMPLEX -Drocalution_EXPORTS -IB:/build/math-libs/rocALUTION/build/include -DWIN32 -DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_WARNINGS -DNOMINMAX -fms-extensions -fms-compatibility -D_ENABLE_EXTENDED_ALIGNED_STORAGE  -resource-dir B:/build/core/clr/dist/lib/llvm/lib/clang/23 -Wno-documentation-unknown-command -Wno-documentation-pedantic -Wno-unused-command-line-argument -Wno-explicit-specialization-storage-class -Wno-ignored-attributes -Wno-unknown-attributes -Wno-duplicate-decl-specifier --hip-path=B:/build/core/clr/dist --hip-device-lib-path=B:/build/core/clr/dist/lib/llvm/amdgcn/bitcode -O3 -DNDEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrt -std=c++17 -fvisibility-inlines-hidden -O3 -fopenmp=libomp -MD -MT src/CMakeFiles/rocalution.dir/base/backend_manager.cpp.obj -MF src\CMakeFiles\rocalution.dir\base\backend_manager.cpp.obj.d -o src/CMakeFiles/rocalution.dir/base/backend_manager.cpp.obj -c C:/home/runner/_work/TheRock/TheRock/rocm-libraries/projects/rocalution/src/base/backend_manager.cpp
[rocALUTION] C:/home/runner/_work/TheRock/TheRock/rocm-libraries/projects/rocalution/src/base/backend_manager.cpp:161:56: error: use of undeclared identifier 'omp_get_max_active_levels'
[rocALUTION]   161 |         _get_backend_descriptor()->OpenMP_def_nested = omp_get_max_active_levels();
[rocALUTION]       |                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~
[rocALUTION] C:/home/runner/_work/TheRock/TheRock/rocm-libraries/projects/rocalution/src/base/backend_manager.cpp:168:9: error: use of undeclared identifier 'omp_set_max_active_levels'
[rocALUTION]   168 |         omp_set_max_active_levels(0);
[rocALUTION]       |         ^~~~~~~~~~~~~~~~~~~~~~~~~
[rocALUTION] C:/home/runner/_work/TheRock/TheRock/rocm-libraries/projects/rocalution/src/base/backend_manager.cpp:240:9: error: use of undeclared identifier 'omp_set_max_active_levels'
[rocALUTION]   240 |         omp_set_max_active_levels(_get_backend_descriptor()->OpenMP_def_nested);
[rocALUTION]       |         ^~~~~~~~~~~~~~~~~~~~~~~~~

[rocALUTION] 3 errors generated.

[rocALUTION] [69/93] Building CXX object clients/tests/CMakeFiles/rocalution-test.dir/test_preconditioner.cpp.obj
[rocALUTION] FAILED: clients/tests/CMakeFiles/rocalution-test.dir/test_preconditioner.cpp.obj 
[rocALUTION] ccache B:\build\core\clr\dist\lib\llvm\bin\clang++.exe -DGOOGLE_TEST -IC:/home/runner/_work/TheRock/TheRock/rocm-libraries/projects/rocalution/clients/tests/../include -IB:/build/math-libs/rocALUTION/build/include -DWIN32 -DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_WARNINGS -DNOMINMAX -fms-extensions -fms-compatibility -D_ENABLE_EXTENDED_ALIGNED_STORAGE  -resource-dir B:/build/core/clr/dist/lib/llvm/lib/clang/23 -Wno-documentation-unknown-command -Wno-documentation-pedantic -Wno-unused-command-line-argument -Wno-explicit-specialization-storage-class -Wno-ignored-attributes -Wno-unknown-attributes -Wno-duplicate-decl-specifier --hip-path=B:/build/core/clr/dist --hip-device-lib-path=B:/build/core/clr/dist/lib/llvm/amdgcn/bitcode -O3 -DNDEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrt -std=c++14 -MD -MT clients/tests/CMakeFiles/rocalution-test.dir/test_preconditioner.cpp.obj -MF clients\tests\CMakeFiles\rocalution-test.dir\test_preconditioner.cpp.obj.d -o clients/tests/CMakeFiles/rocalution-test.dir/test_preconditioner.cpp.obj -c C:/home/runner/_work/TheRock/TheRock/rocm-libraries/projects/rocalution/clients/tests/test_preconditioner.cpp
[rocALUTION] In file included from C:/home/runner/_work/TheRock/TheRock/rocm-libraries/projects/rocalution/clients/tests/test_preconditioner.cpp:24:
[rocALUTION] C:/home/runner/_work/TheRock/TheRock/rocm-libraries/projects/rocalution/clients/tests/../include\testing_preconditioner.hpp:28:10: fatal error: 'gtest/gtest.h' file not found

[rocALUTION]    28 | #include <gtest/gtest.h>

[rocALUTION]       |          ^~~~~~~~~~~~~~~

[rocALUTION] 1 error generated.

This therock-googletest build dep seems like it should be correct. OpenMP may be trickier, I'd need to check where that is expected to come from...

We might want to start with rocALUTION only enabled on Linux to start bringup one platform at a time.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, this also fails on Linux:


[rocALUTION] [116/116] Linking CXX executable clients/staging/rocalution-test
[rocALUTION] FAILED: clients/staging/rocalution-test 
[rocALUTION] : && /__w/TheRock/TheRock/build/core/clr/dist/lib/llvm/bin/clang++ -resource-dir /__w/TheRock/TheRock/build/core/clr/dist/lib/llvm/lib/clang/23 -Wno-documentation-unknown-command -Wno-documentation-pedantic -Wno-unused-command-line-argument -Wno-explicit-specialization-storage-class --hip-path=/__w/TheRock/TheRock/build/core/clr/dist --hip-device-lib-path=/__w/TheRock/TheRock/build/core/clr/dist/lib/llvm/amdgcn/bitcode -O3 -DNDEBUG -L/__w/TheRock/TheRock/build/third-party/sysdeps/linux/zlib/build/stage/lib/rocm_sysdeps/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/third-party/sysdeps/linux/zlib/build/stage/lib/rocm_sysdeps/lib -L/__w/TheRock/TheRock/build/third-party/sysdeps/linux/zstd/build/stage/lib/rocm_sysdeps/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/third-party/sysdeps/linux/zstd/build/stage/lib/rocm_sysdeps/lib -L/__w/TheRock/TheRock/build/third-party/sysdeps/linux/numactl/build/stage/lib/rocm_sysdeps/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/third-party/sysdeps/linux/numactl/build/stage/lib/rocm_sysdeps/lib -L/__w/TheRock/TheRock/build/third-party/sysdeps/linux/bzip2/build/stage/lib/rocm_sysdeps/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/third-party/sysdeps/linux/bzip2/build/stage/lib/rocm_sysdeps/lib -L/__w/TheRock/TheRock/build/third-party/sysdeps/linux/liblzma/build/stage/lib/rocm_sysdeps/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/third-party/sysdeps/linux/liblzma/build/stage/lib/rocm_sysdeps/lib -L/__w/TheRock/TheRock/build/third-party/sysdeps/linux/elfutils/build/stage/lib/rocm_sysdeps/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/third-party/sysdeps/linux/elfutils/build/stage/lib/rocm_sysdeps/lib -L/__w/TheRock/TheRock/build/third-party/sysdeps/linux/libdrm/build/stage/lib/rocm_sysdeps/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/third-party/sysdeps/linux/libdrm/build/stage/lib/rocm_sysdeps/lib -L/__w/TheRock/TheRock/build/compiler/amd-llvm/stage/lib/llvm/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/compiler/amd-llvm/stage/lib/llvm/lib -L/__w/TheRock/TheRock/build/compiler/amd-comgr/stage/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/compiler/amd-comgr/stage/lib -L/__w/TheRock/TheRock/build/core/rocm-kpack/stage/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/core/rocm-kpack/stage/lib -L/__w/TheRock/TheRock/build/base/rocprofiler-register/stage/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/base/rocprofiler-register/stage/lib -L/__w/TheRock/TheRock/build/core/ROCR-Runtime/stage/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/core/ROCR-Runtime/stage/lib -L/__w/TheRock/TheRock/build/core/clr/stage/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/core/clr/stage/lib -L/__w/TheRock/TheRock/build/third-party/host-blas/host-blas/stage/lib/host-math/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/third-party/host-blas/host-blas/stage/lib/host-math/lib -L/__w/TheRock/TheRock/build/profiler/roctracer/stage/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/profiler/roctracer/stage/lib -L/__w/TheRock/TheRock/build/profiler/aqlprofile/stage/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/profiler/aqlprofile/stage/lib -L/__w/TheRock/TheRock/build/third-party/sysdeps/linux/sqlite3/build/stage/lib/rocm_sysdeps/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/third-party/sysdeps/linux/sqlite3/build/stage/lib/rocm_sysdeps/lib -L/__w/TheRock/TheRock/build/profiler/rocprofiler-sdk/stage/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/profiler/rocprofiler-sdk/stage/lib -L/__w/TheRock/TheRock/build/profiler/rocprofiler-sdk/stage/lib/rocm_sysdeps/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/profiler/rocprofiler-sdk/stage/lib/rocm_sysdeps/lib -L/__w/TheRock/TheRock/build/third-party/sysdeps/linux/libmnl/build/stage/lib/rocm_sysdeps/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/third-party/sysdeps/linux/libmnl/build/stage/lib/rocm_sysdeps/lib -L/__w/TheRock/TheRock/build/third-party/sysdeps/linux/libnl/build/stage/lib/rocm_sysdeps/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/third-party/sysdeps/linux/libnl/build/stage/lib/rocm_sysdeps/lib -L/__w/TheRock/TheRock/build/base/rocm_smi_lib/stage/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/base/rocm_smi_lib/stage/lib -L/__w/TheRock/TheRock/build/third-party/host-blas/host-blas64/stage/lib/host-math/lib -Wl,-rpath-link,/__w/TheRock/TheRock/build/third-party/host-blas/host-blas64/stage/lib/host-math/lib clients/tests/CMakeFiles/rocalution-test.dir/rocalution_host_gtest_main.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_qr.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_lu.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_inversion.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_backend.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_bicgstab.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_bicgstabl.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_cg.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_cr.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_fcg.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_fgmres.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_gmres.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_idr.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_qmrcgstab.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_pairwise_amg.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_ruge_stueben_amg.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_saamg.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_uaamg.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_preconditioner.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_itersolver.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_chebyshev.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_mixed_precision.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_local_matrix.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_local_matrix_multicoloring.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_local_matrix_itsolve.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_local_matrix_solve.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_local_stencil.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/test_local_vector.cpp.o clients/tests/CMakeFiles/rocalution-test.dir/__/include/random.cpp.o -o clients/staging/rocalution-test  -Wl,-rpath,"\$ORIGIN/../lib/rocm_sysdeps/lib:\$ORIGIN/../lib/llvm/lib:\$ORIGIN/../lib:\$ORIGIN/../lib/host-math/lib"  src/librocalution.so.1.0  -lpthread  -Wl,-rpath-link,/__w/TheRock/TheRock/build/math-libs/rocALUTION/build/src:/__w/TheRock/TheRock/build/math-libs/BLAS/rocSPARSE/dist/lib:/__w/TheRock/TheRock/build/math-libs/BLAS/rocBLAS/dist/lib:/__w/TheRock/TheRock/build/math-libs/rocRAND/dist/lib:/__w/TheRock/TheRock/build/core/clr/dist/lib && :
[rocALUTION] ld.lld: error: undefined symbol: testing::InitGoogleTest(int*, char**)
[rocALUTION] >>> referenced by rocalution_host_gtest_main.cpp
[rocALUTION] >>>               clients/tests/CMakeFiles/rocalution-test.dir/rocalution_host_gtest_main.cpp.o:(main)
[rocALUTION] 
[rocALUTION] ld.lld: error: undefined symbol: testing::FLAGS_gtest_death_test_style[abi:cxx11]
[rocALUTION] >>> referenced by rocalution_host_gtest_main.cpp
[rocALUTION] >>>               clients/tests/CMakeFiles/rocalution-test.dir/rocalution_host_gtest_main.cpp.o:(main)
[rocALUTION] 
[rocALUTION] ld.lld: error: undefined symbol: testing::UnitTest::GetInstance()

RUNTIME_DEPS
hip-clr
rocBLAS
rocSPARSE
rocRAND
)
therock_cmake_subproject_glob_c_sources(rocALUTION
SUBDIRS
.
)
therock_cmake_subproject_provide_package(rocALUTION rocalution lib/cmake/rocalution)
therock_cmake_subproject_activate(rocALUTION)

therock_provide_artifact(rocalution
DESCRIPTOR artifact-rocalution.toml
COMPONENTS
dbg
dev
lib
test
SUBPROJECT_DEPS
rocALUTION
)
endif(THEROCK_ENABLE_ROCALUTION)

if(THEROCK_ENABLE_LIBHIPCXX)
##############################################################################
# libhipcxx
Expand Down
19 changes: 19 additions & 0 deletions math-libs/artifact-rocalution.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# rocALUTION
[components.lib."math-libs/rocALUTION/stage"]
optional = true
[components.dbg."math-libs/rocALUTION/stage"]
optional = true
[components.dev."math-libs/rocALUTION/stage"]
include = [
"include/rocalution/*",
"include/rocalution/**",
"lib/cmake/rocalution/*",
]
[components.test."math-libs/rocALUTION/stage"]
optional = true
include = [
# Clients tests (test_runner runs ctest from bin/rocalution/; needs CTestTestfile.cmake)
"bin/rocalution/**",
"bin/rocalution-test*",
"bin/*_rtest.xml",
]
Loading