Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
8660588f
O
Opencv
项目概览
Greenplum
/
Opencv
大约 1 年 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8660588f
编写于
3月 05, 2014
作者:
A
Alexander Karsakov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Pass vendor macro to opencl kernel
上级
c1dad217
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
29 addition
and
36 deletion
+29
-36
modules/core/include/opencv2/core/ocl.hpp
modules/core/include/opencv2/core/ocl.hpp
+7
-8
modules/core/src/ocl.cpp
modules/core/src/ocl.cpp
+22
-28
未找到文件。
modules/core/include/opencv2/core/ocl.hpp
浏览文件 @
8660588f
...
...
@@ -87,7 +87,7 @@ public:
String
name
()
const
;
String
extensions
()
const
;
String
version
()
const
;
String
vendor
()
const
;
String
vendor
Name
()
const
;
String
OpenCL_C_Version
()
const
;
String
OpenCLVersion
()
const
;
int
deviceVersionMajor
()
const
;
...
...
@@ -164,14 +164,13 @@ public:
enum
{
UNKNOWN_VENDOR
=
0
,
AMD
=
1
,
INTEL
=
2
,
NVIDIA
=
3
VENDOR_
AMD
=
1
,
VENDOR_
INTEL
=
2
,
VENDOR_
NVIDIA
=
3
};
bool
isAMD
()
const
;
bool
isIntel
()
const
;
bool
isNvidia
()
const
;
int
vendorID
()
const
;
inline
bool
isAMD
()
const
{
return
vendorID
()
==
VENDOR_AMD
;
};
inline
bool
isIntel
()
const
{
return
vendorID
()
==
VENDOR_INTEL
;
};
int
maxClockFrequency
()
const
;
int
maxComputeUnits
()
const
;
...
...
modules/core/src/ocl.cpp
浏览文件 @
8660588f
...
...
@@ -1713,16 +1713,16 @@ struct Device::Impl
String
deviceVersion_
=
getStrProp
(
CL_DEVICE_VERSION
);
parseDeviceVersion
(
deviceVersion_
,
deviceVersionMajor_
,
deviceVersionMinor_
);
vendorName
=
getStrProp
(
CL_DEVICE_VENDOR
);
if
(
vendorName
==
"Advanced Micro Devices, Inc."
||
vendorName
==
"AMD"
)
vendor
_
=
AMD
;
else
if
(
vendorName
==
"Intel(R) Corporation"
)
vendor
_
=
INTEL
;
else
if
(
vendorName
==
"NVIDIA Corporation"
)
vendor
_
=
NVIDIA
;
vendorName
_
=
getStrProp
(
CL_DEVICE_VENDOR
);
if
(
vendorName
_
==
"Advanced Micro Devices, Inc."
||
vendorName
_
==
"AMD"
)
vendor
ID_
=
VENDOR_
AMD
;
else
if
(
vendorName
_
==
"Intel(R) Corporation"
)
vendor
ID_
=
VENDOR_
INTEL
;
else
if
(
vendorName
_
==
"NVIDIA Corporation"
)
vendor
ID_
=
VENDOR_
NVIDIA
;
else
vendor_
=
UNKNOWN_VENDOR
;
vendor
ID
_
=
UNKNOWN_VENDOR
;
}
template
<
typename
_TpCL
,
typename
_TpOut
>
...
...
@@ -1765,8 +1765,8 @@ struct Device::Impl
int
deviceVersionMajor_
;
int
deviceVersionMinor_
;
String
driverVersion_
;
String
vendorName
;
int
vendor_
;
String
vendorName
_
;
int
vendor
ID
_
;
};
...
...
@@ -1826,8 +1826,11 @@ String Device::extensions() const
String
Device
::
version
()
const
{
return
p
?
p
->
version_
:
String
();
}
String
Device
::
vendor
()
const
{
return
p
?
p
->
vendorName
:
String
();
}
String
Device
::
vendorName
()
const
{
return
p
?
p
->
vendorName_
:
String
();
}
int
Device
::
vendorID
()
const
{
return
p
?
p
->
vendorID_
:
0
;
}
String
Device
::
OpenCL_C_Version
()
const
{
return
p
?
p
->
getStrProp
(
CL_DEVICE_OPENCL_C_VERSION
)
:
String
();
}
...
...
@@ -1938,21 +1941,6 @@ size_t Device::imageMaxArraySize() const
{
CV_REQUIRE_OPENCL_1_2_ERROR
;
}
#endif
bool
Device
::
isAMD
()
const
{
return
p
->
vendor_
==
AMD
;
}
bool
Device
::
isIntel
()
const
{
return
p
->
vendor_
==
INTEL
;
}
bool
Device
::
isNvidia
()
const
{
return
p
->
vendor_
==
NVIDIA
;
}
int
Device
::
maxClockFrequency
()
const
{
return
p
?
p
->
getProp
<
cl_uint
,
int
>
(
CL_DEVICE_MAX_CLOCK_FREQUENCY
)
:
0
;
}
...
...
@@ -3037,6 +3025,12 @@ struct Program::Impl
for
(
i
=
0
;
i
<
n
;
i
++
)
deviceList
[
i
]
=
ctx
.
device
(
i
).
ptr
();
Device
device
=
Device
::
getDefault
();
if
(
device
.
isAMD
())
buildflags
+=
" -D AMD_DEVICE"
;
else
if
(
device
.
isIntel
())
buildflags
+=
" -D INTEL_DEVICE"
;
retval
=
clBuildProgram
(
handle
,
n
,
(
const
cl_device_id
*
)
deviceList
,
buildflags
.
c_str
(),
0
,
0
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录