有没有办法获得存储在__m256d变量中的值的总和?我有这个代码.
acc = _mm256_add_pd(acc, _mm256_mul_pd(row, vec));
//acc in this point contains {2.0, 8.0, 18.0, 32.0}
acc = _mm256_hadd_pd(acc, acc);
result[i] = ((double*)&acc)[0] + ((double*)&acc)[2];
Run Code Online (Sandbox Code Playgroud)
此代码有效,但我想用SSE/AVX指令替换它.
我正在为 Windows 10 创建服务。我已按照本教程进行操作。https://www.codeproject.com/Articles/499465/Simple-Windows-Service-in-Cplusplus
但是,当我将代码添加到此示例中时,发生了一些事情,我无法停止服务列表中的服务。我只能从任务管理器阻止它。但是如果我评论我的代码,服务就会正常停止。
如果有任何建议,我将不胜感激。下面列出了代码。
#include <Windows.h>
#include <tchar.h>
#include <string>
#include <fstream>
SERVICE_STATUS g_ServiceStatus = { 0 };
SERVICE_STATUS_HANDLE g_StatusHandle = NULL;
HANDLE g_ServiceStopEvent = INVALID_HANDLE_VALUE;
std::wofstream output(L"C:\\Users\\0x0\\source\\Service\\output.txt");
VOID WINAPI ServiceMain(DWORD argc, LPTSTR *argv);
VOID WINAPI ServiceCtrlHandler(DWORD);
DWORD WINAPI ServiceWorkerThread(LPVOID lpParam);
#define SERVICE_NAME _T("TestService")
DWORD WINAPI ServiceWorkerThread(LPVOID lpParam)
{
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
auto dwFlags = FILE_ATTRIBUTE_NORMAL;
STARTUPINFOW si;
GetStartupInfoW(&si);
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
si.dwFlags = STARTF_USESHOWWINDOW; …Run Code Online (Sandbox Code Playgroud) 我已经在Xcode 10.0(clang:Apple LLVM版本10.0.0)中的macOS上编译并执行了这段代码,它正在返回255.另一方面,在Visual Studio Community Edition v.15.8.6中的Windows上,它正在返回-1.有人可以在macOS上解释这种行为吗?代码如下.
int main() {
return -1;
}
Run Code Online (Sandbox Code Playgroud) c++ ×3
avx ×1
avx2 ×1
macos ×1
optimization ×1
service ×1
sse ×1
visual-c++ ×1
winapi ×1
windows ×1