Open samhodge opened 6 years ago
It is fixed on the ATen master, works OK on Ubuntu, but OSX clang 8.0 and clang 9.0 not so much.
OK when I use the aten from the master I get the following when building pytorch-cpp examples
HodgeFalysiMac2:build hodgefamily$ make -j8
Scanning dependencies of target opencv_realtime_webcam_human_segmentation
Scanning dependencies of target opencv_realtime_webcam_imagenet_classification
Scanning dependencies of target read_allocated_gpu_memory
Scanning dependencies of target pytorch_results_deviation
[ 12%] Building CXX object CMakeFiles/read_allocated_gpu_memory.dir/examples/read_allocated_gpu_memory.cpp.o
[ 25%] Building CXX object CMakeFiles/pytorch_results_deviation.dir/examples/pytorch_results_deviation.cpp.o
[ 50%] Building CXX object CMakeFiles/opencv_realtime_webcam_imagenet_classification.dir/examples/opencv_realtime_webcam_imagenet_classification.cpp.o
[ 50%] Building CXX object CMakeFiles/opencv_realtime_webcam_human_segmentation.dir/examples/opencv_realtime_webcam_human_segmentation.cpp.o
[ 62%] Linking CXX executable read_allocated_gpu_memory
[ 62%] Built target read_allocated_gpu_memory
In file included from /Volumes/Hodge/dev/pytorch-cpp/examples/pytorch_results_deviation.cpp:12:
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:341:11: error: use of undeclared identifier
'Threshold_updateOutput'
Threshold_updateOutput(input, input, 0, 0, true) ;
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:478:15: error: use of undeclared identifier
'SpatialDilatedConvolution_updateOutput'
SpatialDilatedConvolution_updateOutput(input,
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:496:15: error: use of undeclared identifier
'SpatialConvolutionMM_updateOutput'
SpatialConvolutionMM_updateOutput(input,
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:583:11: error: use of undeclared identifier
'BatchNormalization_updateOutput'
BatchNormalization_updateOutput(input,
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:717:11: error: use of undeclared identifier
'SpatialMaxPooling_updateOutput'
SpatialMaxPooling_updateOutput(input,
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:791:11: error: use of undeclared identifier
'SpatialAveragePooling_updateOutput'
SpatialAveragePooling_updateOutput(input,
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:888:20: error: no matching member function for call to
'addmm_'
output.addmm_(0, 1, input, parameters["weight"].t());
~~~~~~~^~~~~~
/Volumes/Hodge/dev/pytorch-cpp/ATen/build/src/ATen/ATen/TensorMethods.h:705:25: note: candidate function
not viable: no known conversion from 'int' to 'const at::Tensor' for 1st argument
inline Tensor & Tensor::addmm_(const Tensor & mat1, const Tensor & mat2, Scalar beta, Scalar alpha) {
^
/Volumes/Hodge/dev/pytorch-cpp/ATen/build/src/ATen/ATen/TensorMethods.h:708:25: note: candidate function
not viable: no known conversion from 'int' to 'at::SparseTensor' for 1st argument
inline Tensor & Tensor::addmm_(SparseTensor mat1, const Tensor & mat2, Scalar beta, Scalar alpha) {
^
In file included from /Volumes/Hodge/dev/pytorch-cpp/examples/pytorch_results_deviation.cpp:12:
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:1407:37: error: no matching member function for call to
'tensorFromBlob'
buffer_tensor = CPU(kFloat).tensorFromBlob(float_buffer, dims_int);
~~~~~~~~~~~~^~~~~~~~~~~~~~
/Volumes/Hodge/dev/pytorch-cpp/ATen/build/src/ATen/ATen/Type.h:117:10: note: candidate function not
viable: no known conversion from 'vector<long>' to 'IntList' (aka 'ArrayRef<long long>') for 2nd
argument
Tensor tensorFromBlob(void * data, IntList sizes, const std::function<void(void*)> & deleter=no...
^
/Volumes/Hodge/dev/pytorch-cpp/ATen/build/src/ATen/ATen/Type.h:118:10: note: candidate function not
viable: requires at least 3 arguments, but 2 were provided
Tensor tensorFromBlob(void * data, IntList sizes, IntList strides, const std::function<void(voi...
^
In file included from /Volumes/Hodge/dev/pytorch-cpp/examples/pytorch_results_deviation.cpp:12:
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:1489:7: error: use of undeclared identifier
'SpatialUpSamplingBilinear_updateOutput'
SpatialUpSamplingBilinear_updateOutput(input_tensor, output, output_height, output_width);
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:1522:7: error: use of undeclared identifier
'SpatialAveragePooling_updateOutput'
SpatialAveragePooling_updateOutput(input_tensor,
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:1541:7: error: use of undeclared identifier
'SoftMax_updateOutput'
SoftMax_updateOutput(input_tensor, output);
^
In file included from /Volumes/Hodge/dev/pytorch-cpp/examples/opencv_realtime_webcam_imagenet_classification.cpp:12:
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:341:11: error: use of undeclared identifier
'Threshold_updateOutput'
Threshold_updateOutput(input, input, 0, 0, true) ;
^
In file included from /Volumes/Hodge/dev/pytorch-cpp/examples/opencv_realtime_webcam_human_segmentation.cpp:14:
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:341:11: error: use of undeclared identifier
'Threshold_updateOutput'
Threshold_updateOutput(input, input, 0, 0, true) ;
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:478:15: error: use of undeclared identifier
'SpatialDilatedConvolution_updateOutput'
SpatialDilatedConvolution_updateOutput(input,
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:478:15: error: use of undeclared identifier
'SpatialDilatedConvolution_updateOutput'
SpatialDilatedConvolution_updateOutput(input,
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:496:15: error: use of undeclared identifier
'SpatialConvolutionMM_updateOutput'
SpatialConvolutionMM_updateOutput(input,
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:496:15: error: use of undeclared identifier
'SpatialConvolutionMM_updateOutput'
SpatialConvolutionMM_updateOutput(input,
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:583:11: error: use of undeclared identifier
'BatchNormalization_updateOutput'
BatchNormalization_updateOutput(input,
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:583:11: error: use of undeclared identifier
'BatchNormalization_updateOutput'
BatchNormalization_updateOutput(input,
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:717:11: error: use of undeclared identifier
'SpatialMaxPooling_updateOutput'
SpatialMaxPooling_updateOutput(input,
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:717:11: error: use of undeclared identifier
'SpatialMaxPooling_updateOutput'
SpatialMaxPooling_updateOutput(input,
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:791:11: error: use of undeclared identifier
'SpatialAveragePooling_updateOutput'
SpatialAveragePooling_updateOutput(input,
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:791:11: error: use of undeclared identifier
'SpatialAveragePooling_updateOutput'
SpatialAveragePooling_updateOutput(input,
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:888:20: error: no matching member function for call to
'addmm_'
output.addmm_(0, 1, input, parameters["weight"].t());
~~~~~~~^~~~~~
/Volumes/Hodge/dev/pytorch-cpp/ATen/build/src/ATen/ATen/TensorMethods.h:705:25: note: candidate function
not viable: no known conversion from 'int' to 'const at::Tensor' for 1st argument
inline Tensor & Tensor::addmm_(const Tensor & mat1, const Tensor & mat2, Scalar beta, Scalar alpha) {
^
/Volumes/Hodge/dev/pytorch-cpp/ATen/build/src/ATen/ATen/TensorMethods.h:708:25: note: candidate function
not viable: no known conversion from 'int' to 'at::SparseTensor' for 1st argument
inline Tensor & Tensor::addmm_(SparseTensor mat1, const Tensor & mat2, Scalar beta, Scalar alpha) {
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:888:20: error: no matching member function for call to
'addmm_'
output.addmm_(0, 1, input, parameters["weight"].t());
~~~~~~~^~~~~~
/Volumes/Hodge/dev/pytorch-cpp/ATen/build/src/ATen/ATen/TensorMethods.h:705:25: note: candidate function
not viable: no known conversion from 'int' to 'const at::Tensor' for 1st argument
inline Tensor & Tensor::addmm_(const Tensor & mat1, const Tensor & mat2, Scalar beta, Scalar alpha) {
^
/Volumes/Hodge/dev/pytorch-cpp/ATen/build/src/ATen/ATen/TensorMethods.h:708:25: note: candidate function
not viable: no known conversion from 'int' to 'at::SparseTensor' for 1st argument
inline Tensor & Tensor::addmm_(SparseTensor mat1, const Tensor & mat2, Scalar beta, Scalar alpha) {
^
In file included from /Volumes/Hodge/dev/pytorch-cpp/examples/opencv_realtime_webcam_imagenet_classification.cpp:12:
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:1407:37: error: no matching member function for call to
'tensorFromBlob'
buffer_tensor = CPU(kFloat).tensorFromBlob(float_buffer, dims_int);
~~~~~~~~~~~~^~~~~~~~~~~~~~
/Volumes/Hodge/dev/pytorch-cpp/ATen/build/src/ATen/ATen/Type.h:117:10: note: candidate function not
viable: no known conversion from 'vector<long>' to 'IntList' (aka 'ArrayRef<long long>') for 2nd
argument
Tensor tensorFromBlob(void * data, IntList sizes, const std::function<void(void*)> & deleter=no...
^
/Volumes/Hodge/dev/pytorch-cpp/ATen/build/src/ATen/ATen/Type.h:118:10: note: candidate function not
viable: requires at least 3 arguments, but 2 were provided
Tensor tensorFromBlob(void * data, IntList sizes, IntList strides, const std::function<void(voi...
^
In file included from /Volumes/Hodge/dev/pytorch-cpp/examples/opencv_realtime_webcam_human_segmentation.cpp:14:
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:1407:37: error: no matching member function for call to
'tensorFromBlob'
buffer_tensor = CPU(kFloat).tensorFromBlob(float_buffer, dims_int);
~~~~~~~~~~~~^~~~~~~~~~~~~~
/Volumes/Hodge/dev/pytorch-cpp/ATen/build/src/ATen/ATen/Type.h:117:10: note: candidate function not
viable: no known conversion from 'vector<long>' to 'IntList' (aka 'ArrayRef<long long>') for 2nd
argument
Tensor tensorFromBlob(void * data, IntList sizes, const std::function<void(void*)> & deleter=no...
^
/Volumes/Hodge/dev/pytorch-cpp/ATen/build/src/ATen/ATen/Type.h:118:10: note: candidate function not
viable: requires at least 3 arguments, but 2 were provided
Tensor tensorFromBlob(void * data, IntList sizes, IntList strides, const std::function<void(voi...
^
In file included from /Volumes/Hodge/dev/pytorch-cpp/examples/opencv_realtime_webcam_imagenet_classification.cpp:12:
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:1489:7: error: use of undeclared identifier
'SpatialUpSamplingBilinear_updateOutput'
SpatialUpSamplingBilinear_updateOutput(input_tensor, output, output_height, output_width);
^
In file included from /Volumes/Hodge/dev/pytorch-cpp/examples/opencv_realtime_webcam_human_segmentation.cpp:14:
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:1489:7: error: use of undeclared identifier
'SpatialUpSamplingBilinear_updateOutput'
SpatialUpSamplingBilinear_updateOutput(input_tensor, output, output_height, output_width);
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:1522:7: error: use of undeclared identifier
'SpatialAveragePooling_updateOutput'
SpatialAveragePooling_updateOutput(input_tensor,
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:1522:7: error: use of undeclared identifier
'SpatialAveragePooling_updateOutput'
SpatialAveragePooling_updateOutput(input_tensor,
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:1541:7: error: use of undeclared identifier
'SoftMax_updateOutput'
SoftMax_updateOutput(input_tensor, output);
^
/Volumes/Hodge/dev/pytorch-cpp/src/pytorch.cpp:1541:7: error: use of undeclared identifier
'SoftMax_updateOutput'
SoftMax_updateOutput(input_tensor, output);
^
11 errors generated.
make[2]: *** [CMakeFiles/pytorch_results_deviation.dir/examples/pytorch_results_deviation.cpp.o] Error 1
make[1]: *** [CMakeFiles/pytorch_results_deviation.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
11 errors generated.
11 errors generated.
make[2]: *** [CMakeFiles/opencv_realtime_webcam_human_segmentation.dir/examples/opencv_realtime_webcam_human_segmentation.cpp.o] Error 1
make[1]: *** [CMakeFiles/opencv_realtime_webcam_human_segmentation.dir/all] Error 2
make[2]: *** [CMakeFiles/opencv_realtime_webcam_imagenet_classification.dir/examples/opencv_realtime_webcam_imagenet_classification.cpp.o] Error 1
make[1]: *** [CMakeFiles/opencv_realtime_webcam_imagenet_classification.dir/all] Error 2
make: *** [all] Error 2
I have made some tiny edits to make it compliant with macOS See attached file. CMakeLists.txt
Any hints at how I can get around this?
It seems the symbols are indeed there in some form
HodgeFalysiMac2:build hodgefamily$ nm ../ATen/build/src/ATen/libATen.1.dylib | c++filt | grep Threshold_updateOutput
0000000003386700 T _THNN_CudaDoubleThreshold_updateOutput
000000000336f510 T _THNN_CudaHalfThreshold_updateOutput
000000000337afb0 T _THNN_CudaThreshold_updateOutput
00000000007add10 T _THNN_DoubleThreshold_updateOutput
00000000007aadf0 T _THNN_FloatThreshold_updateOutput
All of the tests pass for Aten apart from this one:
HodgeFalysiMac2:build hodgefamily$ ../ATen/build/src/ATen/test/scalar_tensor_test
1
[ CPUFloatTensor{} ]
[ Tensor (empty) ]
1
[ CPUFloatTensor{1} ]
1
[ CPUFloatTensor{1,1} ]
1
1
[ CPUFloatTensor{2} ]
1
[ CUDAFloatTensor{} ]
[ Tensor (empty) ]
libc++abi.dylib: terminating with uncaught exception of type std::runtime_error: invalid argument 2: out of range at /Volumes/Hodge/dev/pytorch-cpp/ATen/src/THC/generic/THCTensor.c:23
Abort trap: 6
Hi @samhodge -- I didn't really test it on macos yet but I will have a look at this
Thank you for letting me know about these problems 👍
@warmspringwinds You are welcome, thanks for the awesome work with pytorch-cpp, you have a massive fan in Adelaide South Australia. When you have something to test let me know.
@samhodge Yay, You are welcome :)
For the future, try to get a linux machine -- a lot of open source projects are having issues with clang
I would be happy with gcc on Darwin but nvidia and nvcc pulled the pin. Unbuntu 16 is working fine on dual boot of the same hardware.
@samhodge Hi, can you list the commands for building ATen with CUDA on Ubuntu? I followed the installation guide but failed. Here is the error message I got.
-- Does not need to define long separately. -- std::exception_ptr is supported. -- NUMA is not available -- Turning off deprecation warning due to glog. -- Current compiler supports avx2 extention. Will build perfkernels. -- The BLAS backend of choice:MKL -- Checking for [mkl_gf_lp64 - mkl_gnu_thread - mkl_core - gomp - pthread - m - dl] -- Library mkl_gf_lp64: /home/pharrell/anaconda3/envs/pytorch-0.4.0/lib/libmkl_gf_lp64.so -- Library mkl_gnu_thread: /home/pharrell/anaconda3/envs/pytorch-0.4.0/lib/libmkl_gnu_thread.so -- Library mkl_core: /home/pharrell/anaconda3/envs/pytorch-0.4.0/lib/libmkl_core.so -- Library gomp: -fopenmp -- Library pthread: /usr/lib/x86_64-linux-gnu/libpthread.so -- Library m: /usr/lib/x86_64-linux-gnu/libm.so -- Library dl: /usr/lib/x86_64-linux-gnu/libdl.so -- Found system Eigen at /usr/include/eigen3 -- Could NOT find pybind11 (missing: pybind11_INCLUDE_DIR) -- Found CUDA: /usr/local/cuda (found suitable version "9.0", minimum required is "7.0") -- Caffe2: CUDA detected: 9.0 -- Caffe2: CUDA nvcc is: /usr/local/cuda/bin/nvcc -- Caffe2: CUDA toolkit directory: /usr/local/cuda -- Caffe2: Header version is: 9.0 -- Found cuDNN: v7.0.5 (include: /usr/local/cuda/include, library: /usr/local/cuda/lib64/libcudnn.so) -- Autodetected CUDA architecture(s): 6.1 -- Added CUDA NVCC flags for: -gencode;arch=compute_61,code=sm_61 CMake Error at /home/pharrell/codebase/github/ATen/cmake/public/utils.cmake:5 (set): set given invalid arguments for CACHE mode. Call Stack (most recent call first): /home/pharrell/codebase/github/ATen/cmake/Dependencies.cmake:410 (caffe2_update_option) CMakeLists.txt:78 (include)
CMake Error at /home/pharrell/codebase/github/ATen/cmake/public/utils.cmake:5 (set): set given invalid arguments for CACHE mode. Call Stack (most recent call first): /home/pharrell/codebase/github/ATen/cmake/Dependencies.cmake:427 (caffe2_update_option) CMakeLists.txt:78 (include)
-- Could NOT find CUB (missing: CUB_INCLUDE_DIR)
-- Found CUDA with FP16 support, compiling with torch.cuda.HalfTensor
-- Removing -DNDEBUG from compile flags
-- Compiling with OpenMP support
-- MAGMA not found. Compiling without MAGMA support
-- Could not find hardware support for NEON on this machine.
-- No OMAP3 processor on this machine.
-- No OMAP4 processor on this machine.
-- SSE2 Found
-- SSE3 Found
-- AVX Found
-- AVX2 Found
-- Atomics: using GCC intrinsics
-- Found a library with BLAS API (mkl).
-- Found a library with LAPACK API. (mkl)
-- Found CUDA: /usr/local/cuda (found suitable version "9.0", minimum required is "5.5")
-- Could NOT find MKLDNN (missing: MKLDNN_INCLUDE_DIR MKLDNN_LIBRARY)
-- MKLDNN not found. Compiling without MKLDNN support
-- Configuring build for SLEEF-v3.2
Target system: Linux-4.13.0-45-generic
Target processor: x86_64
Host system: Linux-4.13.0-45-generic
Host processor: x86_64
Detected C compiler: GNU @ /usr/bin/cc
-- Using option -Wall -Wno-unused -Wno-attributes -Wno-unused-result -Wno-psabi -ffp-contract=off -fno-math-errno -fno-trapping-math
to compile libsleef
-- Building shared libs : OFF
-- MPFR : /home/pharrell/anaconda3/lib/libmpfr.so
-- MPFR header file in /home/pharrell/anaconda3/include
-- GMP : /home/pharrell/anaconda3/lib/libgmp.so
-- RUNNING_ON_TRAVIS : 0
-- COMPILER_SUPPORTS_OPENMP : 1
-- Configuring incomplete, errors occurred!
I am getting:
4 errors generated. make[2]: [src/ATen/CMakeFiles/ATen.dir/ATen/CPUByteType.cpp.o] Error 1 make[2]: Waiting for unfinished jobs.... /Volumes/Hodge/dev/pytorch-cpp/ATen/build/src/ATen/ATen/CPUCharType.cpp:1913:12: error: conversion from 'long' to 'at::Scalar' is ambiguous return THCharTensorsumall(self->tensor); ^
~~~~~~~~~ /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor AT_FORALL_SCALAR_TYPES(DEFINE_IMPLICIT_CTOR) ^ /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/build/src/ATen/ATen/CPUCharType.cpp:1947:12: error: conversion from 'long' to 'at::Scalar' is ambiguous return THCharTensorprodall(self->tensor); ^~~~~~~~~~~ /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor AT_FORALL_SCALAR_TYPES(DEFINE_IMPLICIT_CTOR) ^ /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/build/src/ATen/ATen/CPUCharType.cpp:2002:12: error: conversion from 'long' to 'at::Scalar' is ambiguous return THCharTensortrace(self->tensor); ^~~~~~~~~ /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor AT_FORALL_SCALAR_TYPES(DEFINE_IMPLICIT_CTOR) ^ /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/build/src/ATen/ATen/CPUCharType.cpp:2534:12: error: conversion from 'long' to 'at::Scalar' is ambiguous return THCharTensordot(self->tensor, tensor_->tensor); ^~~~~~~~~~~~ /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor AT_FORALL_SCALAR_TYPES(DEFINE_IMPLICIT_CTOR) ^ /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor /Volumes/Hodge/dev/pytorch-cpp/ATen/src/ATen/../ATen/Scalar.h:25:26: note: candidate constructor 4 errors generated.I will test to see if that is fixed on the ATen master.