-
Notifications
You must be signed in to change notification settings - Fork 53
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
First fixes to revive CUDA. Still working on it. Shouldn't have broken anything out of CUDA. But CUDA might not work, yet.
- Loading branch information
Showing
25 changed files
with
189 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,146 @@ | ||
# Try to find OptiX project dll and include file | ||
# | ||
unset(CUDA_DLL CACHE) | ||
unset(CUDA_ROOT_DIR CACHE) | ||
unset(CUDA_LIB CACHE) | ||
unset(CUDA_VERSION CACHE) | ||
unset(CUDA_FOUND CACHE) | ||
unset(RESULT CACHE) | ||
|
||
if ( NOT DEFINED ${CUDA_LOCATION} ) | ||
SET(CUDA_LOCATION "$ENV{CUDA_PATH}" CACHE PATH "path") | ||
endif() | ||
|
||
find_path( CUDA_ROOT_DIR include/cuda.h | ||
${CUDA_LOCATION} | ||
) | ||
|
||
macro(_find_files targetVar incDir dllName dllName64 folder result) | ||
unset ( result ) | ||
unset ( fileList ) | ||
if(ARCH STREQUAL "x86") | ||
file(GLOB fileList "${${incDir}}/../${folder}${dllName}") | ||
list(LENGTH fileList NUMLIST) | ||
if(NUMLIST EQUAL 0) | ||
file(GLOB fileList "${${incDir}}/${folder}${dllName}") | ||
endif() | ||
else() | ||
file(GLOB fileList "${${incDir}}/../${folder}${dllName64}") | ||
list(LENGTH fileList NUMLIST) | ||
if(NUMLIST EQUAL 0) | ||
file(GLOB fileList "${${incDir}}/${folder}${dllName64}") | ||
endif() | ||
endif() | ||
list(LENGTH fileList NUMLIST) | ||
if(NUMLIST EQUAL 0) | ||
set (${result} "NOTFOUND" ) | ||
else() | ||
set (${result} "OK" ) | ||
endif() | ||
list(APPEND ${targetVar} ${fileList} ) | ||
|
||
endmacro() | ||
|
||
if(CUDA_ROOT_DIR) | ||
#---------Retrieve VERSION | ||
set( CUDA_VERSION_MAX "0.0" ) | ||
string( REGEX REPLACE "(^.*)/[^/]*$" "\\1" CUDA_GENERAL_DIR ${CUDA_ROOT_DIR} ) | ||
file( GLOB CUDA_VERSION_PATHS ${CUDA_GENERAL_DIR}/* ) | ||
foreach( CUDA_VERSION_PATH ${CUDA_VERSION_PATHS} ) | ||
if( IS_DIRECTORY ${CUDA_VERSION_PATH} ) | ||
string( REGEX REPLACE "^.*/v([^/]*)$" "\\1" CUDA_VERSION_CURRENT ${CUDA_VERSION_PATH} ) | ||
if( CUDA_VERSION_CURRENT MATCHES "[0-9]+[.]+[0-9]+" ) | ||
if( ${CUDA_VERSION_MAX} VERSION_LESS ${CUDA_VERSION_CURRENT} ) | ||
set( CUDA_VERSION_MAX ${CUDA_VERSION_CURRENT} ) | ||
endif() | ||
endif() | ||
endif() | ||
endforeach() | ||
|
||
SET(CUDA_VERSION ${CUDA_VERSION_MAX} CACHE STRING "string") | ||
string( REGEX REPLACE "(^[^.]*)[.]+.*$" "\\1" CUDA_VERSION_MAJOR ${CUDA_VERSION} ) | ||
string( REGEX REPLACE "^[^.]*[.]+(.*$)" "\\1" CUDA_VERSION_MINOR ${CUDA_VERSION} ) | ||
|
||
if( CUDA_VERSION_MAX STREQUAL "0.0" ) | ||
message( "CUDA directory is not valid" ) | ||
else() | ||
set( CUDA_ROOT_DIR ${CUDA_GENERAL_DIR}/v${CUDA_VERSION} ) | ||
set( CUDA_NVCC_EXECUTABLE ${CUDA_ROOT_DIR}/bin/nvcc ) | ||
endif() | ||
|
||
|
||
#-------- Locate DLLS | ||
_find_files( CUDA_DLL CUDA_ROOT_DIR "cudart32_${CUDA_VERSION_MAJOR}${CUDA_VERSION_MINOR}.dll" "cudart64_${CUDA_VERSION_MAJOR}${CUDA_VERSION_MINOR}.dll" "bin/" RESULT) | ||
if ( ${RESULT} STREQUAL "NOTFOUND" ) | ||
message( "CUDA is required for this sample (${PROJECT_NAME})." ) | ||
message( "CUDA binaries have not been found. Please set the CUDA_LOCATION variable above to the root location of the desired CUDA version." ) | ||
endif() | ||
|
||
#-------- Locate LIBS | ||
_find_files( CUDA_LIB CUDA_ROOT_DIR "win32/cudart.lib" "x64/cudart.lib" "lib/" RESULT) | ||
_find_files( CUDA_LIB CUDA_ROOT_DIR "win32/cublas.lib" "x64/cublas.lib" "lib/" RESULT) | ||
_find_files( CUDA_LIB CUDA_ROOT_DIR "win32/cuda.lib" "x64/cuda.lib" "lib/" RESULT) | ||
_find_files( CUDA_LIB CUDA_ROOT_DIR "win32/OpenCL.lib" "x64/OpenCL.lib" "lib/" RESULT) | ||
|
||
#-------- Locate HEADERS | ||
_find_files( CUDA_HEADERS CUDA_ROOT_DIR "cuda.h" "cuda.h" "include/" RESULT) | ||
|
||
if(CUDA_DLL) | ||
set( CUDA_FOUND "YES" ) | ||
endif(CUDA_DLL) | ||
else(CUDA_ROOT_DIR) | ||
|
||
message(INFO "CUDA not found. Please set the CUDA_LOCATION variable above to the root location of CUDA 5.5.") | ||
|
||
endif(CUDA_ROOT_DIR) | ||
|
||
include(FindPackageHandleStandardArgs) | ||
|
||
SET(CUDA_DLL ${CUDA_DLL} CACHE PATH "path") | ||
SET(CUDA_LIB ${CUDA_LIB} CACHE PATH "path") | ||
SET(CUDA_INCLUDE_DIR "${CUDA_ROOT_DIR}/include") | ||
|
||
find_package_handle_standard_args(CUDA DEFAULT_MSG | ||
CUDA_INCLUDE_DIR | ||
CUDA_DLL | ||
) | ||
|
||
# Generate PTX files | ||
# NVCUDA_COMPILE_PTX( SOURCES file1.cu file2.cu TARGET_PATH <path where ptxs should be stored> GENERATED_FILES ptx_sources NVCC_OPTIONS -arch=sm_20) | ||
# Generates ptx files for the given source files. ptx_sources will contain the list of generated files. | ||
FUNCTION(NVCUDA_COMPILE_PTX) | ||
set(options "") | ||
set(oneValueArgs TARGET_PATH GENERATED_FILES) | ||
set(multiValueArgs NVCC_OPTIONS SOURCES) | ||
CMAKE_PARSE_ARGUMENTS(NVCUDA_COMPILE_PTX "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) | ||
|
||
# Match the bitness of the ptx to the bitness of the application | ||
set( MACHINE "--machine=32" ) | ||
if( CMAKE_SIZEOF_VOID_P EQUAL 8) | ||
set( MACHINE "--machine=64" ) | ||
endif() | ||
|
||
# Custom build rule to generate ptx files from cuda files | ||
FOREACH( input ${NVCUDA_COMPILE_PTX_SOURCES} ) | ||
get_filename_component( input_we ${input} NAME_WE ) | ||
|
||
# generate the *.ptx files inside "ptx" folder inside the executable's output directory. | ||
set( output "${CMAKE_CURRENT_SOURCE_DIR}/${input_we}.ptx" ) | ||
|
||
LIST( APPEND PTX_FILES ${output} ) | ||
|
||
message("${CUDA_NVCC_EXECUTABLE} ${MACHINE} --ptx ${NVCUDA_COMPILE_PTX_NVCC_OPTIONS} ${input} -o ${output} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}") | ||
|
||
add_custom_command( | ||
OUTPUT ${output} | ||
DEPENDS ${input} | ||
COMMAND ${CUDA_NVCC_EXECUTABLE} ${MACHINE} --ptx ${NVCUDA_COMPILE_PTX_NVCC_OPTIONS} ${input} -o ${output} WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" | ||
COMMAND ${CMAKE_COMMAND} -E echo ${NVCUDA_COMPILE_PTX_TARGET_PATH} | ||
COMMAND ${CMAKE_COMMAND} -E copy ${output} "${NVCUDA_COMPILE_PTX_TARGET_PATH}/${input_we}.ptx" | ||
) | ||
ENDFOREACH( ) | ||
|
||
set(${NVCUDA_COMPILE_PTX_GENERATED_FILES} ${PTX_FILES} PARENT_SCOPE) | ||
ENDFUNCTION() | ||
|
||
mark_as_advanced( CUDA_FOUND ) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.