mirror of
https://gitlab.kitware.com/vtk/vtk-m
synced 2024-10-05 01:49:02 +00:00
Compare commits
15 Commits
1e7659aca5
...
f0b7075b48
Author | SHA1 | Date | |
---|---|---|---|
|
f0b7075b48 | ||
|
fc570a75a5 | ||
|
cb07d8400c | ||
|
f610044d79 | ||
|
9c0a3aef31 | ||
|
6f5f654878 | ||
|
743a7c3ac4 | ||
|
b6a0e4d79b | ||
|
726bd0b551 | ||
|
c6f0e36986 | ||
|
638d183567 | ||
|
1078d7dfb4 | ||
|
fae6ef8c93 | ||
|
8b87ae192f | ||
|
99900576c5 |
@ -69,8 +69,8 @@
|
||||
extends:
|
||||
- .docker_image
|
||||
|
||||
.ubuntu2004_hip_kokkos: &ubuntu2004_hip_kokkos
|
||||
image: "kitware/vtkm:ci-ubuntu2004_hip_kokkos-20230220"
|
||||
.ubuntu2204_hip_kokkos: &ubuntu2204_hip_kokkos
|
||||
image: "kitware/vtkm:ci-ubuntu2204_hip_kokkos-20240625"
|
||||
extends:
|
||||
- .docker_image
|
||||
|
||||
@ -245,4 +245,5 @@ include:
|
||||
- local: '/.gitlab/ci/ubuntu1604.yml'
|
||||
- local: '/.gitlab/ci/ubuntu1804.yml'
|
||||
- local: '/.gitlab/ci/ubuntu2004.yml'
|
||||
- local: '/.gitlab/ci/ubuntu2204.yml'
|
||||
- local: '/.gitlab/ci/windows10.yml'
|
||||
|
@ -10,7 +10,7 @@
|
||||
##
|
||||
##=============================================================================
|
||||
|
||||
FROM rocm/dev-ubuntu-20.04
|
||||
FROM rocm/dev-ubuntu-22.04
|
||||
LABEL maintainer "Vicente Adolfo Bolea Sanchez<vicente.bolea@gmail.com>"
|
||||
|
||||
# Base dependencies for building VTK-m projects
|
||||
@ -58,11 +58,22 @@ ENV PATH "/opt/cmake/bin:${PATH}"
|
||||
ENV CMAKE_PREFIX_PATH "/opt/rocm/lib/cmake:/opt/rocm/lib:${CMAKE_PREFIX_PATH}"
|
||||
ENV CMAKE_GENERATOR "Ninja"
|
||||
|
||||
# Build and install Kokkos
|
||||
ARG KOKKOS_VERSION=3.7.01
|
||||
ENV KOKKOS_VERSION=3.7.01
|
||||
COPY kokkos_cmake_config.cmake kokkos_cmake_config.cmake
|
||||
RUN curl -L https://github.com/kokkos/kokkos/archive/refs/tags/$KOKKOS_VERSION.tar.gz | tar -xzf - && \
|
||||
cmake -S kokkos-$KOKKOS_VERSION -B build -C kokkos_cmake_config.cmake && \
|
||||
cmake -S kokkos-$KOKKOS_VERSION -B build -C kokkos_cmake_config.cmake \
|
||||
-DCMAKE_PREFIX_INSTALL=/opt/kokkos/$KOKKOS_VERSION \
|
||||
-DKokkos_ARCH_VEGA900=ON && \
|
||||
cmake --build build -v && \
|
||||
cmake --install build && \
|
||||
rm -rf build kokkos-$KOKKOS_VERSION
|
||||
|
||||
ENV KOKKOS_VERSION=4.3.01
|
||||
COPY kokkos_cmake_config.cmake kokkos_cmake_config.cmake
|
||||
RUN curl -L https://github.com/kokkos/kokkos/archive/refs/tags/$KOKKOS_VERSION.tar.gz | tar -xzf - && \
|
||||
cmake -S kokkos-$KOKKOS_VERSION -B build -C kokkos_cmake_config.cmake \
|
||||
-DCMAKE_PREFIX_INSTALL=/opt/kokkos/$KOKKOS_VERSION \
|
||||
-DKokkos_ARCH_VEGA906=ON && \
|
||||
cmake --build build -v && \
|
||||
cmake --install build && \
|
||||
rm -rf build kokkos-$KOKKOS_VERSION
|
@ -9,13 +9,10 @@
|
||||
##============================================================================
|
||||
|
||||
set(CMAKE_BUILD_TYPE "release" CACHE STRING "")
|
||||
set(CMAKE_INSTALL_PREFIX /opt/kokkos CACHE PATH "")
|
||||
set(CMAKE_C_COMPILER /opt/rocm/llvm/bin/clang CACHE FILEPATH "")
|
||||
set(CMAKE_CXX_COMPILER /opt/rocm/llvm/bin/clang++ CACHE FILEPATH "")
|
||||
set(CMAKE_CXX_STANDARD "14" CACHE STRING "")
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON CACHE BOOL "")
|
||||
|
||||
set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "")
|
||||
set(Kokkos_ARCH_VEGA900 ON CACHE BOOL "")
|
||||
set(Kokkos_ENABLE_HIP ON CACHE BOOL "")
|
||||
set(Kokkos_ENABLE_HIP_RELOCATABLE_DEVICE_CODE OFF CACHE BOOL "")
|
@ -196,7 +196,7 @@ test:ubuntu1804_clang8:
|
||||
|
||||
# Build on ubuntu1804 with kokkos and test on ubuntu1804
|
||||
# Uses CUDA 11
|
||||
build:ubuntu1804_kokkos:
|
||||
build:ubuntu1804_kokkos37:
|
||||
tags:
|
||||
- build
|
||||
- vtkm
|
||||
@ -212,7 +212,7 @@ build:ubuntu1804_kokkos:
|
||||
CMAKE_BUILD_TYPE: Release
|
||||
VTKM_SETTINGS: "benchmarks+kokkos+turing+64bit_floats+shared"
|
||||
|
||||
test:ubuntu1804_kokkos:
|
||||
test:ubuntu1804_kokkos37:
|
||||
tags:
|
||||
- test
|
||||
- vtkm
|
||||
@ -225,9 +225,9 @@ test:ubuntu1804_kokkos:
|
||||
- .cmake_test_linux
|
||||
- .run_automatically
|
||||
dependencies:
|
||||
- build:ubuntu1804_kokkos
|
||||
- build:ubuntu1804_kokkos37
|
||||
needs:
|
||||
- build:ubuntu1804_kokkos
|
||||
- build:ubuntu1804_kokkos37
|
||||
|
||||
build:ubuntu1804_cuda_perftest:
|
||||
tags:
|
||||
|
@ -10,7 +10,7 @@
|
||||
##
|
||||
##=============================================================================
|
||||
|
||||
build:ubuntu2004_kokkos:
|
||||
build:ubuntu2004_kokkos37:
|
||||
tags:
|
||||
- build
|
||||
- vtkm
|
||||
@ -25,7 +25,7 @@ build:ubuntu2004_kokkos:
|
||||
CMAKE_PREFIX_PATH: "/opt/anari"
|
||||
VTKM_SETTINGS: "kokkos+shared+64bit_floats+rendering+anari"
|
||||
|
||||
test:ubuntu2004_kokkos:
|
||||
test:ubuntu2004_kokkos37:
|
||||
tags:
|
||||
- test
|
||||
- vtkm
|
||||
@ -36,55 +36,6 @@ test:ubuntu2004_kokkos:
|
||||
- .cmake_test_linux
|
||||
- .run_automatically
|
||||
dependencies:
|
||||
- build:ubuntu2004_kokkos
|
||||
- build:ubuntu2004_kokkos37
|
||||
needs:
|
||||
- build:ubuntu2004_kokkos
|
||||
|
||||
build:ubuntu2004_hip_kokkos:
|
||||
tags:
|
||||
- vtkm
|
||||
- docker
|
||||
- linux-x86_64
|
||||
- radeon
|
||||
extends:
|
||||
- .ubuntu2004_hip_kokkos
|
||||
- .cmake_build_linux
|
||||
- .run_automatically
|
||||
variables:
|
||||
CMAKE_BUILD_TYPE: "RelWithDebInfo"
|
||||
VTKM_SETTINGS: "benchmarks+kokkos+hip+no_rendering+ccache"
|
||||
|
||||
CMAKE_PREFIX_PATH: "/opt/rocm/lib/cmake"
|
||||
LD_LIBRARY_PATH: "/opt/rocm/lib"
|
||||
CMAKE_HIP_COMPILER: "/opt/rocm/llvm/bin/clang++"
|
||||
Kokkos_CXX_COMPILER: "/opt/rocm/llvm/bin/clang++"
|
||||
CMAKE_HIP_ARCHITECTURES: "gfx900"
|
||||
|
||||
# -isystem= is not affected by CCACHE_BASEDIR, thus we must ignore it
|
||||
CCACHE_IGNOREOPTIONS: "-isystem=*"
|
||||
CCACHE_BASEDIR: "$CI_PROJECT_DIR"
|
||||
CCACHE_COMPILERCHECK: "content"
|
||||
CCACHE_NOHASHDIR: "true"
|
||||
CCACHE_RESHARE: "true"
|
||||
after_script:
|
||||
- ccache -v -s
|
||||
- ccache -z
|
||||
|
||||
test:ubuntu2004_hip_kokkos:
|
||||
tags:
|
||||
- vtkm
|
||||
- docker
|
||||
- linux-x86_64
|
||||
- radeon
|
||||
extends:
|
||||
- .ubuntu2004_hip_kokkos
|
||||
- .cmake_test_linux
|
||||
- .run_upstream_branches
|
||||
variables:
|
||||
CTEST_MAX_PARALLELISM: 1
|
||||
CTEST_EXCLUSIONS: "UnitTestWorkletParticleAdvection"
|
||||
dependencies:
|
||||
- build:ubuntu2004_hip_kokkos
|
||||
needs:
|
||||
- build:ubuntu2004_hip_kokkos
|
||||
timeout: 3 hours
|
||||
- build:ubuntu2004_kokkos37
|
||||
|
85
.gitlab/ci/ubuntu2204.yml
Normal file
85
.gitlab/ci/ubuntu2204.yml
Normal file
@ -0,0 +1,85 @@
|
||||
##=============================================================================
|
||||
##
|
||||
## Copyright (c) Kitware, Inc.
|
||||
## All rights reserved.
|
||||
## See LICENSE.txt for details.
|
||||
##
|
||||
## This software is distributed WITHOUT ANY WARRANTY; without even
|
||||
## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
## PURPOSE. See the above copyright notice for more information.
|
||||
##
|
||||
##=============================================================================
|
||||
|
||||
.kokkos_rocm_vars: &kokkos_rocm_vars
|
||||
variables:
|
||||
CCACHE_BASEDIR: "$CI_PROJECT_DIR"
|
||||
CCACHE_COMPILERCHECK: "content"
|
||||
# -isystem= is not affected by CCACHE_BASEDIR, thus we must ignore it
|
||||
CCACHE_IGNOREOPTIONS: "-isystem=*"
|
||||
CCACHE_NOHASHDIR: "true"
|
||||
CCACHE_RESHARE: "true"
|
||||
|
||||
CMAKE_BUILD_TYPE: "RelWithDebInfo"
|
||||
CMAKE_HIP_COMPILER: "/opt/rocm/llvm/bin/clang++"
|
||||
Kokkos_CXX_COMPILER: "/opt/rocm/llvm/bin/clang++"
|
||||
LD_LIBRARY_PATH: "/opt/rocm/lib"
|
||||
CXX: "hipcc"
|
||||
|
||||
build:ubuntu2204_hip_kokkos37:
|
||||
tags:
|
||||
- vtkm
|
||||
- docker
|
||||
- linux-x86_64
|
||||
- radeon
|
||||
extends:
|
||||
- .ubuntu2204_hip_kokkos
|
||||
- .cmake_build_linux
|
||||
- .kokkos_rocm_vars
|
||||
- .run_automatically
|
||||
variables:
|
||||
CMAKE_BUILD_TYPE: "RelWithDebInfo"
|
||||
CMAKE_HIP_ARCHITECTURES: "gfx900"
|
||||
Kokkos_DIR: "/opt/kokkos/3.7.01/"
|
||||
VTKM_SETTINGS: "benchmarks+kokkos+hip+no_rendering+ccache"
|
||||
after_script:
|
||||
- ccache -v -s
|
||||
- ccache -z
|
||||
|
||||
test:ubuntu2204_hip_kokkos37:
|
||||
tags:
|
||||
- vtkm
|
||||
- docker
|
||||
- linux-x86_64
|
||||
- radeon
|
||||
extends:
|
||||
- .ubuntu2204_hip_kokkos
|
||||
- .cmake_test_linux
|
||||
- .run_upstream_branches
|
||||
variables:
|
||||
CTEST_MAX_PARALLELISM: 1
|
||||
CTEST_EXCLUSIONS: "UnitTestWorkletParticleAdvection"
|
||||
dependencies:
|
||||
- build:ubuntu2204_hip_kokkos37
|
||||
needs:
|
||||
- build:ubuntu2204_hip_kokkos37
|
||||
timeout: 3 hours
|
||||
|
||||
build:ubuntu2204_hip_kokkos43:
|
||||
tags:
|
||||
- vtkm
|
||||
- docker
|
||||
- linux-x86_64
|
||||
- radeon
|
||||
extends:
|
||||
- .ubuntu2204_hip_kokkos
|
||||
- .cmake_build_linux
|
||||
- .kokkos_rocm_vars
|
||||
- .run_automatically
|
||||
variables:
|
||||
CMAKE_BUILD_TYPE: "RelWithDebInfo"
|
||||
CMAKE_HIP_ARCHITECTURES: "gfx906"
|
||||
Kokkos_DIR: "/opt/kokkos/4.3.01/"
|
||||
VTKM_SETTINGS: "benchmarks+kokkos+hip+no_rendering+ccache"
|
||||
after_script:
|
||||
- ccache -v -s
|
||||
- ccache -z
|
@ -81,6 +81,8 @@ Optional dependencies are:
|
||||
|
||||
+ Kokkos Device Adapter
|
||||
+ [Kokkos](https://kokkos.github.io/) 3.7+
|
||||
+ CXX env variable or CMAKE_CXX_COMPILER should be set to
|
||||
hipcc when using Kokkos device adapter with HIP (ROCM>=6).
|
||||
+ CUDA Device Adapter
|
||||
+ [Cuda Toolkit 9.2, >= 10.2](https://developer.nvidia.com/cuda-toolkit)
|
||||
+ Note CUDA >= 10.2 is required on Windows
|
||||
|
@ -155,6 +155,110 @@ private:
|
||||
std::vector<std::string> mCLOptions;
|
||||
};
|
||||
|
||||
void ComputeGlobalPointDimensions(vtkm::cont::PartitionedDataSet& pds)
|
||||
{
|
||||
// Compute GlobalPointDimensions as maximum of GlobalPointIndexStart + PointDimensions
|
||||
// for each dimension across all blocks
|
||||
|
||||
// Compute GlobalPointDimensions for all data sets on this MPI rank
|
||||
std::vector<vtkm::Id> globalPointDimensionsThisRank;
|
||||
using ds_const_iterator = vtkm::cont::PartitionedDataSet::const_iterator;
|
||||
for (ds_const_iterator ds_it = pds.cbegin(); ds_it != pds.cend(); ++ds_it)
|
||||
{
|
||||
ds_it->GetCellSet().CastAndCallForTypes<vtkm::cont::CellSetListStructured>(
|
||||
[&globalPointDimensionsThisRank](const auto& css) {
|
||||
globalPointDimensionsThisRank.resize(css.Dimension, -1);
|
||||
for (vtkm::IdComponent d = 0; d < css.Dimension; ++d)
|
||||
{
|
||||
globalPointDimensionsThisRank[d] =
|
||||
std::max(globalPointDimensionsThisRank[d],
|
||||
css.GetGlobalPointIndexStart()[d] + css.GetPointDimensions()[d]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Perform global reduction to find GlobalPointDimensions across all ranks
|
||||
std::vector<vtkm::Id> globalPointDimensions;
|
||||
auto comm = vtkm::cont::EnvironmentTracker::GetCommunicator();
|
||||
vtkmdiy::mpi::all_reduce(
|
||||
comm, globalPointDimensionsThisRank, globalPointDimensions, vtkmdiy::mpi::maximum<vtkm::Id>{});
|
||||
|
||||
// Set this information in all cell sets
|
||||
using ds_iterator = vtkm::cont::PartitionedDataSet::iterator;
|
||||
for (ds_iterator ds_it = pds.begin(); ds_it != pds.end(); ++ds_it)
|
||||
{
|
||||
// This does not work, i.e., it does not really change the cell set for the DataSet
|
||||
ds_it->GetCellSet().CastAndCallForTypes<vtkm::cont::CellSetListStructured>(
|
||||
[&globalPointDimensions, &ds_it](auto& css) {
|
||||
typename std::remove_reference_t<decltype(css)>::SchedulingRangeType gpd;
|
||||
for (vtkm::IdComponent d = 0; d < css.Dimension; ++d)
|
||||
{
|
||||
gpd[d] = globalPointDimensions[d];
|
||||
}
|
||||
css.SetGlobalPointDimensions(gpd);
|
||||
// Why is the following necessary? Shouldn't it be sufficient to update the
|
||||
// CellSet through the reference?
|
||||
ds_it->SetCellSet(css);
|
||||
});
|
||||
}
|
||||
|
||||
// Debug
|
||||
pds.PrintSummary(std::cout);
|
||||
}
|
||||
void ShiftLogicalOriginToZero(vtkm::cont::PartitionedDataSet& pds)
|
||||
{
|
||||
// Shift the logical origin (minimum of LocalPointIndexStart) to zero
|
||||
// along each dimension
|
||||
|
||||
// Compute minimum global point index start for all data sets on this MPI rank
|
||||
std::vector<vtkm::Id> minimumGlobalPointIndexStartThisRank;
|
||||
using ds_const_iterator = vtkm::cont::PartitionedDataSet::const_iterator;
|
||||
for (ds_const_iterator ds_it = pds.cbegin(); ds_it != pds.cend(); ++ds_it)
|
||||
{
|
||||
ds_it->GetCellSet().CastAndCallForTypes<vtkm::cont::CellSetListStructured>(
|
||||
[&minimumGlobalPointIndexStartThisRank](const auto& css) {
|
||||
minimumGlobalPointIndexStartThisRank.resize(css.Dimension,
|
||||
std::numeric_limits<vtkm::Id>::max());
|
||||
for (vtkm::IdComponent d = 0; d < css.Dimension; ++d)
|
||||
{
|
||||
minimumGlobalPointIndexStartThisRank[d] =
|
||||
std::min(minimumGlobalPointIndexStartThisRank[d], css.GetGlobalPointIndexStart()[d]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Perform global reduction to find GlobalPointDimensions across all ranks
|
||||
std::vector<vtkm::Id> minimumGlobalPointIndexStart;
|
||||
auto comm = vtkm::cont::EnvironmentTracker::GetCommunicator();
|
||||
vtkmdiy::mpi::all_reduce(comm,
|
||||
minimumGlobalPointIndexStartThisRank,
|
||||
minimumGlobalPointIndexStart,
|
||||
vtkmdiy::mpi::minimum<vtkm::Id>{});
|
||||
|
||||
// Shift all cell sets so that minimum global point index start
|
||||
// along each dimension is zero
|
||||
using ds_iterator = vtkm::cont::PartitionedDataSet::iterator;
|
||||
for (ds_iterator ds_it = pds.begin(); ds_it != pds.end(); ++ds_it)
|
||||
{
|
||||
// This does not work, i.e., it does not really change the cell set for the DataSet
|
||||
ds_it->GetCellSet().CastAndCallForTypes<vtkm::cont::CellSetListStructured>(
|
||||
[&minimumGlobalPointIndexStart, &ds_it](auto& css) {
|
||||
auto pointIndexStart = css.GetGlobalPointIndexStart();
|
||||
typename std::remove_reference_t<decltype(css)>::SchedulingRangeType shiftedPointIndexStart;
|
||||
for (vtkm::IdComponent d = 0; d < css.Dimension; ++d)
|
||||
{
|
||||
shiftedPointIndexStart[d] = pointIndexStart[d] - minimumGlobalPointIndexStart[d];
|
||||
}
|
||||
css.SetGlobalPointIndexStart(shiftedPointIndexStart);
|
||||
// Why is the following necessary? Shouldn't it be sufficient to update the
|
||||
// CellSet through the reference?
|
||||
ds_it->SetCellSet(css);
|
||||
});
|
||||
}
|
||||
|
||||
// Debug
|
||||
//pds.PrintSummary(std::cout);
|
||||
}
|
||||
|
||||
// Compute and render an isosurface for a uniform grid example
|
||||
int main(int argc, char* argv[])
|
||||
@ -652,6 +756,8 @@ int main(int argc, char* argv[])
|
||||
filter.SetActiveField("values");
|
||||
|
||||
// Execute the contour tree analysis
|
||||
ShiftLogicalOriginToZero(useDataSet);
|
||||
ComputeGlobalPointDimensions(useDataSet);
|
||||
auto result = filter.Execute(useDataSet);
|
||||
|
||||
currTime = totalTime.GetElapsedTime();
|
||||
|
@ -346,7 +346,8 @@ bool read3DHDF5File(const int& mpi_rank,
|
||||
ds = dsb.Create(v_dims, v_origin, v_spacing);
|
||||
vtkm::cont::CellSetStructured<3> cs;
|
||||
cs.SetPointDimensions(v_dims);
|
||||
cs.SetGlobalPointDimensions(globalSize);
|
||||
// NOTE: Comment out for test purposes
|
||||
//cs.SetGlobalPointDimensions(globalSize);
|
||||
cs.SetGlobalPointIndexStart(vtkm::Id3{ v_origin[0], v_origin[1], v_origin[2] });
|
||||
ds.SetCellSet(cs);
|
||||
|
||||
@ -587,7 +588,8 @@ bool readPreSplitFiles(const int& rank,
|
||||
ds = dsb.Create(v_dims, v_origin, v_spacing);
|
||||
vtkm::cont::CellSetStructured<2> cs;
|
||||
cs.SetPointDimensions(v_dims);
|
||||
cs.SetGlobalPointDimensions(vtkm::Id2{ globalSize[0], globalSize[1] });
|
||||
// NOTE: Comment out for test purposes
|
||||
//cs.SetGlobalPointDimensions(vtkm::Id2{ globalSize[0], globalSize[1] });
|
||||
cs.SetGlobalPointIndexStart(vtkm::Id2{ offset[0], offset[1] });
|
||||
ds.SetCellSet(cs);
|
||||
}
|
||||
@ -604,7 +606,8 @@ bool readPreSplitFiles(const int& rank,
|
||||
ds = dsb.Create(v_dims, v_origin, v_spacing);
|
||||
vtkm::cont::CellSetStructured<3> cs;
|
||||
cs.SetPointDimensions(v_dims);
|
||||
cs.SetGlobalPointDimensions(globalSize);
|
||||
// NOTE: Comment out for test purposes
|
||||
//cs.SetGlobalPointDimensions(globalSize);
|
||||
cs.SetGlobalPointIndexStart(vtkm::Id3{ offset[0], offset[1], offset[2] });
|
||||
ds.SetCellSet(cs);
|
||||
}
|
||||
@ -815,7 +818,8 @@ bool readSingleBlockFile(const int& rank,
|
||||
ds = dsb.Create(vdims, origin, spacing);
|
||||
vtkm::cont::CellSetStructured<2> cs;
|
||||
cs.SetPointDimensions(vdims);
|
||||
cs.SetGlobalPointDimensions(vtkm::Id2{ globalSize[0], globalSize[1] });
|
||||
// NOTE: Comment out for test purposes
|
||||
//cs.SetGlobalPointDimensions(vtkm::Id2{ globalSize[0], globalSize[1] });
|
||||
cs.SetGlobalPointIndexStart(vtkm::Id2{ 0, (blockStart / blockSliceSize) });
|
||||
ds.SetCellSet(cs);
|
||||
localBlockIndicesPortal.Set(localBlockIndex, vtkm::Id3(0, blockIndex, 0));
|
||||
@ -832,7 +836,8 @@ bool readSingleBlockFile(const int& rank,
|
||||
ds = dsb.Create(vdims, origin, spacing);
|
||||
vtkm::cont::CellSetStructured<3> cs;
|
||||
cs.SetPointDimensions(vdims);
|
||||
cs.SetGlobalPointDimensions(globalSize);
|
||||
// NOTE: Comment out for test purposes
|
||||
//cs.SetGlobalPointDimensions(globalSize);
|
||||
cs.SetGlobalPointIndexStart(vtkm::Id3(0, 0, blockStart / blockSliceSize));
|
||||
ds.SetCellSet(cs);
|
||||
localBlockIndicesPortal.Set(localBlockIndex, vtkm::Id3(0, 0, blockIndex));
|
||||
|
Loading…
Reference in New Issue
Block a user