Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

TensorFlowは、Altera OpenCLをサポートしている。


Twitterこのツイートを拾った。
引用
Tensorflow used to have FPGA support, but Google snuck it out without commit msg comment!

ここによると、Googleオープンソースとして公開してTensorFlowはAlteraのOpenCLをサポートしているとのこと。
引用
enum class PlatformKind {
  kInvalid,
  kCuda,
  kOpenCL,
  kOpenCLAltera,  // Altera FPGA OpenCL platform.
                  // See documentation: go/fpgaopencl
                  // (StreamExecutor integration)
  kHost,
  kMock,
  kSize,
};

ということで、Google君に聞いてみたら、ありました。
ここに(リンク切れ)、0.5.0バージョンの時のコード。
StreamExecutorというクラスがプロットフォームを指定している部分ですね。
Cuda、OpenCL、そして、OpenCLAltera。
platform.hが残っていた。

ここ(リンク切れ)にも、OpenCLAlteraの文字が。。。ここに残っていた
引用
StreamExecutorFactory* MakeOpenCLAlteraExecutorImplementation() {
  static StreamExecutorFactory instance;
  return &instance;
}
ここにも(リンク切れ)ここに残っていた
引用
  internal::StreamExecutorFactory factory;
  switch (platform_kind) {
    case PlatformKind::kCuda:
      factory = *internal::MakeCUDAExecutorImplementation();
      break;
    case PlatformKind::kOpenCL:
      factory = *internal::MakeOpenCLExecutorImplementation();
      break;
    case PlatformKind::kOpenCLAltera:
      factory = *internal::MakeOpenCLAlteraExecutorImplementation();
      break;
    case PlatformKind::kHost:
      factory = internal::MakeHostExecutorImplementation;
      break;
    default:
      factory = nullptr;
  }

しかし、最新版のコードでは、無くなっていますね。
いや、0.6.0に時点で無くなっています。
残念です。