编译Alea GPU教程时出错:在Visual Studio 2015社区更新2中使用FSharp.Core版本4.4.0.0在.Net 4.5运行时编译https://github.com/quantalea/AleaGPUTutorial.
Fody:发生了未处理的异常:异常: 无法加载文件或程序集'FSharp.Core,Version = 4.3.1.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一.该系统找不到指定的文件.
堆栈跟踪:
at Alea.CUDA.AOTCompileLogger..ctor(List`1 logs, Int32 warningCount, Int32 errorCount)
at Alea.CUDA.AOTCompileLogger..ctor()
at Alea.CUDA.AOTCompiler..ctor()
at Alea.CUDA.Fody.ModuleWeaver.Execute()
at lambda_method(Closure , Object )
at InnerWeaver.ExecuteWeavers() in c:\Code\Fody\FodyIsolated\InnerWeaver.cs:line 164
at InnerWeaver.Execute() in c:\Code\Fody\FodyIsolated\InnerWeaver.cs:line 82
Source:
Alea.CUDA
TargetSite:
Void .ctor(System.Collections.Generic.List`1[Alea.CUDA.AOTCompileLogEntry], Int32, Int32)
Run Code Online (Sandbox Code Playgroud)
它发生在Tutorial.Cs和Tutorial.Fs项目中,无论我如何bindingRedirect在所有可能的.config文件中设置选项.看起来这些重定向被Fody引用加载机制忽略了.
但是,即使将教程解决方案设置为FSharp.Core 4.3.1.0也不允许我编译它.错误是一样的.
你对如何解决它有任何想法吗?
这可能是一个简单的问题,但我无法找到对此主题的任何引用:如何从另一个内核中启动内核?.我遇到的唯一相关示例是帖子:( Alea GPU是否支持动态并行?),它在C#中提供了一个示例.
鉴于F#使用Code Quotation,我假设有一种直接的方法来执行我无法找到的操作.
请告知,或指向相关资源.任何帮助将不胜感激.
问候.
我试图使用aleagpu但我得到System.TypeInitializationException.我试图谷歌问题是什么,但我找不到任何解决方案,所以请帮助.该计划是最简单的:
class Klazz
{
private const int N = 100;
private const int Length = 10000000;
var gpu = Gpu.Default;// here is the Exception thrown
public static void Unmanaged()
{
var data = new int[Length];
for (var k = 0; k < N; k++)
gpu.For(0, data.Length, i => data[i] += 1);
}
}
Run Code Online (Sandbox Code Playgroud)
我想象我的安装有问题,因为该程序是来自aleagpu主页的复制示例.
我的系统是:
Alea于2016年11月9日从NuGet安装
PATH中的变量是正确的.
我已经尝试了AleaSample.CS.ParallelForAutoMemMgt以及相同的结果.
在安装文档http://www.aleagpu.com/release/3_0_2/doc/installation.html中,它说要从https://developer.nvidia.com/cuda-downloads下载最新的CUDA驱动程序.
我已经这样做了,并且无法运行一些样本.
最新的CUDA工具包是v8.0,但是当运行一些示例时,我得到一个错误,无法找到curand64_75.dll看起来像是v7.5 dll.
我已经下载并安装了v7.5 Toolkit,现在我收到了"异常[cuRAND Error] LAUNCH_FAILURE"错误.我认为它与使用v8.0驱动程序时运行v7.5 Toolkit有关.
如何让Alea GPU引用curand64_80.dll?
或者我是否必须卸载所有V8.0的东西,现在只运行v7.5?
我在我的代码中创建了一个CPU Parallel.For循环,如下所示:
Vector2[] p;
Vector2[] pnew;
Vector2[] v;
float[] m;
Parallel.For(0, N, i =>
{
double dx;
double dy;
double invr;
double invr3;
double f;
double ax;
double ay;
double eps = 0.02;
ax = 0;
ay = 0;
for (int j = 0; j < N; j++)
{
dx = p[j].X - p[i].X;
dy = p[j].Y - p[i].Y;
invr =1.0 / Math.Sqrt(dx * dx + dy * dy + eps);
invr3 = invr * invr * invr;
f = …Run Code Online (Sandbox Code Playgroud)