lukeiwanski / tensorflow

OpenCL support for TensorFlow via SYCL
Apache License 2.0
65 stars 14 forks source link

Compile error in checkComputeCppIsSupported() function #189

Closed mirh closed 6 years ago

mirh commented 6 years ago

If I comment the thing in def main(), everything works properly.


System information

lukeiwanski commented 6 years ago

Hey @mirh thanks for the report!

It seems like python 3.6.3 picks on subprocess not decoding the output before split: https://stackoverflow.com/questions/45983589/typeerror-a-bytes-like-object-is-required-not-str-in-subprocess-check-output

Can you give this commit a spin: https://github.com/lukeiwanski/tensorflow/commit/6631d9c054c9b0531e8f9fd89031bb7f0c4612e1

DuncanMcBain commented 6 years ago

Hi @mirh, Are you running on Arch by any chance? Looking just now, I see I should read more closely - you're using Manjaro. Arch-like systems have historically had two problems with our stuff, which are both on display here. Firstly, the hard error is that Arch and its derivatives default to Python 3, not Python 2 (which is probably a good idea). I see Luke has a possible fix for that.

Otherwise, the thing about libtinfo.so is that Arch and friends have a newer version by default than most other distributions, if you find the legacy libtinfo-5 package in pacman I think that should make the error go away, IIRC (I've used Arch in the past and had to fix similar problems, but it was a decent while ago).

mirh commented 6 years ago

Don't worry, computecpp package maintainer has been smart enough to add ncurses5-compat-libs as a dependency. (a pity you have to manually download ccpp tarball though :\)

Anyway, will try that commit - as soon as my potato has ended current compilation (yes, it's still running since before I reported this)

mirh commented 6 years ago

Yup, fixed. (also, still compiling the other)

mirh commented 6 years ago

The no version information available warning information is still there though. Not sure if anything could be done for it.

EDIT: solved by compiling ncurses with --with-versioned-syms configure switch

lukeiwanski commented 6 years ago

can you paste /opt/ComputeCpp-CE-0.5.0-Ubuntu-16.04-64bit/bin/compute++ --version output ?

mirh commented 6 years ago
/opt/ComputeCpp-CE-0.5.0-Ubuntu-16.04-64bit/bin/compute++: /usr/lib/libtinfo.so.5: no version information available (required by /opt/ComputeCpp-CE-0.5.0-Ubuntu-16.04-64bit/bin/compute++)
Codeplay ComputeCpp - CE 0.5.0 Device Compiler - clang version 3.9.0 (git@git.office.codeplay.com:sycl/clang.git cd9ced1d65233773a97089ca434f0369b8371cce) (git@git.office.codeplay.com:sycl/llvm.git d84be3e43470fcd53a94857c5c7344fb49ac0991) (based on LLVM 3.9.0svn)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/ComputeCpp-CE-0.5.0-Ubuntu-16.04-64bit/bin
lukeiwanski commented 6 years ago

Ok, are you up for some remote debugging? :) ( I cannot reproduce locally )

Could you add print(cpp_version) after https://github.com/lukeiwanski/tensorflow/blob/dev/amd_gpu/third_party/sycl/crosstool/computecpp.tpl#L72 ?

That should print 0.5.0 but I do wonder if the decode('utf-8') is doing what it suppose

mirh commented 6 years ago

My teapot is always up for hard screwing.

Anyway - I'm not sure why looking into TF, when "no version information available" string was also returned by 'standalone' compute++ ?

lukeiwanski commented 6 years ago

Ah, I misunderstood the no version information available post, sorry! @DuncanMcBain did you guys ever encounter this? /opt/ComputeCpp-CE-0.5.0-Ubuntu-16.04-64bit/bin/compute++: /usr/lib/libtinfo.so.5: no version information available (required by /opt/ComputeCpp-CE-0.5.0-Ubuntu-16.04-64bit/bin/compute++)

DuncanMcBain commented 6 years ago

I've seen it before, but it's probably harmless. Unless actual crashes are happening and can be traced to this, I don't think there's anything we need to do about it (it would involve compiling and linking with the same or higher version of libtinfo on your machine, but we don't really have the resources or desire to set that up right now).

mirh commented 6 years ago

Cool. Speaking of crashes - where should I report one happening somewhere between libComputeCpp.so and libamdocl64.so ?

DuncanMcBain commented 6 years ago

To me, basically. You can either use the ComputeCpp SDK tracker or the Jira we have accessible through our website, but I'll look at either.