When calling host() on an empty array the process crushes on segmentation fault with OpenCL backend. The same code passes with CUDA backend.
{
af::array test;
af::print("test", test);
std::vector v(100);
test.host(v.data());
}
OpenCL:
[platform][1606953256][065084] [ /private/home/avidov/multibackend/opencl/arrayfire/src/backend/common/DependencyModule.cpp:55 ] Attempting to load: libforge.so
[platform][1606953256][065084] [ /private/home/avidov/multibackend/opencl/arrayfire/src/backend/common/DependencyModule.cpp:60 ] Unable to open forge
[platform][1606953256][065084] [ /private/home/avidov/multibackend/opencl/arrayfire/src/backend/opencl/device_manager.cpp:204 ] Found 1 OpenCL platforms
[platform][1606953256][065084] [ /private/home/avidov/multibackend/opencl/arrayfire/src/backend/opencl/device_manager.cpp:216 ] Found 2 devices on platform NVIDIA CUDA
[platform][1606953256][065084] [ /private/home/avidov/multibackend/opencl/arrayfire/src/backend/opencl/device_manager.cpp:221 ] Found device Quadro GP100 on platform NVIDIA CUDA
[platform][1606953256][065084] [ /private/home/avidov/multibackend/opencl/arrayfire/src/backend/opencl/device_manager.cpp:221 ] Found device Quadro GP100 on platform NVIDIA CUDA
[platform][1606953256][065084] [ /private/home/avidov/multibackend/opencl/arrayfire/src/backend/opencl/device_manager.cpp:226 ] Found 2 OpenCL devices
[platform][1606953257][065084] [ /private/home/avidov/multibackend/opencl/arrayfire/src/backend/opencl/device_manager.cpp:320 ] Default device: 0
test
[0 1 1 1]
Offset: 0
Strides: [1 0 0 0]
Segmentation fault
CUDA:
[platform][1606953367][065881] [ /private/home/avidov/arrayfire/src/backend/common/DependencyModule.cpp:55 ] Attempting to load: libforge.so
[platform][1606953367][065881] [ /private/home/avidov/arrayfire/src/backend/common/DependencyModule.cpp:60 ] Unable to open forge
[platform][1606953367][065881] [ /private/home/avidov/arrayfire/src/backend/cuda/device_manager.cpp:424 ] CUDA Driver supports up to CUDA 10.1 ArrayFire CUDA Runtime 10.0
[platform][1606953367][065881] [ /private/home/avidov/arrayfire/src/backend/cuda/device_manager.cpp:492 ] Found 2 CUDA devices
[platform][1606953367][065881] [ /private/home/avidov/arrayfire/src/backend/cuda/device_manager.cpp:518 ] Found device: Quadro GP100 (15.9 GB | ~9860.84 GFLOPs | 56 SMs)
[platform][1606953367][065881] [ /private/home/avidov/arrayfire/src/backend/cuda/device_manager.cpp:518 ] Found device: Quadro GP100 (15.9 GB | ~9860.84 GFLOPs | 56 SMs)
[platform][1606953367][065881] [ /private/home/avidov/arrayfire/src/backend/cuda/device_manager.cpp:553 ] AF_CUDA_DEFAULT_DEVICE:
[platform][1606953367][065881] [ /private/home/avidov/arrayfire/src/backend/cuda/device_manager.cpp:572 ] Default device: 0(Quadro GP100)
test
[0 1 1 1]
System info:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.3 LTS
Release: 18.04
Codename: bionic
name, memory.total [MiB], driver_version
Quadro GP100, 16278 MiB, 418.116.00
rocm-smi not found.
clinfo not found.
Built Arrayfire from sourc:
opencl:
cd arrayfire; git checkout v3.7.1; mkdir build; cd build
cmake ..
-DCMAKE_BUILD_TYPE=Debug -DAF_BUILD_OPENCL=ON -DAF_BUILD_CUDA=OFF -DAF_BUILD_CPU=OFF
-DAF_BUILD_UNIFIED=OFF -DAF_BUILD_EXAMPLES=OFF -DBUILD_TESTING=ON -DAF_BUILD_DOCS=OFF \
cuda:
cd arrayfire; git checkout v3.7.1; mkdir build; cd build
Only builds the CUDA backend, not CPU or OpenCL
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/usr
-DCMAKE_BUILD_TYPE=Release -DAF_BUILD_OPENCL=OFF -DAF_BUILD_CPU=OFF
-DAF_BUILD_UNIFIED=OFF -DAF_BUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF
-DCUDA_architecture_build_targets="6.0;7.0;7.0+PTX"
-DcuDNN_LINK_LIBRARY=$CUDNN_LIB_DIR/libcudnn.so.7.6.2
-DcuDNN_INCLUDE_DIRS=$CUDNN_INCLUDE_DIR
-DCUDA_cublasLt_static_LIBRARY=$CUDA_HOME/lib64/libcublasLt.so.10.1.0.105
When calling host() on an empty array the process crushes on segmentation fault with OpenCL backend. The same code passes with CUDA backend.
{
af::array test;
af::print("test", test);
std::vector v(100);
test.host(v.data());
}
OpenCL:
[platform][1606953256][065084] [ /private/home/avidov/multibackend/opencl/arrayfire/src/backend/common/DependencyModule.cpp:55 ] Attempting to load: libforge.so
[platform][1606953256][065084] [ /private/home/avidov/multibackend/opencl/arrayfire/src/backend/common/DependencyModule.cpp:60 ] Unable to open forge
[platform][1606953256][065084] [ /private/home/avidov/multibackend/opencl/arrayfire/src/backend/opencl/device_manager.cpp:204 ] Found 1 OpenCL platforms
[platform][1606953256][065084] [ /private/home/avidov/multibackend/opencl/arrayfire/src/backend/opencl/device_manager.cpp:216 ] Found 2 devices on platform NVIDIA CUDA
[platform][1606953256][065084] [ /private/home/avidov/multibackend/opencl/arrayfire/src/backend/opencl/device_manager.cpp:221 ] Found device Quadro GP100 on platform NVIDIA CUDA
[platform][1606953256][065084] [ /private/home/avidov/multibackend/opencl/arrayfire/src/backend/opencl/device_manager.cpp:221 ] Found device Quadro GP100 on platform NVIDIA CUDA
[platform][1606953256][065084] [ /private/home/avidov/multibackend/opencl/arrayfire/src/backend/opencl/device_manager.cpp:226 ] Found 2 OpenCL devices
[platform][1606953257][065084] [ /private/home/avidov/multibackend/opencl/arrayfire/src/backend/opencl/device_manager.cpp:320 ] Default device: 0
test
[0 1 1 1]
Offset: 0
Strides: [1 0 0 0]
Segmentation fault
CUDA:
[platform][1606953367][065881] [ /private/home/avidov/arrayfire/src/backend/common/DependencyModule.cpp:55 ] Attempting to load: libforge.so
[platform][1606953367][065881] [ /private/home/avidov/arrayfire/src/backend/common/DependencyModule.cpp:60 ] Unable to open forge
[platform][1606953367][065881] [ /private/home/avidov/arrayfire/src/backend/cuda/device_manager.cpp:424 ] CUDA Driver supports up to CUDA 10.1 ArrayFire CUDA Runtime 10.0
[platform][1606953367][065881] [ /private/home/avidov/arrayfire/src/backend/cuda/device_manager.cpp:492 ] Found 2 CUDA devices
[platform][1606953367][065881] [ /private/home/avidov/arrayfire/src/backend/cuda/device_manager.cpp:518 ] Found device: Quadro GP100 (15.9 GB | ~9860.84 GFLOPs | 56 SMs)
[platform][1606953367][065881] [ /private/home/avidov/arrayfire/src/backend/cuda/device_manager.cpp:518 ] Found device: Quadro GP100 (15.9 GB | ~9860.84 GFLOPs | 56 SMs)
[platform][1606953367][065881] [ /private/home/avidov/arrayfire/src/backend/cuda/device_manager.cpp:553 ] AF_CUDA_DEFAULT_DEVICE:
[platform][1606953367][065881] [ /private/home/avidov/arrayfire/src/backend/cuda/device_manager.cpp:572 ] Default device: 0(Quadro GP100)
test
[0 1 1 1]
System info:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.3 LTS
Release: 18.04
Codename: bionic
name, memory.total [MiB], driver_version
Quadro GP100, 16278 MiB, 418.116.00
rocm-smi not found.
clinfo not found.
Built Arrayfire from sourc:
opencl:
cd arrayfire; git checkout v3.7.1; mkdir build; cd build
cmake ..
-DCMAKE_BUILD_TYPE=Debug -DAF_BUILD_OPENCL=ON -DAF_BUILD_CUDA=OFF -DAF_BUILD_CPU=OFF
-DAF_BUILD_UNIFIED=OFF -DAF_BUILD_EXAMPLES=OFF -DBUILD_TESTING=ON -DAF_BUILD_DOCS=OFF \
cuda:
cd arrayfire; git checkout v3.7.1; mkdir build; cd build
Only builds the CUDA backend, not CPU or OpenCL
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/usr
-DCMAKE_BUILD_TYPE=Release -DAF_BUILD_OPENCL=OFF -DAF_BUILD_CPU=OFF
-DAF_BUILD_UNIFIED=OFF -DAF_BUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF
-DCUDA_architecture_build_targets="6.0;7.0;7.0+PTX"
-DcuDNN_LINK_LIBRARY=$CUDNN_LIB_DIR/libcudnn.so.7.6.2
-DcuDNN_INCLUDE_DIRS=$CUDNN_INCLUDE_DIR
-DCUDA_cublasLt_static_LIBRARY=$CUDA_HOME/lib64/libcublasLt.so.10.1.0.105