提交 ab1f2de8 编写于 作者: L Liangliang He

Add OpenCL 1.2 shared library loader and wrapper

上级 4943f2aa
workspace(name = "mace")
# proto_library rules implicitly depend on @com_google_protobuf//:protoc,
# which is the proto-compiler.
# This statement defines the @com_google_protobuf repo.
http_archive(
name = "org_tensorflow",
urls = ["http://v9.git.n.xiaomi.com/deep-learning/tensorflow/repository/archive.zip?ref=v1.3.0"],
strip_prefix = "tensorflow-v1.3.0-9e76bf324f6bac63137a02bb6e6ec9120703ea9b",
sha256 = "97049d3a59a77858e12c55422bd129261b14e869a91aebcdcc39439393c00dc7",
name = "com_google_protobuf",
urls = ["http://v9.git.n.xiaomi.com/deep-learning/protobuf/repository/archive.zip?ref=c7457ef65a7a8584b1e3bd396c401ccf8e275ffa"],
strip_prefix = "protobuf-c7457ef65a7a8584b1e3bd396c401ccf8e275ffa-c7457ef65a7a8584b1e3bd396c401ccf8e275ffa",
sha256 = "0a54cae83b77f4b54b7db4eaebadd81fbe91655e84a1ef3f6d29116d75f3a45f",
)
# TensorFlow depends on "io_bazel_rules_closure" so we need this here.
# Needs to be kept in sync with the same target in TensorFlow's WORKSPACE file.
# cc_proto_library rules implicitly depend on @com_google_protobuf_cc//:cc_toolchain,
# which is the C++ proto runtime (base classes and common utilities).
http_archive(
name = "io_bazel_rules_closure",
sha256 = "60fc6977908f999b23ca65698c2bb70213403824a84f7904310b6000d78be9ce",
strip_prefix = "rules_closure-5ca1dab6df9ad02050f7ba4e816407f88690cf7d",
urls = [
"http://bazel-mirror.storage.googleapis.com/github.com/bazelbuild/rules_closure/archive/5ca1dab6df9ad02050f7ba4e816407f88690cf7d.tar.gz", # 2017-02-03
"https://github.com/bazelbuild/rules_closure/archive/5ca1dab6df9ad02050f7ba4e816407f88690cf7d.tar.gz",
],
name = "com_google_protobuf_cc",
urls = ["http://v9.git.n.xiaomi.com/deep-learning/protobuf/repository/archive.zip?ref=c7457ef65a7a8584b1e3bd396c401ccf8e275ffa"],
strip_prefix = "protobuf-c7457ef65a7a8584b1e3bd396c401ccf8e275ffa-c7457ef65a7a8584b1e3bd396c401ccf8e275ffa",
sha256 = "0a54cae83b77f4b54b7db4eaebadd81fbe91655e84a1ef3f6d29116d75f3a45f",
)
new_http_archive(
......@@ -27,16 +27,19 @@ new_http_archive(
build_file = "mace/third_party/gtest.BUILD",
)
# Import all of the tensorflow dependencies.
load('@org_tensorflow//tensorflow:workspace.bzl', 'tf_workspace')
tf_workspace(tf_repo_name = "org_tensorflow")
new_http_archive(
name = "ncnn",
urls = ["http://v9.git.n.xiaomi.com/deep-learning/ncnn/repository/archive.zip?ref=bazel-fix"],
strip_prefix = "ncnn-bazel-fix-ce5e416164545e1ab37fe3544502624f605ca234/src",
sha256 = "e6d76356179bcdbb988279f0b42ab050c8af55970e1ad767787ad21d5b7aad51",
build_file = "mace/third_party/ncnn.BUILD",
name = "six_archive",
urls = [
"http://mirror.bazel.build/pypi.python.org/packages/source/s/six/six-1.10.0.tar.gz",
"https://pypi.python.org/packages/source/s/six/six-1.10.0.tar.gz",
],
sha256 = "105f8d68616f8248e24bf0e9372ef04d3cc10104f1980f54d57b2ce73a5ad56a",
strip_prefix = "six-1.10.0",
build_file = "mace/third_party/six.BUILD",
)
bind(
name = "six",
actual = "@six_archive//:six",
)
new_http_archive(
......@@ -50,6 +53,6 @@ new_http_archive(
# Set up Android NDK
android_ndk_repository(
name = "androidndk",
# Android 4.0
api_level = 14
# Android 5.0
api_level = 21
)
......@@ -12,11 +12,15 @@ load("//mace:mace.bzl", "if_android")
cc_library(
name = "opencl_runtime",
srcs = glob([
"platform/opencl/*.hpp",
"platform/opencl/cl.hpp",
"platform/opencl/cl2.hpp",
"platform/opencl/opencl_wrapper.h",
"platform/opencl/opencl_wrapper.cc",
]),
copts = ["-std=c++11"],
deps = [
"@opencl_headers//:opencl20_headers",
"@opencl_headers//:opencl12_headers",
"core",
],
)
......
此差异已折叠。
//
// Copyright (c) 2017 XiaoMi All rights reserved.
//
#include "CL/opencl.h"
#include "mace/core/logging.h"
#include <dlfcn.h>
#include <mutex>
namespace mace {
bool OpenCLSupported();
} // namespace mace
cc_inc_library(
cc_library(
name = "opencl10_headers",
hdrs = glob([
"opencl10/CL/*.h",
]),
prefix = "opencl10",
strip_include_prefix = "opencl10",
visibility = ["//visibility:public"],
)
cc_inc_library(
cc_library(
name = "opencl11_headers",
hdrs = glob([
"opencl11/CL/*.h",
]),
prefix = "opencli11",
strip_include_prefix = "opencl11",
visibility = ["//visibility:public"],
)
cc_inc_library(
cc_library(
name = "opencl12_headers",
hdrs = glob([
"opencl12/CL/*.h",
]),
prefix = "opencl12",
strip_include_prefix = "opencl12",
visibility = ["//visibility:public"],
)
cc_inc_library(
cc_library(
name = "opencl20_headers",
hdrs = glob([
"opencl20/CL/*.h",
]),
prefix = "opencl20",
strip_include_prefix = "opencl20",
visibility = ["//visibility:public"],
)
cc_inc_library(
cc_library(
name = "opencl21_headers",
hdrs = glob([
"opencl21/CL/*.h",
]),
prefix = "opencl21",
strip_include_prefix = "opencl21",
visibility = ["//visibility:public"],
)
cc_inc_library(
cc_library(
name = "opencl22_headers",
hdrs = glob([
"opencl22/CL/*.h",
]),
prefix = "opencl22",
strip_include_prefix = "opencl22",
visibility = ["//visibility:public"],
)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册