Hi. Recently, we got a security update for Spectre. As a side-effect, we also got an updated gcc (5.3.0 -> 5.5.0). So far so good. Thank you very much.
Let me briefly introduce the situation. I'm a graduate student in CS dept. I use TensorFlow, a machine learning library developed by google, to do my experiments at my lab. Of course it runs on a slackware machine.
I usually compile the TensorFlow source code for optimization. However, it can not be compiled with updated gcc (5.5.0), like this;
Code:
INFO: From Compiling tensorflow/contrib/resampler/kernels/resampler_ops_gpu.cu.cc:
/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/include/avx512fintrin.h(9220): error: argument of type "const void *" is incompatible with parameter of type "const float *"
/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/include/avx512fintrin.h(9231): error: argument of type "const void *" is incompatible with parameter of type "const float *"
/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/include/avx512fintrin.h(9244): error: argument of type "const void *" is incompatible with parameter of type "const double *"
/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/include/avx512fintrin.h(9255): error: argument of type "const void *" is incompatible with parameter of type "const double *"
So I googled a little bit, and found the following issue:
https://github.com/tensorflow/tensorflow/issues/10220
and,
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=76731
which says that,
Quote:
All of the scatter/gather intrinsics in avx512intrin.h use int/float/double pointers, which is incorrect.
|
So I think that maybe we need a patch for gcc, if I tracked down the matter correctly. I'll glad to hear about this from community. Thank you.
Best regards,
sungjin.
Appendix.
How to reproduce.
0. (optionally) compile kernel to enable numa support, and install NVIDIA driver, CUDA, cuDNN.
1. download TensorFlow source code.
git clone
https://github.com/tensorflow/tensorflow
cd tensorflow
git checkout r1.5
2. configure TensorFlow with GPU support.
./configure
3. compile it (you need bazel).