Skip to content

Commit

Permalink
Merge pull request #912 from CHIP-SPV/add-hipfft
Browse files Browse the repository at this point in the history
Enable building of hipFFT
  • Loading branch information
pvelesko authored Aug 20, 2024
2 parents 885d743 + aae788d commit c1374af
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 3 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,6 @@
branch = origin/develop


[submodule "H4I-HipFFT"]
path = H4I-HipFFT
url = git@github.com:CHIP-SPV/H4I-HipFFT.git
18 changes: 17 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,7 @@ option(CHIP_ENABLE_NON_COMPLIANT_DEVICELIB_CODE "Enable non-compliant devicelib
option(CHIP_FAST_MATH "Use native_ OpenCL functions which are fast but their precision is implementation defined" OFF)
option(CHIP_USE_INTEL_USM "When enabled, cl_intel_unified_shared_memory extension, when available, will be used for HIP allocations in the OpenCL backend" ON)
option(CHIP_BUILD_HIPBLAS "When enabled, hipBLAS will be built and installed along chipStar" OFF)
option(CHIP_BUILD_HIPFFT "When enabled, hipFFT will be built and installed along chipStar" OFF)
option(CATCH2_DISCOVER_TESTS_COMPILE_TIME "Discover the tests at compile time" ON)
option(CHIP_SKIP_TESTS_WITH_DOUBLES "Skip tests where kernels use doubles." OFF)

Expand Down Expand Up @@ -647,6 +648,10 @@ if(CHIP_BUILD_HIPBLAS)
file(COPY ${CMAKE_SOURCE_DIR}/H4I-HipBLAS/include/
DESTINATION ${CMAKE_BINARY_DIR}/include)
endif()
if(CHIP_BUILD_HIPFFT)
file(COPY ${CMAKE_SOURCE_DIR}/H4I-HipFFT/include/
DESTINATION ${CMAKE_BINARY_DIR}/include)
endif()

# Setup .hipInfo. One for install and another for build directory.
string(TIMESTAMP _timestamp UTC)
Expand Down Expand Up @@ -773,12 +778,23 @@ install(EXPORT CHIPTargets
# enable the build_tests target
SET(HIP_PATH ${CMAKE_BINARY_DIR}) # pick up build sources, not install sources

if (CHIP_BUILD_HIPBLAS)
if (CHIP_BUILD_HIPBLAS OR CHIP_BUILD_HIPFFT)
add_subdirectory(H4I-MKLShim)
add_dependencies(MKLShim CHIP)
endif()

if (CHIP_BUILD_HIPBLAS)
add_subdirectory(H4I-HipBLAS)
add_dependencies(hipblas CHIP MKLShim)
endif()

if (CHIP_BUILD_HIPFFT)
add_subdirectory(H4I-HipFFT)
# for picking up hip_version.h
target_include_directories(hipfft PUBLIC ${CMAKE_BINARY_DIR}/include)
add_dependencies(hipfft CHIP MKLShim)
endif()

set(SAVED_WARN_DEPRECATED ${CMAKE_WARN_DEPRECATED})
set(CMAKE_WARN_DEPRECATED OFF)
if(CHIP_BUILD_TESTS)
Expand Down
1 change: 1 addition & 0 deletions H4I-HipFFT
Submodule H4I-HipFFT added at cc5bcf
2 changes: 1 addition & 1 deletion H4I-MKLShim
16 changes: 15 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# chipStar

chipStar enables porting HIP and CUDA applications to platforms which support
chipStar enables compiling and running HIP and CUDA applications on platforms which support
SPIR-V as the device intermediate representation. It supports
OpenCL and Level Zero as the low-level runtime alternatives.

Expand All @@ -15,6 +15,20 @@ If you wish to cite chipStar in academic publications, please refer to the [HIPC

The name chipStar comes from `c`uda and `hip` and the word `Star` which means asterisk, a typical shell wildcard, denoting the intention to make "CUDA and HIP applications run everywhere". The project was previously called CHIP-SPV.

## Library Support

The following libraries have been ported to work on Intel GPUs via MKL:
- [hipBLAS](https://github.com/CHIP-SPV/H4I-HipBLAS) (Can be built as a part of chipStar by adding `-DCHIP_BUILD_HIPBLAS=ON`)
- [hipFTT](https://github.com/CHIP-SPV/H4I-HipFFT) (Can be built as a part of chipStar by adding `-DCHIP_BUILD_HIPFTT=ON`)
- [hipSOLVER](https://github.com/CHIP-SPV/H4I-HipSOLVER)
- [hipCUB](https://github.com/CHIP-SPV/hipCUB)

The following libraries have been ported and should work on any platform:
- [rocRAND](https://github.com/CHIP-SPV/rocRAND)
- [rocPRIM](https://github.com/CHIP-SPV/rocPRIM)

*If there is a library that you need that is not yet supported, please open an issue stating which libraries you require and what application you are trying to build.*

## Getting Started

Quickest way to get started is by using a prebuilt Docker container. Please refer to [Docker README](docker/docker.md)
Expand Down

0 comments on commit c1374af

Please sign in to comment.