Questions tagged [aleagpu]

Alea GPU is a cross-platform GPU development environment for .NET. It supports all .NET languages (C#, F# and VB.NET) and allows reusing the same code-base for CPU and GPU computations.

Alea GPU is a professional GPU development environment for .NET.

  • Supports all .NET languages, including C#, F# and VB.
  • Improves developer productivity with first class tooling for coding, debugging and profiling, fully integrated in Visual Studio™.
  • Reduces development time with pre-fabricated GPU algorithms and libraries.
  • Increases agility with GPU scripting and a REPL in Visual Studio™ for rapid prototyping of GPU code.

With Alea GPU the .NET framework can be used as a cross platform technology for the CPU and GPU code base.

  • Runs on Windows, Linux and Mac OS X.
  • Single code base for multiple platforms - build once and run on any platform supporting either .NET or Mono.
  • Simplified deployment because generated assemblies are binary compatible for all platforms.

Alea GPU generates code which is as fast as native CUDA C/C++, with the benefit of being seamlessly integrated with .NET and Mono.

It can be used to develop GPU accelerated applications at all levels of sophistication, from simple GPU kernels up to complex GPU algorithms using textures, shared memory and other advanced GPU programming techniques.

Source: Alea GPU Manual

96 questions
0
votes
2 answers

Does Alea GPU support the new GeForce cards

I have a GTX 1060 card, when trying to run the AleaGPU examples I get the following error: {"Unknown arch: sm61"} Does AleaGPU not support these cards? Here is the output from the C++ deviceQuery program found in the CUDA toolkit: Detected 1 CUDA…
screig
  • 607
  • 1
  • 6
  • 19
0
votes
0 answers

Got CUDA error CUDA_ERROR_INVALID_VALUE at Alea.CUDA.DeviceMemory.Dispose(Boolean disposing)

I've been trying out the Alea CUDA examples and have been trying many configurations to make Alea happy. I finally got the CUDNN minst test to work except it is giving me the following error while attempting to dispose device…
bitronic
  • 1
  • 1
0
votes
1 answer

Disposing the default worker in Alea CUDA

Is it required to dispose Worker.Default or CUBLAS.Default? My CUDA code runs correctly but I get the following exception when the program exits: Got CUDA error CUDA_ERROR_INVALID_VALUE at System.Environment.GetStackTrace(Exception e, Boolean…
Johan
  • 660
  • 1
  • 6
  • 13
0
votes
1 answer

DeviceSumModuleF32 is broken

let sumModule = (new DeviceSumModuleF32(GPUModuleTarget.Worker(worker))).Create(2e2 |> int) let t = worker.Malloc([|1.0f;1.0f;1.0f;1.0f;|]) let q = sumModule.Reduce(t.Ptr,4) Without fail, the above code crashes with around 66% probability per run…
Marko Grdinić
  • 3,798
  • 3
  • 18
  • 21
0
votes
1 answer

How to allocate multiple arrays in shared memory

I'm trying to convert a kernel written for Cudafy to Alea. Cudafy lets you allocate multiple arrays of different types in shared memory. Example: int[,] paths = thread.AllocateShared("path", 128, 9); float[] best =…
Wil
  • 3
  • 2
0
votes
1 answer

How can we use array of 10000 rows and 10000 cols with AleaGpu?

How can we use array of 10000 rows and 10000 cols (instead of rows =10 and rows =5) with AleaGpu ? private void button3_Click(object sender, EventArgs e) { var worker = Worker.Default; const int rows = 10; const int cols = 5; …
Emmanuel
  • 21
  • 5
0
votes
1 answer

How can we copy an array with multiple dimension to the Kernel with AleaGpu?

How can we copy an array with multiple dimension to the Kernel in AleaGPU ? How can we develop with a multiple dimension array in a Kernel ? Malloc don't seem to accept it ? double[,] inputs; double[,] dInputs1 = Worker.Malloc(inputs); // I get…
Emmanuel
  • 21
  • 5
0
votes
1 answer

Finding memory leaks with Alea

I have a few scripts that after running for a while throw a Cuda out of memory exception. Inside of them I am using preallocated arrays, so I did not expect this to be a problem. Nevertheless, after I've turned the scripts into .fs files and…
Marko Grdinić
  • 3,798
  • 3
  • 18
  • 21
0
votes
1 answer

DeviceReduceModule throws an OverflowException

let absoluteSumModule = (new DeviceReduceModule(GPUModuleTarget.Worker(worker), fun a b -> a+b)).Create(128000) I've tried various maxNumItems settings but no mater what it throws the same exception. Unlike last time I have no idea what…
Marko Grdinić
  • 3,798
  • 3
  • 18
  • 21
0
votes
1 answer

DeviceReduceModule can't find the IL file

System.TypeInitializationException: The type initializer for 'Alea.CUDA.IL.CIRCallInstructionBuilder' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'Alea.IL, Version=2.1.2.3274, Culture=neutral,…
Marko Grdinić
  • 3,798
  • 3
  • 18
  • 21
0
votes
1 answer

Are Unbound's block and device radix sorts supported now?

Sort is not trivial to implement and I can't find the module in either documentation or the autocomplete. Is it not supported yet?
Marko Grdinić
  • 3,798
  • 3
  • 18
  • 21
0
votes
1 answer

What is an efficient way to broadcast a value to all the threads after using blockReduce from Cuda Unbound?

let column_mean_partial = blockReducer.Reduce(temp_storage, acc, fun a b -> a + b) / (float32 num_rows) if threadIdx.x = 0 then means.[col] <- column_mean_partial column_mean_shared := column_mean_partial __syncthreads() let column_mean…
Marko Grdinić
  • 3,798
  • 3
  • 18
  • 21
0
votes
1 answer

How to get the device architecture inside a kernel?

Just as the title asks. Both let blockReducer = BlockReduce.RakingCommutativeOnly(dims,DeviceArch.Create("sm35")) and let blockReducer = BlockReduce.RakingCommutativeOnly(dims,worker.Device.Arch) fail on compilation.
Marko Grdinić
  • 3,798
  • 3
  • 18
  • 21
0
votes
1 answer

How to get the default value of a generic type (for the warp shuffle)?

let t = if warpid = 0 then mean.[i / num_rows] else (Unchecked.defaultof<'T>) __syncthreads() let v = __shfl t 0 32 I want to get the default value of 'T, but the above snippet gives a compile error due to…
Marko Grdinić
  • 3,798
  • 3
  • 18
  • 21
0
votes
0 answers

The random module does not act as expected

When I run the random module in succession it gives me the same results. Any way I can fix this? The documentation on Alea is really sparse in some places. let cudaRandom = XorShift7.CUDA.DefaultUniformRandomModuleF32.Default.Create(1,1,uint32…
Marko Grdinić
  • 3,798
  • 3
  • 18
  • 21