Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -101,13 +101,34 @@ ENDIF()

IF (${CUDA_FOUND})
IF(${ArrayFire_CUDA_FOUND}) # variable defined by FIND(ArrayFire ...)
# Find NVVM
FIND_LIBRARY( CUDA_NVVM_LIBRARY
NAMES "nvvm"
PATH_SUFFIXES "nvvm/lib64" "nvvm/lib"
PATHS ${CUDA_TOOLKIT_ROOT_DIR}
DOC "CUDA NVVM Library"
)
MARK_AS_ADVANCED(CUDA_NVVM_LIBRARY)

# If CUDA_CUDA_LIBRARY is not found, check for Stub in CUDA Toolkit
IF(NOT CUDA_CUDA_LIBRARY)
MESSAGE(SEND_ERROR "CMake CUDA Variable CUDA_CUDA_LIBRARY Not found.")
MESSAGE("CUDA Driver Library (libcuda.so/libcuda.dylib/cuda.lib) cannot be found.")
FIND_FILE(CUDA_CUDA_LIBRARY_STUB
NAMES "libcuda.so" "libcuda.dylib" "cuda.lib"
PATHS ${CUDA_TOOLKIT_ROOT_DIR}
PATH_SUFFIXES "lib64" "lib64/stubs" "lib" "lib/stubs" "lib/x64" "lib/Win32"
DOC "CUDA Library STUB"
)
IF(CUDA_CUDA_LIBRARY_STUB)
MESSAGE("You can use the library stub available in the CUDA Toolkit: ${CUDA_CUDA_LIBRARY_STUB}")
MESSAGE("Run the following commands (Linux) to set it up:")
MESSAGE("ln -s ${CUDA_CUDA_LIBRARY_STUB} /usr/lib/libcuda.so.1")
MESSAGE("ln -s /usr/lib/libcuda.so.1 /usr/lib/libcuda.so")
ENDIF()
MESSAGE(FATAL_ERROR "Ending CMake configuration because of missing CUDA_CUDA_LIBRARY")
ENDIF(NOT CUDA_CUDA_LIBRARY)

OPTION(BUILD_CUDA "Build ArrayFire Examples for CUDA backend" ON)
BUILD_ALL("${FILES}" cuda ${ArrayFire_CUDA_LIBRARIES} "${CUDA_CUBLAS_LIBRARIES};${CUDA_LIBRARIES};${CUDA_cusolver_LIBRARY};${CUDA_CUFFT_LIBRARIES};${CUDA_NVVM_LIBRARY};${CUDA_CUDA_LIBRARY}")
ELSEIF(TARGET afcuda) # variable defined by the ArrayFire build tree
Expand Down
2 changes: 2 additions & 0 deletions src/api/c/imageio.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,9 @@ af_err af_load_image(af_array *out, const char* filename, const bool isColor)

int flags = 0;
if(fif == FIF_JPEG) flags = flags | JPEG_ACCURATE;
#ifdef JPEG_GREYSCALE
if(fif == FIF_JPEG && !isColor) flags = flags | JPEG_GREYSCALE;
#endif

// check that the plugin has reading capabilities ...
FIBITMAP* pBitmap = NULL;
Expand Down
20 changes: 20 additions & 0 deletions src/backend/cuda/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ ENDIF()
LIST(LENGTH COMPUTES_DETECTED_LIST COMPUTES_LEN)
IF(${COMPUTES_LEN} EQUAL 0 AND ${FALLBACK})
MESSAGE(STATUS "No computes detected. Fall back to 20, 30, 50")
MESSAGE(STATUS "You can use -DCOMPUTES_DETECTED_LIST=\"AB;XY\" (semicolon separated list of CUDA Compute versions to enable the specified computes")
MESSAGE(STATUS "Individual compute versions flags are also available under CMake Advance options")
LIST(APPEND COMPUTES_DETECTED_LIST "20" "30" "50")
ENDIF()

Expand Down Expand Up @@ -329,6 +331,24 @@ macro(MY_CUDA_ADD_LIBRARY cuda_target)

endmacro()

IF(NOT CUDA_CUDA_LIBRARY)
MESSAGE(SEND_ERROR "CMake CUDA Variable CUDA_CUDA_LIBRARY Not found.")
MESSAGE("CUDA Driver Library (libcuda.so/libcuda.dylib/cuda.lib) cannot be found.")
FIND_FILE(CUDA_CUDA_LIBRARY_STUB
NAMES "libcuda.so" "libcuda.dylib" "cuda.lib"
PATHS ${CUDA_TOOLKIT_ROOT_DIR}
PATH_SUFFIXES "lib64" "lib64/stubs" "lib" "lib/stubs" "lib/x64" "lib/Win32"
DOC "CUDA Library STUB"
)
IF(CUDA_CUDA_LIBRARY_STUB)
MESSAGE("You can use the library stub available in the CUDA Toolkit: ${CUDA_CUDA_LIBRARY_STUB}")
MESSAGE("Run the following commands (Linux) to set it up:")
MESSAGE("ln -s ${CUDA_CUDA_LIBRARY_STUB} /usr/lib/libcuda.so.1")
MESSAGE("ln -s /usr/lib/libcuda.so.1 /usr/lib/libcuda.so")
ENDIF()
MESSAGE(FATAL_ERROR "Ending CMake configuration because of missing CUDA_CUDA_LIBRARY")
ENDIF(NOT CUDA_CUDA_LIBRARY)

MY_CUDA_ADD_LIBRARY(afcuda SHARED
${cuda_headers}
${cuda_sources}
Expand Down
21 changes: 21 additions & 0 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -189,13 +189,34 @@ ENDIF()
# CUDA Backend
IF (${CUDA_FOUND})
IF(${ArrayFire_CUDA_FOUND}) # variable defined by FIND(ArrayFire ...)
# Find NVVM
FIND_LIBRARY( CUDA_NVVM_LIBRARY
NAMES "nvvm"
PATH_SUFFIXES "nvvm/lib64" "nvvm/lib"
PATHS ${CUDA_TOOLKIT_ROOT_DIR}
DOC "CUDA NVVM Library"
)
MARK_AS_ADVANCED(CUDA_NVVM_LIBRARY)

# If CUDA_CUDA_LIBRARY is not found, check for Stub in CUDA Toolkit
IF(NOT CUDA_CUDA_LIBRARY)
MESSAGE(SEND_ERROR "CMake CUDA Variable CUDA_CUDA_LIBRARY Not found.")
MESSAGE("CUDA Driver Library (libcuda.so/libcuda.dylib/cuda.lib) cannot be found.")
FIND_FILE(CUDA_CUDA_LIBRARY_STUB
NAMES "libcuda.so" "libcuda.dylib" "cuda.lib"
PATHS ${CUDA_TOOLKIT_ROOT_DIR}
PATH_SUFFIXES "lib64" "lib64/stubs" "lib" "lib/stubs" "lib/x64" "lib/Win32"
DOC "CUDA Library STUB"
)
IF(CUDA_CUDA_LIBRARY_STUB)
MESSAGE("You can use the library stub available in the CUDA Toolkit: ${CUDA_CUDA_LIBRARY_STUB}")
MESSAGE("Run the following commands (Linux) to set it up:")
MESSAGE("ln -s ${CUDA_CUDA_LIBRARY_STUB} /usr/lib/libcuda.so.1")
MESSAGE("ln -s /usr/lib/libcuda.so.1 /usr/lib/libcuda.so")
ENDIF()
MESSAGE(FATAL_ERROR "Ending CMake configuration because of missing CUDA_CUDA_LIBRARY")
ENDIF(NOT CUDA_CUDA_LIBRARY)

# If OSX && CLANG && CUDA < 7
IF("${APPLE}" AND ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" AND ${CUDA_VERSION_MAJOR} VERSION_LESS 7)
OPTION(BUILD_CUDA "Build ArrayFire Tests for CUDA backend" ON)
Expand Down