From 7fc41db483bcf07a1821421d24e831cd2b3f2a24 Mon Sep 17 00:00:00 2001 From: Minchul Lee Date: Fri, 16 Jul 2021 21:25:43 +0900 Subject: [PATCH] fixed for avx --- EigenRand.sln | 78 ++++++------------ EigenRand/arch/AVX/MorePacketMath.h | 3 +- test/test.vcxproj | 118 ++++++++++++++++++++++++++-- 3 files changed, 133 insertions(+), 66 deletions(-) diff --git a/EigenRand.sln b/EigenRand.sln index d8f4ca9..9c496f1 100644 --- a/EigenRand.sln +++ b/EigenRand.sln @@ -25,10 +25,6 @@ Global RelAVX2|ARM64 = RelAVX2|ARM64 RelAVX2|x64 = RelAVX2|x64 RelAVX2|x86 = RelAVX2|x86 - Release|ARM = Release|ARM - Release|ARM64 = Release|ARM64 - Release|x64 = Release|x64 - Release|x86 = Release|x86 RelNoVect|ARM = RelNoVect|ARM RelNoVect|ARM64 = RelNoVect|ARM64 RelNoVect|x64 = RelNoVect|x64 @@ -63,14 +59,6 @@ Global {F45E39EE-2863-4550-8531-31723AD0BC09}.RelAVX2|x64.Build.0 = RelAVX2|x64 {F45E39EE-2863-4550-8531-31723AD0BC09}.RelAVX2|x86.ActiveCfg = RelAVX2|Win32 {F45E39EE-2863-4550-8531-31723AD0BC09}.RelAVX2|x86.Build.0 = RelAVX2|Win32 - {F45E39EE-2863-4550-8531-31723AD0BC09}.Release|ARM.ActiveCfg = RelSSE2|ARM - {F45E39EE-2863-4550-8531-31723AD0BC09}.Release|ARM.Build.0 = RelSSE2|ARM - {F45E39EE-2863-4550-8531-31723AD0BC09}.Release|ARM64.ActiveCfg = RelSSE2|ARM64 - {F45E39EE-2863-4550-8531-31723AD0BC09}.Release|ARM64.Build.0 = RelSSE2|ARM64 - {F45E39EE-2863-4550-8531-31723AD0BC09}.Release|x64.ActiveCfg = RelSSE2|x64 - {F45E39EE-2863-4550-8531-31723AD0BC09}.Release|x64.Build.0 = RelSSE2|x64 - {F45E39EE-2863-4550-8531-31723AD0BC09}.Release|x86.ActiveCfg = RelSSE2|Win32 - {F45E39EE-2863-4550-8531-31723AD0BC09}.Release|x86.Build.0 = RelSSE2|Win32 {F45E39EE-2863-4550-8531-31723AD0BC09}.RelNoVect|ARM.ActiveCfg = RelNoVect|ARM {F45E39EE-2863-4550-8531-31723AD0BC09}.RelNoVect|ARM.Build.0 = RelNoVect|ARM {F45E39EE-2863-4550-8531-31723AD0BC09}.RelNoVect|ARM64.ActiveCfg = RelNoVect|ARM64 @@ -111,14 +99,6 @@ Global {8A7F8C9A-2E06-4767-8BBA-E1DE1CB341AB}.RelAVX2|x64.Build.0 = RelAVX2|x64 {8A7F8C9A-2E06-4767-8BBA-E1DE1CB341AB}.RelAVX2|x86.ActiveCfg = RelAVX2|Win32 {8A7F8C9A-2E06-4767-8BBA-E1DE1CB341AB}.RelAVX2|x86.Build.0 = RelAVX2|Win32 - {8A7F8C9A-2E06-4767-8BBA-E1DE1CB341AB}.Release|ARM.ActiveCfg = RelSSE2|ARM - {8A7F8C9A-2E06-4767-8BBA-E1DE1CB341AB}.Release|ARM.Build.0 = RelSSE2|ARM - {8A7F8C9A-2E06-4767-8BBA-E1DE1CB341AB}.Release|ARM64.ActiveCfg = RelSSE2|ARM64 - {8A7F8C9A-2E06-4767-8BBA-E1DE1CB341AB}.Release|ARM64.Build.0 = RelSSE2|ARM64 - {8A7F8C9A-2E06-4767-8BBA-E1DE1CB341AB}.Release|x64.ActiveCfg = RelSSE2|x64 - {8A7F8C9A-2E06-4767-8BBA-E1DE1CB341AB}.Release|x64.Build.0 = RelSSE2|x64 - {8A7F8C9A-2E06-4767-8BBA-E1DE1CB341AB}.Release|x86.ActiveCfg = RelSSE2|Win32 - {8A7F8C9A-2E06-4767-8BBA-E1DE1CB341AB}.Release|x86.Build.0 = RelSSE2|Win32 {8A7F8C9A-2E06-4767-8BBA-E1DE1CB341AB}.RelNoVect|ARM.ActiveCfg = RelNoVect|ARM {8A7F8C9A-2E06-4767-8BBA-E1DE1CB341AB}.RelNoVect|ARM.Build.0 = RelNoVect|ARM {8A7F8C9A-2E06-4767-8BBA-E1DE1CB341AB}.RelNoVect|ARM64.ActiveCfg = RelNoVect|ARM64 @@ -159,14 +139,6 @@ Global {85BACD1D-1D4F-4084-8C6A-5C3AC938FE50}.RelAVX2|x64.Build.0 = RelAVX2|x64 {85BACD1D-1D4F-4084-8C6A-5C3AC938FE50}.RelAVX2|x86.ActiveCfg = RelAVX2|Win32 {85BACD1D-1D4F-4084-8C6A-5C3AC938FE50}.RelAVX2|x86.Build.0 = RelAVX2|Win32 - {85BACD1D-1D4F-4084-8C6A-5C3AC938FE50}.Release|ARM.ActiveCfg = RelSSE2|ARM - {85BACD1D-1D4F-4084-8C6A-5C3AC938FE50}.Release|ARM.Build.0 = RelSSE2|ARM - {85BACD1D-1D4F-4084-8C6A-5C3AC938FE50}.Release|ARM64.ActiveCfg = RelSSE2|ARM64 - {85BACD1D-1D4F-4084-8C6A-5C3AC938FE50}.Release|ARM64.Build.0 = RelSSE2|ARM64 - {85BACD1D-1D4F-4084-8C6A-5C3AC938FE50}.Release|x64.ActiveCfg = RelSSE2|x64 - {85BACD1D-1D4F-4084-8C6A-5C3AC938FE50}.Release|x64.Build.0 = RelSSE2|x64 - {85BACD1D-1D4F-4084-8C6A-5C3AC938FE50}.Release|x86.ActiveCfg = RelSSE2|Win32 - {85BACD1D-1D4F-4084-8C6A-5C3AC938FE50}.Release|x86.Build.0 = RelSSE2|Win32 {85BACD1D-1D4F-4084-8C6A-5C3AC938FE50}.RelNoVect|ARM.ActiveCfg = RelNoVect|ARM {85BACD1D-1D4F-4084-8C6A-5C3AC938FE50}.RelNoVect|ARM.Build.0 = RelNoVect|ARM {85BACD1D-1D4F-4084-8C6A-5C3AC938FE50}.RelNoVect|ARM64.ActiveCfg = RelNoVect|ARM64 @@ -189,44 +161,38 @@ Global {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.Debug|x64.Build.0 = Debug|x64 {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.Debug|x86.ActiveCfg = Debug|Win32 {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.Debug|x86.Build.0 = Debug|Win32 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX|ARM.ActiveCfg = Debug|Win32 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX|ARM.Build.0 = Debug|Win32 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX|ARM.ActiveCfg = RelAVX|Win32 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX|ARM.Build.0 = RelAVX|Win32 {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX|ARM64.ActiveCfg = Debug|Win32 {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX|ARM64.Build.0 = Debug|Win32 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX|x64.ActiveCfg = Release|x64 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX|x64.Build.0 = Release|x64 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX|x86.ActiveCfg = Release|Win32 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX|x86.Build.0 = Release|Win32 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX2|ARM.ActiveCfg = Debug|Win32 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX2|ARM.Build.0 = Debug|Win32 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX|x64.ActiveCfg = RelAVX|x64 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX|x64.Build.0 = RelAVX|x64 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX|x86.ActiveCfg = RelSSE2|Win32 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX|x86.Build.0 = RelSSE2|Win32 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX2|ARM.ActiveCfg = RelAVX2|Win32 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX2|ARM.Build.0 = RelAVX2|Win32 {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX2|ARM64.ActiveCfg = Debug|Win32 {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX2|ARM64.Build.0 = Debug|Win32 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX2|x64.ActiveCfg = Release|x64 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX2|x64.Build.0 = Release|x64 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX2|x86.ActiveCfg = Release|Win32 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX2|x86.Build.0 = Release|Win32 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.Release|ARM.ActiveCfg = Release|Win32 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.Release|ARM64.ActiveCfg = Release|Win32 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.Release|x64.ActiveCfg = Release|x64 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.Release|x64.Build.0 = Release|x64 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.Release|x86.ActiveCfg = Release|Win32 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.Release|x86.Build.0 = Release|Win32 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX2|x64.ActiveCfg = RelAVX2|x64 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX2|x64.Build.0 = RelAVX2|x64 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX2|x86.ActiveCfg = RelSSE2|Win32 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelAVX2|x86.Build.0 = RelSSE2|Win32 {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelNoVect|ARM.ActiveCfg = Debug|Win32 {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelNoVect|ARM.Build.0 = Debug|Win32 {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelNoVect|ARM64.ActiveCfg = Debug|Win32 {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelNoVect|ARM64.Build.0 = Debug|Win32 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelNoVect|x64.ActiveCfg = Release|x64 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelNoVect|x64.Build.0 = Release|x64 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelNoVect|x86.ActiveCfg = Release|Win32 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelNoVect|x86.Build.0 = Release|Win32 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelSSE2|ARM.ActiveCfg = Debug|Win32 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelSSE2|ARM.Build.0 = Debug|Win32 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelNoVect|x64.ActiveCfg = RelSSE2|x64 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelNoVect|x64.Build.0 = RelSSE2|x64 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelNoVect|x86.ActiveCfg = RelSSE2|Win32 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelNoVect|x86.Build.0 = RelSSE2|Win32 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelSSE2|ARM.ActiveCfg = RelSSE2|Win32 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelSSE2|ARM.Build.0 = RelSSE2|Win32 {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelSSE2|ARM64.ActiveCfg = Debug|Win32 {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelSSE2|ARM64.Build.0 = Debug|Win32 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelSSE2|x64.ActiveCfg = Release|x64 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelSSE2|x64.Build.0 = Release|x64 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelSSE2|x86.ActiveCfg = Release|Win32 - {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelSSE2|x86.Build.0 = Release|Win32 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelSSE2|x64.ActiveCfg = RelSSE2|x64 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelSSE2|x64.Build.0 = RelSSE2|x64 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelSSE2|x86.ActiveCfg = RelSSE2|Win32 + {643D8602-FE0D-4EAF-841C-E690EE6E53FD}.RelSSE2|x86.Build.0 = RelSSE2|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/EigenRand/arch/AVX/MorePacketMath.h b/EigenRand/arch/AVX/MorePacketMath.h index ce48db8..87babb9 100644 --- a/EigenRand/arch/AVX/MorePacketMath.h +++ b/EigenRand/arch/AVX/MorePacketMath.h @@ -18,7 +18,6 @@ namespace Eigen { namespace internal { -#ifdef EIGEN_VECTORIZE_AVX2 template<> struct IsIntPacket : std::true_type {}; @@ -33,7 +32,7 @@ namespace Eigen { using type = Packet4f; }; -#endif + template<> struct IsFloatPacket : std::true_type {}; diff --git a/test/test.vcxproj b/test/test.vcxproj index 8d78d63..e8d1789 100644 --- a/test/test.vcxproj +++ b/test/test.vcxproj @@ -5,16 +5,32 @@ Debug Win32 - - Release + + RelSSE2 Win32 Debug x64 - - Release + + RelSSE2 + x64 + + + RelAVX2 + Win32 + + + RelAVX2 + x64 + + + RelAVX + Win32 + + + RelAVX x64 @@ -35,13 +51,25 @@ $(SolutionDir);E:\AddInclude;$(VC_IncludePath);$(WindowsSDK_IncludePath); - + + $(SolutionDir);E:\AddInclude;$(VC_IncludePath);$(WindowsSDK_IncludePath); + + + $(SolutionDir);E:\AddInclude;$(VC_IncludePath);$(WindowsSDK_IncludePath); + + $(SolutionDir);E:\AddInclude;$(VC_IncludePath);$(WindowsSDK_IncludePath); $(SolutionDir);E:\AddInclude;$(VC_IncludePath);$(WindowsSDK_IncludePath); - + + $(SolutionDir);E:\AddInclude;$(VC_IncludePath);$(WindowsSDK_IncludePath); + + + $(SolutionDir);E:\AddInclude;$(VC_IncludePath);$(WindowsSDK_IncludePath); + + $(SolutionDir);E:\AddInclude;$(VC_IncludePath);$(WindowsSDK_IncludePath); @@ -87,7 +115,43 @@ Console - + + + NotUsing + + + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + ProgramDatabase + StreamingSIMDExtensions2 + + + true + Console + true + true + + + + + NotUsing + + + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + ProgramDatabase + AdvancedVectorExtensions2 + + + true + Console + true + true + + + NotUsing @@ -96,6 +160,43 @@ MultiThreadedDLL Level3 ProgramDatabase + AdvancedVectorExtensions + + + true + Console + true + true + + + + + NotUsing + + + X64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + ProgramDatabase + StreamingSIMDExtensions2 + + + true + Console + true + true + + + + + NotUsing + + + X64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + ProgramDatabase + AdvancedVectorExtensions2 true @@ -104,7 +205,7 @@ true - + NotUsing @@ -113,6 +214,7 @@ MultiThreadedDLL Level3 ProgramDatabase + AdvancedVectorExtensions true