CMake Error: ...Missing variable is: CMAKE_FIND_LIBRARY_

今天在使用cmake的find_library命令时,cmake居然报错: CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing ...

2016-04-29 16:26:26

阅读数:1350

评论数:0

C++11:可变参数模板实现print输出参数

C++11支持可变参数模板的特性,真的是很好用。 下面代码实现的print函数,就利用可变参数模板以及函数模板递归调用,实现将任意多个不同类型的参数顺序输出打印到std::ostream流中。#include <iostream> /* 终止递归函数 */ inline void a...

2016-04-23 15:53:37

阅读数:1664

评论数:0

opencl:慎用-cl-opt-disable选项编译kernel(可能会导致一些无法解释的问题)

在编译opencl kernel代码时,有一个编译选项-cl-opt-disable。根据opencl 官网的原文描述,使用这个选项可以关闭所有的代码优化,便于调试程序。(默认情况下,编译优化选项是打开的) 参见clBuildProgram 但是今天为了调试kernel代码,实际使用这个选项编...

2016-04-21 15:00:01

阅读数:1607

评论数:0

opencl/msvc:kernel因为指针对齐方式(alignment)造成向量类型(vector data type)读写异常

opencl knernel中对全局内存(__global)向量类型数据的读写有两种方式, 一种是直接用=操作符赋值,一种则是通过vstoren/vloadn函数来实现向量数据读写。 =操作符赋值方式使用简单,但在msvc下以CL_MEM_USE_HOST_PTR模式向kernel传递数据时如果数...

2016-04-19 12:03:55

阅读数:1744

评论数:0

opencl:一个关于向量赋值的异常

在项目中,有一个下面这样的数据结构,storage保存是个float4类型的数组。typedef struct _detected_objects_buffer { cl_float4 storage[MAX_DETECTED_OBJECT_NUM]; cl_int detect...

2016-04-17 11:28:17

阅读数:1020

评论数:0

opencl:kernel中两种向量类型转换(convert_T,as_typen)的主要区别

opencl kernel中向量类型转换分为两种方式,explicit conversions和reinterpreting type,中文可以分别直译为"显式转换"和"重新解释类型"。本文讨论这两种类型转换的区别。

2016-04-17 10:53:09

阅读数:1987

评论数:0

C++11:模板实现opencl向量类型(cl_intn,cl_floatn...)的简单运算符(+,-)重载及length,distance函数

opencl内核支持的所有向量数据类型(intn,floatn,doublen….)在主机端都有对应的类型,区别是加了前缀cl_,比如int4对应的主机端类型是cl_int4。 我们知道,在opencl内核代码中,向量类型(vector data type)的数据可以像普通标量类型(scala ...

2016-04-11 15:10:48

阅读数:2088

评论数:0

C++11模板:如何判断类中是否有指定名称的成员变量?

如何判断类中有指定的成员函数,网上可以找到不少的文章,比如下面这两篇就写得很详细了 《C++11之美》 《C++模板,判断是否存在成员函数,实现差异化操作 》 我现在关心的是如何判断一个类中有成员变量?成员变量有可能是数组,也可能是其他的类。 看了上面关于判断成员函数的文章,理解其原理...

2016-04-10 17:11:16

阅读数:3240

评论数:2

opencl:C++11下使用别名(x,y,z,hi,lo...)访问vector类型(cl_int2,cl_long16...)的元素

在gcc(5.2.0)下使用C++11写opencl的程序时,发现无法像内核代码一样对cl_int2这样的向量(vector)类型用pos.x,pos.y这样的方式来访问向量元素,只能用pos.s[0]这种数组访问的方式。这是为什么? 这是platform.h中cl_int2的定义,可以看出,虽...

2016-04-10 10:57:12

阅读数:3539

评论数:0

C++11:MinGW当指定-std=c++11选项时 默认定义了__STRICT_ANSI__

__STRICT_ANSI__的来历__STRICT_ANSI__是gcc编译器的的一个预定义宏,一般来说当使用了-ansi编译选项,就会定义这个宏。 关于__STRICT_ANSI__的来历,参见下面关于gcc编译选项的说明: -ansi 支持符合ANSI标准的C程序. 这样就...

2016-04-09 16:31:22

阅读数:4757

评论数:0

提示
确定要删除当前文章?
取消 删除