小编Kin*_*gon的帖子

Boost.Compute比普通CPU慢?

我刚开始玩Boost.Compute,看看它能为我们带来多少速度,我写了一个简单的程序:

#include <iostream>
#include <vector>
#include <algorithm>
#include <boost/foreach.hpp>
#include <boost/compute/core.hpp>
#include <boost/compute/platform.hpp>
#include <boost/compute/algorithm.hpp>
#include <boost/compute/container/vector.hpp>
#include <boost/compute/functional/math.hpp>
#include <boost/compute/types/builtin.hpp>
#include <boost/compute/function.hpp>
#include <boost/chrono/include.hpp>

namespace compute = boost::compute;

int main()
{
    // generate random data on the host
    std::vector<float> host_vector(16000);
    std::generate(host_vector.begin(), host_vector.end(), rand);

    BOOST_FOREACH (auto const& platform, compute::system::platforms())
    {
        std::cout << "====================" << platform.name() << "====================\n";
        BOOST_FOREACH (auto const& device, platform.devices())
        {
            std::cout << "device: " << device.name() << std::endl;
            compute::context context(device);
            compute::command_queue queue(context, device);
            compute::vector<float> device_vector(host_vector.size(), context);

            // …
Run Code Online (Sandbox Code Playgroud)

c++ boost opencl boost-compute

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

在哪里可以为开源项目创建免费的符号服务器?

我的开源项目是C++动态链接库。大多数错误 - 崩溃。

我想创建公共符号服务器来简化内存转储的调试。

另请参阅:设置符号服务器

c++ debug-symbols symbol-server

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

将可视检漏仪连接到作为Windows服务运行的进程

如何使用Visual Leak Detector附加到作为Windows服务运行的进程.如果有人使用此工具检测服务的内存泄漏,请告诉我相关程序.

我在源文件中包含"vld.h",就像在文档中一样.

service memory-leaks visual-c++ memory-leak-detector visual-leak-detector

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

VexCL中的密集矩阵向量乘法

VexCL似乎是一个非常有吸引力的gpu编程库.

不幸的是,它是一个非常年轻的图书馆,那里的信息很少.我一直在寻找如何执行矩阵向量乘法,但我发现的唯一矩阵表示是vex :: SpMat,它包含一个稀疏矩阵.

如果矩阵是密集的,那么稀疏表示通常对计算的效率较低.

我的所有矩阵都很密集,我想知道如何在VexCL中有效地执行它.

c++ gpgpu opencl vexcl

4
推荐指数
1
解决办法
707
查看次数

如何优化从半精度 float16 到单精度 float32 的转换?

我正在尝试提高我的功能的性能。Profiler指向内循环的代码。我可以使用 SSE 内在函数来提高该代码的性能吗?

void ConvertImageFrom_R16_FLOAT_To_R32_FLOAT(char* buffer, void* convertedData, DWORD width, DWORD height, UINT rowPitch)
{
    struct SINGLE_FLOAT
    {
        union {
            struct {
                unsigned __int32 R_m : 23;
                unsigned __int32 R_e : 8;
                unsigned __int32 R_s : 1;
            };
            struct {
                float r;
            };
        };
    };
    C_ASSERT(sizeof(SINGLE_FLOAT) == 4); // 4 bytes
    struct HALF_FLOAT
    {
        unsigned __int16 R_m : 10;
        unsigned __int16 R_e : 5;
        unsigned __int16 R_s : 1;
    };
    C_ASSERT(sizeof(HALF_FLOAT) == 2);
    SINGLE_FLOAT* d = (SINGLE_FLOAT*)convertedData;
    for(DWORD j = …
Run Code Online (Sandbox Code Playgroud)

c++ precision performance sse intrinsics

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

WiX次要升级删除Windows 7任务栏固定的快捷方式

由于某种原因,每次更新到新版本的WiX都会从任务栏中删除固定的开始菜单快捷方式.我怎样才能解决这个问题?

使用此命令创建了快捷方式:

   <DirectoryRef Id="ProgramMenuFolder">
      <Component Id="GitExtensions.newstartmenu" Guid="*">
        <Shortcut
          Id="GitExtensions.newstartmenu"
          Name="$(var.ProductName)"
          Description="$(var.ProductName)"
          Icon="gitextensions.ico"
          Target="[INSTALLDIR]GitExtensions.exe"
          WorkingDirectory="INSTALLDIR"/>
        <RegistryValue
          Root="HKCU" Key="$(var.InstalledRegKey)"
          Name="GitExtensions.newstartmenu" Value="" Type="string"
          KeyPath="yes"/>
      </Component>
    </DirectoryRef>
Run Code Online (Sandbox Code Playgroud)

WiX代码:https://github.com/gitextensions/gitextensions/blob/f9490e3e6e34cc2f6770fd9e1d6132cf5cfd0b0b/Setup/Product.wxs#L385-L399

安装程序已在VS2010 + WiX 3.5中构建.

wix

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

C++签名/无符号不匹配

我无法正常编译代码.这是我的错误:

警告C4018:'> =':有符号/无符号不匹配

void Player::HasteCap()
{
    if (sWorld->getBoolConfig(CONFIG_PLAYER_HASTECAP_ENABLE))
        return;

    bool hasInstantHasteCap = (GetFloatValue(UNIT_FIELD_BASEATTACKTIME + 0) == 1 
                            || GetFloatValue(UNIT_FIELD_BASEATTACKTIME + 1) == 1 
                            || GetFloatValue(UNIT_FIELD_BASEATTACKTIME + 2) == 1 
                            || GetFloatValue(UNIT_MOD_CAST_SPEED) == 0);

    if (m_baseRatingValue[CR_HASTE_MELEE] > sWorld->getIntConfig(CONFIG_PLAYER_HASTECAP_LIMIT))
    {
        SetFloatValue(UNIT_MOD_CAST_SPEED, 0);
        SetFloatValue(UNIT_FIELD_BASEATTACKTIME + BASE_ATTACK, 1);
        SetFloatValue(UNIT_FIELD_BASEATTACKTIME + OFF_ATTACK, 1);
        SetFloatValue(UNIT_FIELD_BASEATTACKTIME + RANGED_ATTACK, 1);
    }

    else if (hasInstantHasteCap && m_baseRatingValue[CR_HASTE_MELEE] < sWorld->getIntConfig(CONFIG_PLAYER_HASTECAP_LIMIT))
    {
        SetFloatValue(UNIT_MOD_CAST_SPEED, 1.0f);
        SetRegularAttackTime();
        ApplyCastTimePercentMod(m_baseRatingValue[CR_HASTE_SPELL] * GetRatingMultiplier(CR_HASTE_SPELL), true);

        if (GetShapeshiftForm())
        {
            SpellShapeshiftEntry const* ssEntry = sSpellShapeshiftStore.LookupEntry(GetShapeshiftForm());
            if (ssEntry && ssEntry->attackSpeed) …
Run Code Online (Sandbox Code Playgroud)

c++

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