Skip to content

Commit 5383a77

Browse files
committed
WIP: ENH: Add naive CUDA schedule
1 parent 5f77feb commit 5383a77

File tree

4 files changed

+11
-3
lines changed

4 files changed

+11
-3
lines changed

include/itkHalideDiscreteGaussianImageFilter.hxx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
#include "itkHalideDiscreteGaussianImpl.h"
2424

25+
#include <Halide.h>
2526
#include <HalideBuffer.h>
2627

2728
namespace itk
@@ -64,7 +65,9 @@ HalideDiscreteGaussianImageFilter<TInputImage, TOutputImage>::GenerateData()
6465
Halide::Runtime::Buffer<const InputPixelType> inputBuffer(input->GetBufferPointer(), sizes);
6566
Halide::Runtime::Buffer<OutputPixelType> outputBuffer(output->GetBufferPointer(), sizes);
6667

68+
inputBuffer.set_host_dirty();
6769
itkHalideDiscreteGaussianImpl(inputBuffer, sigma_x, sigma_y, sigma_z, outputBuffer);
70+
outputBuffer.copy_to_host();
6871
}
6972

7073
} // end namespace itk

src/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ target_link_libraries(itkHalideGenerators PRIVATE Halide::Generator)
66
add_halide_library(itkHalideDiscreteGaussianImpl
77
FROM itkHalideGenerators
88
HEADER itkHalideDiscreteGaussianImpl_h
9-
# PARAMS input.type=float32 output.type=float32
9+
# PARAMS input.type=float32 output.type=float32
10+
FEATURES cuda # debug
1011
)
1112

1213
set(HalideFilters_SRCS

src/generators.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,10 @@ class DiscreteGaussianGenerator : public Generator<DiscreteGaussianGenerator>
6161

6262
output(x, y, z) = blur_z(x, y, z);
6363

64-
output.vectorize(x, 4);
64+
65+
Var ix, iy, iz, ox, oy, oz;
66+
67+
output.gpu_tile(x, y, z, ix, iy, iz, ox, oy, oz, 4, 4, 4);
6568
}
6669
};
6770

test/itkHalideDiscreteGaussianImageFilterTest.cxx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ itkHalideDiscreteGaussianImageFilterTest(int argc, char * argv[])
6565
}
6666
const char * outputImageFileName = argv[1];
6767

68-
constexpr unsigned int Dimension = 2;
68+
constexpr unsigned int Dimension = 3;
6969
using PixelType = float;
7070
using ImageType = itk::Image<PixelType, Dimension>;
7171

@@ -85,6 +85,7 @@ itkHalideDiscreteGaussianImageFilterTest(int argc, char * argv[])
8585
ShowProgress::Pointer showProgress = ShowProgress::New();
8686
filter->AddObserver(itk::ProgressEvent(), showProgress);
8787
filter->SetInput(image);
88+
filter->SetSigma(2);
8889

8990
using WriterType = itk::ImageFileWriter<ImageType>;
9091
WriterType::Pointer writer = WriterType::New();

0 commit comments

Comments
 (0)