LeelaChessZero / lc0

The rewritten engine, originally for tensorflow. Now all other backends have been ported here.
GNU General Public License v3.0
2.45k stars 529 forks source link

looking for help - macOS , openCL not being recognized #851

Closed MichaelB7 closed 5 years ago

MichaelB7 commented 5 years ago

first , I have this lcode that identifies that both my CPU and GPU supports openCL Mac Pro 2010 macOS Mojave v 10.14.4 Display Chipset Model: AMD Radeon HD 7950

#include <stdio.h>
#include <stdlib.h>
#include <OpenCL/opencl.h>

int main(int argc, char* const argv[]) {
    cl_uint num_devices, i;
    clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, 0, NULL, &num_devices);

    cl_device_id* devices = calloc(sizeof(cl_device_id), num_devices);
    clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, num_devices, devices, NULL);

    char buf[128];
    for (i = 0; i < num_devices; i++) {
        clGetDeviceInfo(devices[i], CL_DEVICE_NAME, 128, buf, NULL);
        fprintf(stdout, "Device %s supports ", buf);

        clGetDeviceInfo(devices[i], CL_DEVICE_VERSION, 128, buf, NULL);
        fprintf(stdout, "%s\n", buf);
    }

    free(devices);
}

compile with this

 clang -framework OpenCL hello.c -o hello

the output displays this:

Mac-Pro:src $ ./hello
Device Intel(R) Xeon(R) CPU           X5690  @ 3.47GHz supports OpenCL 1.2 
Device AMD Radeon HD 7950 Compute Engine supports OpenCL 1.2 
Mac-Pro:src $

but for the life of me , I can not longer build a version that supports OpenCL as a backend. I know it's related to something "Apple" did ,as I was able to build an lc0 version supporting OpenCL back in January. I'm just looking for a way to build a current version today. Any help appreciated.

MichaelB7 commented 5 years ago

If I force it to build an OpenGL supported version, it fails here:


[276/308] Linking target lc0.
FAILED: lc0 
c++  -o lc0 'lc0@exe/meson-generated_proto_net.pb.cc.o' 'lc0@exe/src_main.cc.o' 'lc0@exe/src_engine.cc.o' 'lc0@exe/src_version.cc.o' 'lc0@exe/src_benchmark_benchmark.cc.o' 'lc0@exe/src_chess_bitboard.cc.o' 'lc0@exe/src_chess_board.cc.o' 'lc0@exe/src_chess_position.cc.o' 'lc0@exe/src_chess_uciloop.cc.o' 'lc0@exe/src_mcts_node.cc.o' 'lc0@exe/src_mcts_params.cc.o' 'lc0@exe/src_mcts_search.cc.o' 'lc0@exe/src_neural_cache.cc.o' 'lc0@exe/src_neural_encoder.cc.o' 'lc0@exe/src_neural_factory.cc.o' 'lc0@exe/src_neural_loader.cc.o' 'lc0@exe/src_neural_network_check.cc.o' 'lc0@exe/src_neural_network_demux.cc.o' 'lc0@exe/src_neural_network_legacy.cc.o' 'lc0@exe/src_neural_network_mux.cc.o' 'lc0@exe/src_neural_network_random.cc.o' 'lc0@exe/src_neural_network_rr.cc.o' 'lc0@exe/src_neural_network_st_batch.cc.o' 'lc0@exe/src_neural_writer.cc.o' 'lc0@exe/src_selfplay_game.cc.o' 'lc0@exe/src_selfplay_loop.cc.o' 'lc0@exe/src_selfplay_tournament.cc.o' 'lc0@exe/src_syzygy_syzygy.cc.o' 'lc0@exe/src_utils_commandline.cc.o' 'lc0@exe/src_utils_configfile.cc.o' 'lc0@exe/src_utils_histogram.cc.o' 'lc0@exe/src_utils_logging.cc.o' 'lc0@exe/src_utils_optionsdict.cc.o' 'lc0@exe/src_utils_optionsparser.cc.o' 'lc0@exe/src_utils_random.cc.o' 'lc0@exe/src_utils_string.cc.o' 'lc0@exe/src_utils_transpose.cc.o' 'lc0@exe/src_utils_weights_adapter.cc.o' 'lc0@exe/src_utils_filesystem.posix.cc.o' 'lc0@exe/src_neural_blas_convolution1.cc.o' 'lc0@exe/src_neural_blas_fully_connected_layer.cc.o' 'lc0@exe/src_neural_blas_se_unit.cc.o' 'lc0@exe/src_neural_blas_network_blas.cc.o' 'lc0@exe/src_neural_blas_winograd_convolution3.cc.o' 'lc0@exe/src_neural_opencl_network_opencl.cc.o' 'lc0@exe/src_neural_opencl_OpenCL.cc.o' 'lc0@exe/src_neural_opencl_OpenCLTuner.cc.o' 'lc0@exe/src_neural_opencl_OpenCLBuffers.cc.o' 'lc0@exe/src_neural_shared_activation.cc.o' 'lc0@exe/src_neural_shared_batchnorm.cc.o' 'lc0@exe/src_neural_shared_winograd_filter.cc.o' -Wl,-dead_strip_dylibs subprojects/protobuf-3.5.1/libprotobuf-lite.dylib subprojects/protobuf-3.5.1/libprotobuf.dylib -lpthread /opt/intel/mkl/lib/libmkl_rt.dylib /opt/local/lib/libz.dylib -Wl,-headerpad_max_install_names -Wl,-rpath,@loader_path/subprojects/protobuf-3.5.1 -Wl,-rpath,/opt/intel/mkl/lib -Wl,-rpath,/opt/local/lib 
Undefined symbols for architecture x86_64:
  "_clBuildProgram", referenced from:
      OpenCL::initialize(int, OpenCLParams const&) in src_neural_opencl_OpenCL.cc.o
      Tuner::tune_sgemm[abi:cxx11](int, int, int, int, int) in src_neural_opencl_OpenCLTuner.cc.o
  "_clCreateBuffer", referenced from:
      void std::vector<cl::Buffer, std::allocator<cl::Buffer> >::_M_realloc_insert<cl::Context&, int, unsigned long&, float*>(__gnu_cxx::__normal_iterator<cl::Buffer*, std::vector<cl::Buffer, std::allocator<cl::Buffer> > >, cl::Context&, int&&, unsigned long&, float*&&) in src_neural_opencl_OpenCL.cc.o
      OpenCL_Network::add_weights(unsigned long, unsigned long, float const*) in src_neural_opencl_OpenCL.cc.o
      Tuner::tune_sgemm[abi:cxx11](int, int, int, int, int) in src_neural_opencl_OpenCLTuner.cc.o
      OpenCLBuffers::OpenCLBuffers(OpenCL_Network const&) in src_neural_opencl_OpenCLBuffers.cc.o
  "_clCreateCommandQueue", referenced from:
      Tuner::tune_sgemm[abi:cxx11](int, int, int, int, int) in src_neural_opencl_OpenCLTuner.cc.o
      OpenCLBuffers::OpenCLBuffers(OpenCL_Network const&) in src_neural_opencl_OpenCLBuffers.cc.o
  "_clCreateContext", referenced from:
      OpenCL::initialize(int, OpenCLParams const&) in src_neural_opencl_OpenCL.cc.o
  "_clCreateKernel", referenced from:
      OpenCL::initialize(int, OpenCLParams const&) in src_neural_opencl_OpenCL.cc.o
      Tuner::tune_sgemm[abi:cxx11](int, int, int, int, int) in src_neural_opencl_OpenCLTuner.cc.o
      OpenCLBuffers::OpenCLBuffers(OpenCL_Network const&) in src_neural_opencl_OpenCLBuffers.cc.o
  "_clCreateProgramWithSource", referenced from:
      OpenCL::initialize(int, OpenCLParams const&) in src_neural_opencl_OpenCL.cc.o
      Tuner::tune_sgemm[abi:cxx11](int, int, int, int, int) in src_neural_opencl_OpenCLTuner.cc.o
  "_clEnqueueMapBuffer", referenced from:
      OpenCLBuffers::forward(std::vector<float, std::allocator<float> > const&, std::vector<float, std::allocator<float> >&, std::vector<float, std::allocator<float> >&, int) in src_neural_opencl_OpenCLBuffers.cc.o
  "_clEnqueueNDRangeKernel", referenced from:
      Tuner::tune_sgemm[abi:cxx11](int, int, int, int, int) in src_neural_opencl_OpenCLTuner.cc.o
      OpenCLBuffers::convolve3(int, int, cl::Buffer&, cl::Buffer&, cl::Buffer&, cl::Buffer&, __gnu_cxx::__normal_iterator<cl::Buffer const*, std::vector<cl::Buffer, std::allocator<cl::Buffer> > >, cl::Buffer*, __gnu_cxx::__normal_iterator<cl::Buffer const*, std::vector<cl::Buffer, std::allocator<cl::Buffer> > >, bool, bool, bool, bool, int) in src_neural_opencl_OpenCLBuffers.cc.o
      OpenCLBuffers::convolve1(int, int, cl::Buffer&, cl::Buffer&, cl::Buffer&, __gnu_cxx::__normal_iterator<cl::Buffer const*, std::vector<cl::Buffer, std::allocator<cl::Buffer> > >, int) in src_neural_opencl_OpenCLBuffers.cc.o
      OpenCLBuffers::innerproduct(cl::Buffer&, __gnu_cxx::__normal_iterator<cl::Buffer const*, std::vector<cl::Buffer, std::allocator<cl::Buffer> > >, __gnu_cxx::__normal_iterator<cl::Buffer const*, std::vector<cl::Buffer, std::allocator<cl::Buffer> > >, cl::Buffer&, int, int, int, int) in src_neural_opencl_OpenCLBuffers.cc.o
      OpenCLBuffers::squeeze_excitation(int, int, cl::Buffer&, cl::Buffer&, cl::Buffer&, __gnu_cxx::__normal_iterator<cl::Buffer const*, std::vector<cl::Buffer, std::allocator<cl::Buffer> > >, cl::Buffer&, int) in src_neural_opencl_OpenCLBuffers.cc.o
  "_clEnqueueReadBuffer", referenced from:
      Tuner::tune_sgemm[abi:cxx11](int, int, int, int, int) in src_neural_opencl_OpenCLTuner.cc.o
  "_clEnqueueUnmapMemObject", referenced from:
      OpenCLBuffers::forward(std::vector<float, std::allocator<float> > const&, std::vector<float, std::allocator<float> >&, std::vector<float, std::allocator<float> >&, int) in src_neural_opencl_OpenCLBuffers.cc.o
  "_clEnqueueWriteBuffer", referenced from:
      Tuner::tune_sgemm[abi:cxx11](int, int, int, int, int) in src_neural_opencl_OpenCLTuner.cc.o
      OpenCLBuffers::forward(std::vector<float, std::allocator<float> > const&, std::vector<float, std::allocator<float> >&, std::vector<float, std::allocator<float> >&, int) in src_neural_opencl_OpenCLBuffers.cc.o
  "_clFinish", referenced from:
      Tuner::tune_sgemm[abi:cxx11](int, int, int, int, int) in src_neural_opencl_OpenCLTuner.cc.o
      OpenCLBuffers::forward(std::vector<float, std::allocator<float> > const&, std::vector<float, std::allocator<float> >&, std::vector<float, std::allocator<float> >&, int) in src_neural_opencl_OpenCLBuffers.cc.o
  "_clGetDeviceIDs", referenced from:
      OpenCL::initialize(int, OpenCLParams const&) in src_neural_opencl_OpenCL.cc.o
  "_clGetDeviceInfo", referenced from:
      cl::detail::Wrapper<_cl_device_id*>::Wrapper(cl::detail::Wrapper<_cl_device_id*> const&) [clone .isra.346] in src_neural_opencl_OpenCL.cc.o
      cl::detail::param_traits<cl::detail::cl_device_info, 4139>::param_type cl::Device::getInfo<4139>(int*) const [clone .constprop.396] in src_neural_opencl_OpenCL.cc.o
      std::vector<std::pair<cl::Device, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<cl::Device, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::vector(std::vector<std::pair<cl::Device, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<cl::Device, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) in src_neural_opencl_OpenCL.cc.o
      OpenCL::get_device_name[abi:cxx11]()  in src_neural_opencl_OpenCL.cc.o
      std::vector<std::pair<cl::Device, cl::detail::param_traits<cl::detail::cl_program_build_info, 4483>::param_type>, std::allocator<std::pair<cl::Device, cl::detail::param_traits<cl::detail::cl_program_build_info, 4483>::param_type> > > cl::Program::getBuildInfo<4483>(int*) const in src_neural_opencl_OpenCL.cc.o
      OpenCL::initialize(int, OpenCLParams const&) in src_neural_opencl_OpenCL.cc.o
      std::vector<std::pair<cl::Device, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<cl::Device, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::vector(std::vector<std::pair<cl::Device, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<cl::Device, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) in src_neural_opencl_OpenCLTuner.cc.o
      ...
  "_clGetEventProfilingInfo", referenced from:
      Tuner::tune_sgemm[abi:cxx11](int, int, int, int, int) in src_neural_opencl_OpenCLTuner.cc.o
  "_clGetKernelWorkGroupInfo", referenced from:
      OpenCL::initialize(int, OpenCLParams const&) in src_neural_opencl_OpenCL.cc.o
  "_clGetPlatformIDs", referenced from:
      cl::Platform::get(std::vector<cl::Platform, std::allocator<cl::Platform> >*) in src_neural_opencl_OpenCL.cc.o
  "_clGetPlatformInfo", referenced from:
      cl::detail::getPlatformVersion(_cl_platform_id*)       in src_neural_opencl_OpenCL.cc.o
      cl::Platform::getInfo(unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) const in src_neural_opencl_OpenCL.cc.o
      OpenCL::initialize(int, OpenCLParams const&) in src_neural_opencl_OpenCL.cc.o
      cl::detail::getPlatformVersion(_cl_platform_id*)       in src_neural_opencl_OpenCLTuner.cc.o
  "_clGetProgramBuildInfo", referenced from:
      cl::detail::param_traits<cl::detail::cl_program_build_info, 4483>::param_type cl::Program::getBuildInfo<4483>(cl::Device const&, int*) const in src_neural_opencl_OpenCL.cc.o
      std::vector<std::pair<cl::Device, cl::detail::param_traits<cl::detail::cl_program_build_info, 4483>::param_type>, std::allocator<std::pair<cl::Device, cl::detail::param_traits<cl::detail::cl_program_build_info, 4483>::param_type> > > cl::Program::getBuildInfo<4483>(int*) const in src_neural_opencl_OpenCL.cc.o
      std::vector<std::pair<cl::Device, cl::detail::param_traits<cl::detail::cl_program_build_info, 4483>::param_type>, std::allocator<std::pair<cl::Device, cl::detail::param_traits<cl::detail::cl_program_build_info, 4483>::param_type> > > cl::Program::getBuildInfo<4483>(int*) const in src_neural_opencl_OpenCLTuner.cc.o
  "_clGetProgramInfo", referenced from:
      std::vector<std::pair<cl::Device, cl::detail::param_traits<cl::detail::cl_program_build_info, 4483>::param_type>, std::allocator<std::pair<cl::Device, cl::detail::param_traits<cl::detail::cl_program_build_info, 4483>::param_type> > > cl::Program::getBuildInfo<4483>(int*) const in src_neural_opencl_OpenCL.cc.o
      std::vector<std::pair<cl::Device, cl::detail::param_traits<cl::detail::cl_program_build_info, 4483>::param_type>, std::allocator<std::pair<cl::Device, cl::detail::param_traits<cl::detail::cl_program_build_info, 4483>::param_type> > > cl::Program::getBuildInfo<4483>(int*) const in src_neural_opencl_OpenCLTuner.cc.o
  "_clReleaseCommandQueue", referenced from:
      cl::CommandQueue::~CommandQueue() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLNetwork::NewComputation() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLNetwork::~OpenCLNetwork() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLComputation::~OpenCLComputation() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLNetwork::~OpenCLNetwork() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLComputation::~OpenCLComputation() in src_neural_opencl_network_opencl.cc.o
      std::vector<std::unique_ptr<OpenCLBuffers, std::default_delete<OpenCLBuffers> >, std::allocator<std::unique_ptr<OpenCLBuffers, std::default_delete<OpenCLBuffers> > > >::~vector() in src_neural_opencl_network_opencl.cc.o
      ...
  "_clReleaseContext", referenced from:
      cl::Context::~Context() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLNetwork::~OpenCLNetwork() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLNetwork::~OpenCLNetwork() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLNetwork::OpenCLNetwork(pblczero::Net const&, lczero::OptionsDict const&) [clone .cold.283] in src_neural_opencl_network_opencl.cc.o
      cl::Context::~Context() in src_neural_opencl_OpenCL.cc.o
      Tuner::~Tuner() in src_neural_opencl_OpenCL.cc.o
      OpenCL::initialize(int, OpenCLParams const&) in src_neural_opencl_OpenCL.cc.o
      ...
  "_clReleaseDevice", referenced from:
      cl::Device::~Device() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLNetwork::~OpenCLNetwork() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLNetwork::~OpenCLNetwork() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLNetwork::OpenCLNetwork(pblczero::Net const&, lczero::OptionsDict const&) [clone .cold.283] in src_neural_opencl_network_opencl.cc.o
      cl::Device::~Device() in src_neural_opencl_OpenCL.cc.o
      cl::BuildError::~BuildError() in src_neural_opencl_OpenCL.cc.o
      cl::BuildError::~BuildError() in src_neural_opencl_OpenCL.cc.o
      ...
  "_clReleaseEvent", referenced from:
      Tuner::tune_sgemm[abi:cxx11](int, int, int, int, int) in src_neural_opencl_OpenCLTuner.cc.o
      Tuner::tune_sgemm[abi:cxx11](int, int, int, int, int) [clone .cold.434] in src_neural_opencl_OpenCLTuner.cc.o
  "_clReleaseKernel", referenced from:
      lczero::(anonymous namespace)::OpenCLNetwork::NewComputation() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLNetwork::~OpenCLNetwork() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLComputation::~OpenCLComputation() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLNetwork::~OpenCLNetwork() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLComputation::~OpenCLComputation() in src_neural_opencl_network_opencl.cc.o
      std::vector<std::unique_ptr<OpenCLBuffers, std::default_delete<OpenCLBuffers> >, std::allocator<std::unique_ptr<OpenCLBuffers, std::default_delete<OpenCLBuffers> > > >::~vector() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLNetwork::NewComputation() [clone .cold.280] in src_neural_opencl_network_opencl.cc.o
      ...
  "_clReleaseMemObject", referenced from:
      lczero::(anonymous namespace)::OpenCLNetwork::NewComputation() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLNetwork::~OpenCLNetwork() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLComputation::~OpenCLComputation() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLNetwork::~OpenCLNetwork() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLComputation::~OpenCLComputation() in src_neural_opencl_network_opencl.cc.o
      std::vector<std::unique_ptr<OpenCLBuffers, std::default_delete<OpenCLBuffers> >, std::allocator<std::unique_ptr<OpenCLBuffers, std::default_delete<OpenCLBuffers> > > >::~vector() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLNetwork::NewComputation() [clone .cold.280] in src_neural_opencl_network_opencl.cc.o
      ...
  "_clReleaseProgram", referenced from:
      lczero::(anonymous namespace)::OpenCLNetwork::~OpenCLNetwork() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLNetwork::~OpenCLNetwork() in src_neural_opencl_network_opencl.cc.o
      lczero::(anonymous namespace)::OpenCLNetwork::OpenCLNetwork(pblczero::Net const&, lczero::OptionsDict const&) [clone .cold.283] in src_neural_opencl_network_opencl.cc.o
      OpenCL::initialize(int, OpenCLParams const&) in src_neural_opencl_OpenCL.cc.o
      OpenCL::initialize(int, OpenCLParams const&) [clone .cold.424] in src_neural_opencl_OpenCL.cc.o
      Tuner::tune_sgemm[abi:cxx11](int, int, int, int, int) in src_neural_opencl_OpenCLTuner.cc.o
      Tuner::tune_sgemm[abi:cxx11](int, int, int, int, int) [clone .cold.434] in src_neural_opencl_OpenCLTuner.cc.o
      ...
  "_clRetainContext", referenced from:
      OpenCL::initialize(int, OpenCLParams const&) in src_neural_opencl_OpenCL.cc.o
  "_clRetainDevice", referenced from:
      cl::detail::Wrapper<_cl_device_id*>::Wrapper(cl::detail::Wrapper<_cl_device_id*> const&) [clone .isra.346] in src_neural_opencl_OpenCL.cc.o
      cl::detail::Wrapper<_cl_device_id*>::operator=(cl::detail::Wrapper<_cl_device_id*> const&) in src_neural_opencl_OpenCL.cc.o
      std::vector<std::pair<cl::Device, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<cl::Device, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::vector(std::vector<std::pair<cl::Device, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<cl::Device, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) in src_neural_opencl_OpenCL.cc.o
      std::vector<std::pair<cl::Device, cl::detail::param_traits<cl::detail::cl_program_build_info, 4483>::param_type>, std::allocator<std::pair<cl::Device, cl::detail::param_traits<cl::detail::cl_program_build_info, 4483>::param_type> > > cl::Program::getBuildInfo<4483>(int*) const in src_neural_opencl_OpenCL.cc.o
      OpenCL::initialize(int, OpenCLParams const&) in src_neural_opencl_OpenCL.cc.o
      std::vector<std::pair<cl::Device, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<cl::Device, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::vector(std::vector<std::pair<cl::Device, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<cl::Device, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) in src_neural_opencl_OpenCLTuner.cc.o
      std::vector<std::pair<cl::Device, cl::detail::param_traits<cl::detail::cl_program_build_info, 4483>::param_type>, std::allocator<std::pair<cl::Device, cl::detail::param_traits<cl::detail::cl_program_build_info, 4483>::param_type> > > cl::Program::getBuildInfo<4483>(int*) const in src_neural_opencl_OpenCLTuner.cc.o
      ...
  "_clRetainMemObject", referenced from:
      OpenCLBuffers::forward(std::vector<float, std::allocator<float> > const&, std::vector<float, std::allocator<float> >&, std::vector<float, std::allocator<float> >&, int) in src_neural_opencl_OpenCLBuffers.cc.o
  "_clSetKernelArg", referenced from:
      Tuner::tune_sgemm[abi:cxx11](int, int, int, int, int) in src_neural_opencl_OpenCLTuner.cc.o
      OpenCLBuffers::convolve3(int, int, cl::Buffer&, cl::Buffer&, cl::Buffer&, cl::Buffer&, __gnu_cxx::__normal_iterator<cl::Buffer const*, std::vector<cl::Buffer, std::allocator<cl::Buffer> > >, cl::Buffer*, __gnu_cxx::__normal_iterator<cl::Buffer const*, std::vector<cl::Buffer, std::allocator<cl::Buffer> > >, bool, bool, bool, bool, int) in src_neural_opencl_OpenCLBuffers.cc.o
      OpenCLBuffers::convolve1(int, int, cl::Buffer&, cl::Buffer&, cl::Buffer&, __gnu_cxx::__normal_iterator<cl::Buffer const*, std::vector<cl::Buffer, std::allocator<cl::Buffer> > >, int) in src_neural_opencl_OpenCLBuffers.cc.o
      OpenCLBuffers::innerproduct(cl::Buffer&, __gnu_cxx::__normal_iterator<cl::Buffer const*, std::vector<cl::Buffer, std::allocator<cl::Buffer> > >, __gnu_cxx::__normal_iterator<cl::Buffer const*, std::vector<cl::Buffer, std::allocator<cl::Buffer> > >, cl::Buffer&, int, int, int, int) in src_neural_opencl_OpenCLBuffers.cc.o
      OpenCLBuffers::squeeze_excitation(int, int, cl::Buffer&, cl::Buffer&, cl::Buffer&, __gnu_cxx::__normal_iterator<cl::Buffer const*, std::vector<cl::Buffer, std::allocator<cl::Buffer> > >, cl::Buffer&, int) in src_neural_opencl_OpenCLBuffers.cc.o
  "_clWaitForEvents", referenced from:
      Tuner::tune_sgemm[abi:cxx11](int, int, int, int, int) in src_neural_opencl_OpenCLTuner.cc.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
[300/308] Compiling C++ object 'encoder_test@exe/subp...gletest-release-1.8.0_googletest_src_gtest-all.cc.o'.
ninja: build stopped: subcommand failed.
Mac-Pro:lc0-0.20-2.1 $ 
111
oscardssmith commented 5 years ago

Please ask questions like this in the discord. The problem looks like missing dependencies.

MichaelB7 commented 5 years ago

A final comment ,was able to resolve the issue by using clang instead of gcc. If you have gcc as the default . then preface the build command as so:

CC=clang CXX=clang++ ./build.sh