小编Pet*_*ter的帖子

使用SSE/AVX获取存储在__m256d中的值的总和

有没有办法获得存储在__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指令替换它.

c++ optimization sse avx avx2

6
推荐指数
2
解决办法
1690
查看次数

在 Windows 服务中使用命名管道时出现问题

我正在为 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)

c++ windows service winapi visual-c++

5
推荐指数
1
解决办法
820
查看次数

由main()返回的值混淆

我已经在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++ macos

3
推荐指数
1
解决办法
100
查看次数

标签 统计

c++ ×3

avx ×1

avx2 ×1

macos ×1

optimization ×1

service ×1

sse ×1

visual-c++ ×1

winapi ×1

windows ×1