josephjaspers / blackcat_tensors

Matrix-Vector Library Designed for Neural Network Construction. cuda (gpu) support, openmp (multithreaded cpu) support, partial support of BLAS, expression template based implementation PTX code generation identical to hand written kernels, and support for auto-differentiation
12 stars 4 forks source link

what's wrong with VS compile? I have include the openblas! #21

Closed xinsuinizhuan closed 4 years ago

xinsuinizhuan commented 4 years ago

1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(96): error C2065: “always_inline”: 未声明的标识符 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(96): error C2433: “attribute”: 不允许在数据声明中使用“inline” 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(96): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(96): error C2146: 语法错误: 缺少“;”(在标识符“attribute”的前面) 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(96): error C2065: “hot”: 未声明的标识符 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(96): error C2374: “BC::traits::attribute”: 重定义;多次初始化 1> i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(96): note: 参见“BC::traits::attribute”的声明 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(96): error C2448: “BC::traits::attribute”: 函数样式初始值设定项类似函数定义 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(97): error C2065: “always_inline”: 未声明的标识符 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(97): error C2433: “attribute”: 不允许在数据声明中使用“inline” 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(97): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(97): error C2374: “BC::traits::attribute”: 重定义;多次初始化 1> i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(96): note: 参见“BC::traits::attribute”的声明 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(97): error C2146: 语法错误: 缺少“;”(在标识符“attribute”的前面) 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(97): error C2065: “hot”: 未声明的标识符 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(97): error C2448: “BC::traits::attribute”: 函数样式初始值设定项类似函数定义 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(99): error C2065: “always_inline”: 未声明的标识符 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(99): error C2433: “attribute”: 不允许在数据声明中使用“inline” 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(99): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(99): error C2374: “BC::traits::attribute”: 重定义;多次初始化 1> i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(96): note: 参见“BC::traits::attribute”的声明 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(99): error C2061: 语法错误: 标识符“attribute” 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(104): error C2059: 语法错误:“...” 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(105): error C2143: 语法错误: 缺少“;”(在“{”的前面) 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(105): error C2447: “{”: 缺少函数标题(是否是老式的形式表?) 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(167): error C2065: “always_inline”: 未声明的标识符 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(167): error C2433: “attribute”: 不允许在数据声明中使用“inline” 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(167): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(167): error C2374: “BC::traits::attribute”: 重定义;多次初始化 1> i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(96): note: 参见“BC::traits::attribute”的声明 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(167): error C2061: 语法错误: 标识符“attribute” 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(173): error C2143: 语法错误: 缺少“;”(在“{”的前面) 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(173): error C2447: “{”: 缺少函数标题(是否是老式的形式表?) 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(177): error C2065: “always_inline”: 未声明的标识符 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(177): error C2433: “attribute”: 不允许在数据声明中使用“inline” 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(177): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(177): error C2374: “BC::traits::attribute”: 重定义;多次初始化 1> i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(96): note: 参见“BC::traits::attribute”的声明 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(177): error C2061: 语法错误: 标识符“attribute” 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(183): error C2143: 语法错误: 缺少“;”(在“{”的前面) 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(183): error C2447: “{”: 缺少函数标题(是否是老式的形式表?) 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(191): error C2065: “always_inline”: 未声明的标识符 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(191): error C2433: “attribute”: 不允许在数据声明中使用“inline” 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(191): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(191): error C2374: “BC::traits::attribute”: 重定义;多次初始化 1> i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(96): note: 参见“BC::traits::attribute”的声明 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(191): error C2061: 语法错误: 标识符“attribute” 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(194): error C2065: “T”: 未声明的标识符 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(194): error C2923: “BC::traits::apply_const_t”: 对于参数“T”,“T”不是有效的 模板 类型变量 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(194): error C2143: 语法错误: 缺少“;”(在“{”的前面) 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(194): error C2447: “{”: 缺少函数标题(是否是老式的形式表?) 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(195): error C2065: “always_inline”: 未声明的标识符 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(195): error C2433: “attribute”: 不允许在数据声明中使用“inline” 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(195): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(195): error C2374: “BC::traits::attribute”: 重定义;多次初始化 1> i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(96): note: 参见“BC::traits::attribute”的声明 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(195): error C2061: 语法错误: 标识符“attribute” 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(199): error C2653: “T”: 不是类或命名空间名称 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(215): error C2065: “query_value_type”: 未声明的标识符 1> i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(220): note: 参见对正在编译的类 模板 实例化“BC::traits::common_traits”的引用 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\type_traits\typetraits.h(215): error C3200: “unknown-type”: 模板参数“func”的模板参数无效,应输入类模板 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\allocators\host.h(14): warning C4099: “BC::host_tag”: 类型名称以前使用“struct”现在使用的是“class” 1> i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\blackcat_common.h(22): note: 参见“BC::host_tag”的声明 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\allocators\host.h(56): warning C4814: “BC::allocators::Allocator<BC::host_tag,T>::operator ==”: 在 C++14 中,"constexpr" 将不表示“常量”;请考虑显式指定“常量” 1> i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\allocators\host.h(58): note: 参见对正在编译的类 模板 实例化“BC::allocators::Allocator<BC::host_tag,T>”的引用 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\allocators\host.h(57): warning C4814: “BC::allocators::Allocator<BC::host_tag,T>::operator !=”: 在 C++14 中,"constexpr" 将不表示“常量”;请考虑显式指定“常量” 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\allocators\allocator_traits.h(15): warning C4099: “BC::host_tag”: 类型名称以前使用“struct”现在使用的是“class” 1> i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\allocators\host.h(14): note: 参见“BC::host_tag”的声明 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\allocators\allocator_traits.h(16): warning C4099: “BC::device_tag”: 类型名称以前使用“struct”现在使用的是“class” 1> i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\blackcat_common.h(27): note: 参见“BC::device_tag”的声明 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\streams\streams.h(11): warning C4099: “BC::host_tag”: 类型名称以前使用“struct”现在使用的是“class” 1> i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\allocators\allocator_traits.h(15): note: 参见“BC::host_tag”的声明 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\streams\streams.h(11): warning C4099: “BC::device_tag”: 类型名称以前使用“struct”现在使用的是“class” 1> i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\allocators\allocator_traits.h(16): note: 参见“BC::device_tag”的声明 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\streams\host.h(94): error C2065: “__PRETTY_FUNCTION__”: 未声明的标识符 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\blas\blas.h(11): warning C4099: “BC::host_tag”: 类型名称以前使用“struct”现在使用的是“class” 1> i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\streams\streams.h(11): note: 参见“BC::host_tag”的声明 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\blas\blas.h(11): warning C4099: “BC::device_tag”: 类型名称以前使用“struct”现在使用的是“class” 1> i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\streams\streams.h(11): note: 参见“BC::device_tag”的声明 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\blas\host.h(11): warning C4067: 预处理器指令后有意外标记 - 应输入换行符 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\blas\host.h(13): warning C4067: 预处理器指令后有意外标记 - 应输入换行符 1>i:\load predict\lstm\lstm-neuralnetwork-cpp_重点\src_info\blackcat_tensors-master\source\include\blas\host.h(16): fatal error C1189: #error: "BLACKCAT_TENSORS REQUIRES A VALID OR IN ITS PATH" ========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

josephjaspers commented 4 years ago

Hi, Visual Studio Compiler (MSVC) is not currently supported. (Though I am working on it!) You may try to compile by defining:

define BC_INLINE_OVERRIDE __forceinline

before including BlackCat_Tensors. Though I believe there will still be errors.

josephjaspers commented 4 years ago

Hi!

I just added the changes needed for it to compile with Visual Studio 2019.

https://github.com/josephjaspers/BlackCat_Tensors/commit/bbb88acd7e9fa6ac6b3db54f7cb91dbd65949e58

https://github.com/josephjaspers/BlackCat_Tensors/commit/b0e562f7b91a45903bba99e7eb158f586ec3cfe0