https://github.com/kitwaremedical/itkhalidefilters
Accelerating ITK Filters with Halide
https://github.com/kitwaremedical/itkhalidefilters
Last synced: 3 months ago
JSON representation
Accelerating ITK Filters with Halide
- Host: GitHub
- URL: https://github.com/kitwaremedical/itkhalidefilters
- Owner: KitwareMedical
- License: apache-2.0
- Created: 2024-08-13T16:28:36.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-18T17:09:20.000Z (almost 2 years ago)
- Last Synced: 2025-03-24T12:55:33.326Z (over 1 year ago)
- Language: C++
- Homepage:
- Size: 195 KB
- Stars: 3
- Watchers: 6
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
ITKHalideFilters
=================================
..
.. image:: https://github.com/KitwareMedical/ITKHalideFilters/actions/workflows/build-test-package.yml/badge.svg
:target: https://github.com/KitwareMedical/ITKHalideFilters/actions/workflows/build-test-package.yml
:alt: Build Status
.. image:: https://img.shields.io/pypi/v/itk-halidefilters.svg
:target: https://pypi.python.org/pypi/itk-halidefilters
:alt: PyPI Version
.. image:: https://img.shields.io/badge/License-Apache%202.0-blue.svg
:target: https://github.com/KitwareMedical/ITKHalideFilters/blob/main/LICENSE
:alt: License
Halide implementation of common filters.
Experimental integration of Halide runtime into ITK, with Halide implementations of common filters targeting Threads, SIMD, and GPGPU.
See performance details in the accompanying post: `Accelerating ITK Filters with Halide - Kitware Blog `_
Building
--------
Build ITK with flag `ITK_USE_GPU`.
.. code-block:: bash
git clone https://github.com/InsightSoftwareConsortium/ITK.git -b release-5.4
cmake -S ITK -B ITK-build -DITK_USE_GPU=ON
cmake --build ITK-build --parallel
Build ITKHalideFilters against that ITK build.
.. code-block:: bash
git clone https://github.com/KitwareMedical/ITKHalideFilters.git
cmake -S ITKHalideFilters -B ITKHalideFilters-build -DITK_DIR=ITK-build
cmake --build ITKHalideFilters-build --parallel
The ITKHalideFilters build system will automatically download an appropriate version of Halide. Options may be given with `-D`, or set in `ccmake` or `cmake-gui`.
- ``-DModule_HalideFilters_TEST_GPU=ON`` (default OFF) will enable tests for GPU filters. This is disabled by default as the CI server does not have GPU provisioning. Halide guarantees that all schedules of the same algorithm will produce the same output, so CI testing the CPU schedule **should** be sufficient to check correctness. Recommend setting this ON for local builds with CUDA availability.
- ``-DModule_HalideFilters_USE_AUTOSCHEDULER=ON`` (default OFF) will invoke appropriate autoschedulers for the Halide filters. This significantly increases build time, but may improve runtime performance on specific hardware.