You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, Hugh
I am working on porting OpenCL-coriander to Tensorflow v1.1. BTW, the 0.11 version should work with cudnn (tf-coriander currently under 'pint1022') now.
I just try to address an issue in the compiling process. By checking the calling stack of building process, there are some differences in the traces. Here is the summary of the differences:
tf_gpu_kernel_library rule:
(tf-coriander)
gather_functor_gpu.cu.pic.o (llvm-4.0/bin/clang++)
one calls cocl, the other calls clang++ in step one.
The real issue is that there is a missing symbol error in the linker. for example:
this is in libcwiseop.lo
ArgMax<Eigen::GpuDevice, float, int>::Reduce2(Eigen::GpuDevice const&, Eigen::TensorMap<Eigen::Tensor<float const, 2, 1, int>
the caller in python.so looking for
ArgMax<Eigen::GpuDevice, float, int>::Reduce2(Eigen::GpuDevice const&, Eigen::TensorMap<Eigen::Tensor<float const, 2, 1, long>,
'int' vs 'long'.
My theory is that the two stages compiling causes Eigen::Index to be parsed and coded into the different types. The issue in the building traces shows that one calls 'cocl' the other 'clang++'.
do you have any clues or suggestions how it goes or where to look for the root-cause?
thanks,
steven
The text was updated successfully, but these errors were encountered:
I don't know off the top of my head, but I suspect that there is some code
somewhere that writes out 32 bit integers as "long". Someone would need to
actually look through the code really. I think your idea sounds reasonable.
I suspect you will need to wade through the opencl generation code...
On Thu, Jan 31, 2019, 18:26 Steven Wang ***@***.***> wrote:
Hi, Hugh
I am working on porting OpenCL-coriander to Tensorflow v1.1. BTW, the 0.11
version should work with cudnn (tf-coriander currently under 'pint1022')
now.
I just try to address an issue in the compiling process. By checking the
calling stack of building process, there are some differences in the
traces. Here is the summary of the differences:
tf_gpu_kernel_library rule:
(tf-coriander)
1. gather_functor_gpu-hostraw.ll (cocl)
2. gather_functor_gpu-hostpatched.ll (patch_hostside )
3. gather_functor_gpu.cu.pic.o (llvm-4.0/bin/clang++)
(tensorflow r1.1)
4. gather_functor_gpu-hostraw.ll (llvm-4.0/bin/clang++)
5. gather_functor_gpu-hostpatched.ll (patch_hostside )
6. gather_functor_gpu.cu.pic.o (llvm-4.0/bin/clang++)
one calls cocl, the other calls clang++ in step one.
The real issue is that there is a missing symbol error in the linker. for
example:
this is in libcwiseop.lo
ArgMax<Eigen::GpuDevice, float, int>::Reduce2(Eigen::GpuDevice const&,
Eigen::TensorMap<Eigen::Tensor<float const, 2, 1, int>
the caller in python.so looking for
ArgMax<Eigen::GpuDevice, float, int>::Reduce2(Eigen::GpuDevice const&,
Eigen::TensorMap<Eigen::Tensor<float const, 2, 1, long>,
'int' vs 'long'.
My theory is that the two stages compiling causes Eigen::Index to be
parsed and coded into the different types. The issue in the building traces
shows that one calls 'cocl' the other 'clang++'.
do you have any clues or suggestions how it goes or where to look for the
root-cause?
thanks,
steven
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#94>, or mute the
thread
<https://github.com/notifications/unsubscribe-auth/AAHiqDiIucyqzJWJvHWZKygLhAopHAxRks5vI3urgaJpZM4adW6p>
.
Hi, Hugh
I am working on porting OpenCL-coriander to Tensorflow v1.1. BTW, the 0.11 version should work with cudnn (tf-coriander currently under 'pint1022') now.
I just try to address an issue in the compiling process. By checking the calling stack of building process, there are some differences in the traces. Here is the summary of the differences:
tf_gpu_kernel_library rule:
(tf-coriander)
(tensorflow r1.1)
one calls cocl, the other calls clang++ in step one.
The real issue is that there is a missing symbol error in the linker. for example:
this is in libcwiseop.lo
ArgMax<Eigen::GpuDevice, float, int>::Reduce2(Eigen::GpuDevice const&, Eigen::TensorMap<Eigen::Tensor<float const, 2, 1, int>
the caller in python.so looking for
ArgMax<Eigen::GpuDevice, float, int>::Reduce2(Eigen::GpuDevice const&, Eigen::TensorMap<Eigen::Tensor<float const, 2, 1, long>,
'int' vs 'long'.
My theory is that the two stages compiling causes Eigen::Index to be parsed and coded into the different types. The issue in the building traces shows that one calls 'cocl' the other 'clang++'.
do you have any clues or suggestions how it goes or where to look for the root-cause?
thanks,
steven
The text was updated successfully, but these errors were encountered: