Skip to content
Merged
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
61 changes: 61 additions & 0 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: cmake

on:
pull_request:
branches:
- "mini20"
paths-ignore:
- ".clang-format"
- ".clangd"
- ".gitignore"
- "LICENSE"
- "README.md"
- "docs/**"
- ".github/workflows/xmake.yml"
- "**/xmake.lua"
- "**/*.bazel"
- "**/*.bzl"
- "**/*.bazelrc"

jobs:
build_and_test:
strategy:
matrix:
os: [ubuntu-22.04]

runs-on: ${{ matrix.os }}

concurrency:
group: ${{ github.ref }}-${{ github.base_ref }}-${{ github.head_ref }}-cmake-${{ matrix.os }}
cancel-in-progress: true

steps:
- name: Maximize build space
if: matrix.os == 'ubuntu-22.04'
uses: AdityaGarg8/remove-unwanted-software@v4.1
with:
remove-android: "true"
remove-haskell: "true"
remove-codeql: "true"

- name: Setup cuda
uses: Jimver/cuda-toolkit@v0.2.28
id: cuda-toolkit
with:
cuda: "12.8.1"

- name: Setup ninja and Eigen3 on Ubuntu
if: matrix.os == 'ubuntu-22.04'
run: |
sudo apt update
sudo apt install ninja-build libeigen3-dev -y

- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: true

- name: Build MUDA
run: |
cmake --preset ci-release
cmake --build --preset ci-release --parallel 4
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@ vsxmake2022

# CMake Cache
CMakeBuild/

# IntelliJ IDEA
.idea/
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -109,5 +109,6 @@ if(MUDA_BUILD_EXAMPLE)
endif()

if(MUDA_BUILD_TEST)
enable_testing()
add_subdirectory("test")
endif()
48 changes: 48 additions & 0 deletions CMakePresets.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"version": 6,
"cmakeMinimumRequired": {
"major": 3,
"minor": 20,
"patch": 0
},
"configurePresets": [
{
"name": "config-base",
"displayName": "base Configuration",
"hidden": true,
"description": "Default build using Ninja generator",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"MUDA_FORCE_CHECK": "ON",
"MUDA_WITH_CHECK": "ON",
"MUDA_WITH_COMPUTE_GRAPH": "ON",
"MUDA_WITH_NVTX3": "ON"
}
},
{
"name": "ci-release",
"displayName": "CI-Release Configuration",
"inherits": ["config-base"],
"description": "Configuration for CI builds",
"cacheVariables": {
"MUDA_BUILD_TEST": "ON",
"MUDA_BUILD_EXAMPLE": "OFF",
"CMAKE_CUDA_ARCHITECTURES": "89",
"CMAKE_BUILD_TYPE": "Release"
}
}
],
"buildPresets": [
{
"name": "ci-release",
"configurePreset": "ci-release"
}
],
"testPresets": [
{
"name": "ci-release",
"configurePreset": "ci-release"
}
]
}
2 changes: 1 addition & 1 deletion src/muda/launch/details/parallel_for.inl
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ MUDA_HOST MUDA_NODISCARD auto ParallelFor::as_node_parms(int count, F&& f)
{
using CallableType = raw_type_t<F>;

check_input(count);
// check_input(count);

auto parms = std::make_shared<NodeParms<F>>(std::forward<F>(f), count);
if(m_grid_dim <= 0) // dynamic grid dim
Expand Down
5 changes: 3 additions & 2 deletions src/muda/launch/parallel_for.h
Original file line number Diff line number Diff line change
Expand Up @@ -82,10 +82,10 @@ class ParallelForDetails

private:
template <typename F, typename UserTag>
friend MUDA_GLOBAL void details::parallel_for_kernel(ParallelForCallable<F> f);
friend MUDA_GLOBAL void details::parallel_for_kernel(details::ParallelForCallable<F> f);

template <typename F, typename UserTag>
friend MUDA_GLOBAL void details::grid_stride_loop_kernel(ParallelForCallable<F> f);
friend MUDA_GLOBAL void details::grid_stride_loop_kernel(details::ParallelForCallable<F> f);

MUDA_DEVICE ParallelForDetails(ParallelForType type, int i, int total_num) MUDA_NOEXCEPT
: m_type(type),
Expand Down Expand Up @@ -169,6 +169,7 @@ class ParallelFor : public LaunchBase<ParallelFor>
m_block_dim(blockDim),
m_shared_mem_size(shared_mem_size)
{
std::cout << "[DEBUG]" << "blockDim: " << blockDim << std::endl;
}


Expand Down
2 changes: 2 additions & 0 deletions test/eigen_test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ target_include_directories(muda_eigen_test PRIVATE
target_link_libraries(muda_eigen_test PRIVATE muda Eigen3::Eigen)
source_group(TREE "${PROJECT_SOURCE_DIR}/test" PREFIX "test" FILES ${SOURCE})
source_group(TREE "${PROJECT_SOURCE_DIR}/src" PREFIX "src" FILES ${MUDA_HEADER_FILES})

add_test(NAME muda_eigen_test COMMAND muda_eigen_test)
16 changes: 9 additions & 7 deletions test/linear_system_test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,15 @@ file(GLOB_RECURSE SOURCE
"${CMAKE_CURRENT_SOURCE_DIR}/*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/*.cu"
"${CMAKE_CURRENT_SOURCE_DIR}/*.h")
add_executable(muda_linear_sysytem_test)
target_sources(muda_linear_sysytem_test PRIVATE ${SOURCE} ${MUDA_HEADER_FILES})
target_compile_features(muda_linear_sysytem_test PRIVATE cxx_std_20)
set_target_properties(muda_linear_sysytem_test PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
target_include_directories(muda_linear_sysytem_test PRIVATE
add_executable(muda_linear_system_test)
target_sources(muda_linear_system_test PRIVATE ${SOURCE} ${MUDA_HEADER_FILES})
target_compile_features(muda_linear_system_test PRIVATE cxx_std_20)
set_target_properties(muda_linear_system_test PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
target_include_directories(muda_linear_system_test PRIVATE
"${PROJECT_SOURCE_DIR}/test"
"${PROJECT_SOURCE_DIR}/external")
target_link_libraries(muda_linear_sysytem_test PRIVATE muda cusparse cublas cusolver Eigen3::Eigen)
target_link_libraries(muda_linear_system_test PRIVATE muda cusparse cublas cusolver Eigen3::Eigen)
source_group(TREE "${PROJECT_SOURCE_DIR}/test" PREFIX "test" FILES ${SOURCE})
source_group(TREE "${PROJECT_SOURCE_DIR}/src" PREFIX "src" FILES ${MUDA_HEADER_FILES})
source_group(TREE "${PROJECT_SOURCE_DIR}/src" PREFIX "src" FILES ${MUDA_HEADER_FILES})

add_test(NAME muda_linear_system_test COMMAND muda_linear_system_test)
4 changes: 3 additions & 1 deletion test/spgrid_test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,6 @@ set_target_properties(muda_spgrid_test PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
target_include_directories(muda_spgrid_test PRIVATE
"${PROJECT_SOURCE_DIR}/test"
"${PROJECT_SOURCE_DIR}/external")
target_link_libraries(muda_spgrid_test PRIVATE muda Eigen3::Eigen)
target_link_libraries(muda_spgrid_test PRIVATE muda Eigen3::Eigen)

add_test(NAME muda_spgrid_test COMMAND muda_spgrid_test)
4 changes: 3 additions & 1 deletion test/unit_test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,6 @@ target_include_directories(muda_unit_test PRIVATE
target_link_libraries(muda_unit_test PRIVATE muda cusparse cublas cusolver Eigen3::Eigen)
target_compile_definitions(muda_unit_test PRIVATE "-DMUDA_TEST_DATA_DIR=R\"(${PROJECT_SOURCE_DIR}/test/data)\"")
source_group(TREE "${PROJECT_SOURCE_DIR}/test" PREFIX "test" FILES ${SOURCE})
source_group(TREE "${PROJECT_SOURCE_DIR}/src" PREFIX "src" FILES ${MUDA_HEADER_FILES})
source_group(TREE "${PROJECT_SOURCE_DIR}/src" PREFIX "src" FILES ${MUDA_HEADER_FILES})

add_test(NAME muda_unit_test COMMAND muda_unit_test)