小编Mor*_*sen的帖子

常见的编程任务如何转换为GPU?

I have recently begun working on a project to establish how best to leverage the processing power available in modern graphics cards for general programming. It seems that the field general purpose GPU programming (GPGPU) has a large bias towards scientific applications with a lot of heavy math as this fits well with the GPU computational model. This is all good and well, but most people don't spend all their time running simulation software and the like so we figured …

cuda gpgpu

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

是否可以在Windows中创建全屏颜色叠加效果?

我记得我的旧Radeon图形驱动程序,它有许多叠加效果或彩色滤镜(无论它们被称为什么),可以渲染屏幕,例如棕褐色调或负色.我目前的NVIDIA显卡似乎没有这样的功能,所以我想知道是否有可能为Vista制作自己的产品.

我不知道是否有某种方法可以挂钩到窗口的渲染引擎,或者,也可以使用NVIDIA的驱动程序来实现这种效果.虽然能够修改颜色会很酷,但根据屏幕坐标修改颜色或执行其他更多功能会更好.一个例子是颜色越多,它们离屏幕中心越长越不饱和.

我没有特定的使用场景,所以我无法提供更多信息.基本上,我只是好奇这个领域是否有任何可以解决的问题.

windows overlay colors

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

对任意值类型的操作

文章描述了一个办法,在C#中,以允许添加这对他们定义的运算符+任意值类型.实质上它允许以下代码:

public T Add(T val1, T val2)
{
   return val1 + val2;
}
Run Code Online (Sandbox Code Playgroud)

此代码无法编译,因为无法保证T类型具有"+"运算符的定义,但效果可通过以下代码实现:

public T Add(T val1, T val2)
{
   //Num<T> defines a '+' operation which returns a value of type T
   return (new Num<T>(val1) + new Num<T>(val2));
}
Run Code Online (Sandbox Code Playgroud)

点击链接查看Num课程如何实现这一目标.无论如何,关于这个问题.有没有办法在C或C++中实现相同的效果?对于好奇,我试图解决的问题是允许CUDA内核更灵活/更通用,允许它在更多类型上运行.

更新:对于.NET,Marc Gravell创建了一个实用程序库,可以非常优雅地解决操作员问题.

c c++ cuda gpgpu value-type

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

如何从IronPython脚本将lambda表达式传递给C#构造函数?

我正在将一个IronPython scritping引擎集成到我的C#raytracer中,到目前为止,尽管我对Python完全不熟悉,但它仍然是轻而易举的.但是,有一件特别的事情,我需要帮助.我有一个C#类,它定义了一个这样的构造函数:

public CameraAnimation(Action<Camera, float> animation)
Run Code Online (Sandbox Code Playgroud)

在C#中,我会像这样实例化:

var camAnimation = new CameraAnimation((camera, time) => camera.Position += new Vector(1, 0, 0));
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何在IronPython中对Action对象进行类似的赋值,那么Python语法将如何呈现?

c# scripting lambda ironpython

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

Chutzpah visual studio测试运行器找不到JS参考

我正在Visual Sutio 2013中构建一个ASP.NET网站,我正在使用Jasmine和Chutzpah测试运行器插件进行测试.测试结果正常,但未加载所需的参考.我已尝试使用以下内容启动我的测试文件以确保路径正确(并且每个版本都是正确的),但它仍然抱怨在运行测试时角度值不存在.我错过了什么?

/// <reference path="/Scripts/angular.js" />
/// <reference path="../Scripts/angular.js" />
/// <reference path="../../Scripts/angular.js" />
/// <reference path="../../../Scripts/angular.js" />
/// <reference path="../../../../Scripts/angular.js" />
/// <reference path="../../../../../Scripts/angular.js" />
/// <reference path="../../../../../../Scripts/angular.js" />
/// <reference path="../../../../../../../Scripts/angular.js" />
/// <reference path="../../../../../../../../Scripts/angular.js" />
/// <reference path="../../../../../../../../../Scripts/angular.js" />
/// <reference path="../../../../../../../../../../Scripts/angular.js" />
/// <reference path="../../../../../../../../../../../Scripts/angular.js" />
Run Code Online (Sandbox Code Playgroud)

即使这应该有效(据我所知),我也尝试chutzpah.json使用以下配置在我的项目根目录中放置一个文件:

"RootReferencePathMode":"SettingsFileDirectory"

以及测试文件中的以下参考:

/// <reference path="/Scripts/angular.js" />

但这没有任何帮助.由于Chutzpah没有承认参考标签的存在,我甚至不确定是否找到了它(尽管它显然找到了相关的测试文件).

unit-testing visual-studio jasmine chutzpah

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

ASP.NET Core [Require]非空类型

在这里,提出了一个问题,即如何验证不可为空的必需类型。

在我的情况下,不希望提供如下使字段为空的解决方案。

[Required]
public int? Data { get; set; }
Run Code Online (Sandbox Code Playgroud)

在请求中省略该字段的情况下,如何更改行为以进行以下失败验证。

[Required]
public int Data { get; set; }
Run Code Online (Sandbox Code Playgroud)

我尝试了一个自定义验证器,但是这些没有原始值的信息,只能看到默认0值。我还尝试了自定义模型绑定程序,但它似乎可以在整个请求模型的级别上运行,而不是在所需的整数字段上运行。我的资料夹实验看起来像这样:

public class RequiredIntBinder : IModelBinder
{
    public Task BindModelAsync(ModelBindingContext bindingContext)
    {
        if (bindingContext.ModelType != typeof(int))
            throw new InvalidOperationException($"{nameof(RequiredIntBinder)} can only be applied to integer properties");

        var value = bindingContext.ValueProvider.GetValue(bindingContext.BinderModelName);
        if (value == ValueProviderResult.None)
        {
            bindingContext.Result = ModelBindingResult.Failed();
            return Task.CompletedTask;
        }

        return new SimpleTypeModelBinder(bindingContext.ModelType).BindModelAsync(bindingContext);
    }
}

public class RequiredIntBinderProvider : IModelBinderProvider
{
    public IModelBinder GetBinder(ModelBinderProviderContext context)
    {
        if …
Run Code Online (Sandbox Code Playgroud)

c# validation asp.net-core

5
推荐指数
2
解决办法
2942
查看次数

将C#方法转换为C++方法

我正在探索将常见的C#代码构造映射到C++ CUDA代码以在GPU上运行的各种选项.系统结构如下(箭头表示方法调用):

C#program - > C#GPU lib - > C++ CUDA实现库

GPU库中的方法可能如下所示:

public static void Map<T>(this ICollection<T> c, Func<T,T> f)
{
   //Call 'f' on each element of 'c'
}
Run Code Online (Sandbox Code Playgroud)

这是ICollection <>类型的扩展方法,它在每个元素上运行一个函数.但是,我希望它能够调用C++库并使其在GPU上运行方法.这将要求函数以某种方式转换为C++代码.这可能吗?

详细说明,如果我的库的用户执行了一个带有一些任意代码的方法(在C#中),我想将这段代码翻译成C++ equivelant,以便我可以在CUDA上运行它.我觉得没有简单的方法可以做到这一点,但我想知道是否有任何方法可以做到这一点或达到一些相同的效果.

我想知道的一件事是捕获要在Expression中转换的函数,并使用它将它映射到C++ equivelant.有人有这方面的经验吗?

c# c++ interop cuda gpgpu

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

如何阻止异步作业完成

我正在使用一个C#库,它使用NVIDIA的CUDA将某些工作任务卸载到GPU.一个例子是使用扩展方法将两个数组一起添加:

float[] a = new float[]{ ... }
float[] b = new float[]{ ... }
float[] c = a.Add(b);
Run Code Online (Sandbox Code Playgroud)

此代码中的工作是在GPU上完成的.但是,我希望它是异步完成的,这样只有在需要结果时才会在CPU块上运行代码(如果结果还没有在GPU上完成).为此,我创建了一个隐藏异步执行的ExecutionResult类.在使用中,这看起来如下:

float[] a = new float[]{ ... }
float[] b = new float[]{ ... }
ExecutionResult res = a.Add(b);
float[] c = res; //Implicit converter
Run Code Online (Sandbox Code Playgroud)

在最后一行,程序将阻止数据是否已准备就绪.我不确定在ExecutionResult类中实现这种阻塞行为的最佳方法,因为我对同步线程和那些类型的东西不是很熟悉.

public class ExecutionResult<T>
{
    private T[] result;
    private long computed = 0;

    internal ExecutionResult(T[] a, T[] b, Action<T[], T[], Action<T[]>> f)
    {
        f(a, b, UpdateData); //Asych call - 'UpdateData' is the callback method
    }

    internal …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous cuda gpgpu

2
推荐指数
1
解决办法
1124
查看次数

SQL:获取所有评论的帖子

我想,我需要构建一些相当简单的SQL,但是因为这是我与DB合作的一个罕见事件,所以我无法弄清楚细节.

我有一个表'posts',其中包含以下列:

id,标题,文字

以及包含以下列的表'comments':

id,name,text,post_id

(单个)SQL语句通过'post_id'键检索具有与之关联的一个或多个注释的所有帖子的标题是什么样的?如果DBMS与SQL查询有任何关联,则DBMS是MySQL.

mysql sql

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

如何设置VS2008以实现高效的C++开发

通常我用C#编程但是被迫在C++中做一些工作.与C#相比,与Visual Studio(2008)的集成似乎真的很差,但我想知道是否有任何可以改善这种情况的好工具,插件或配置.

另一篇文章指出了Visual Assist X程序,它至少可以帮助重构一些事情(尽管对我来说有点贵).但是,我的主要问题是,编译错误几乎没有给出错误的线索,我花了大部分时间来弄清楚我做错了什么.它只是感觉可能静态地检查比VS开箱即用更多的错误.为什么它不像C#那样提供蓝色下划线,这应该不会太难?!

我意识到问题的一半只是我是C++的新手,但我真的觉得让程序编译起来是不合理的.有没有这种工具或我的要求太高?

c++ static-analysis visual-studio

0
推荐指数
1
解决办法
493
查看次数

jQuery回调过早发生

在使用jQuery为IE 7中的按钮的click事件分配函数时,我遇到了问题.类似下面的东西在Opera中运行正常,但在IE中产生无限循环:

function updateIndputFields(index, id) {
   $("#reloadBtn").click(function(){ updateIndputFields(index, id) });
}
Run Code Online (Sandbox Code Playgroud)

据我了解,无限循环不会是这种情况下的预期行为.但我是jQuery的新手,所以也许我错过了一些东西.无论如何,我应该怎么做才能使reloadBtn按钮的click事件在IE中设置为'updateIndputFields(index,id)'?

javascript jquery internet-explorer callback

0
推荐指数
1
解决办法
1761
查看次数