FSCL.Runtime
1.3.2
See the version list below for details.
dotnet add package FSCL.Runtime --version 1.3.2
NuGet\Install-Package FSCL.Runtime -Version 1.3.2
<PackageReference Include="FSCL.Runtime" Version="1.3.2" />
paket add FSCL.Runtime --version 1.3.2
#r "nuget: FSCL.Runtime, 1.3.2"
// Install FSCL.Runtime as a Cake Addin #addin nuget:?package=FSCL.Runtime&version=1.3.2 // Install FSCL.Runtime as a Cake Tool #tool nuget:?package=FSCL.Runtime&version=1.3.2
The FSCL Runtime framework is taking care of executing OpenCL kernels generated from the FSCL Compiler in a way that is completely transparent to programmers. On platforms with multiple OpenCL-enabled devices the runtime is also able to perform an automatic selection of the best device where to execute each OpenCL computation the programmer asks to run.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET Framework | net45 is compatible. net451 was computed. net452 was computed. net46 was computed. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
-
- FSCL.Compiler (>= 1.3.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Extended runtime support for structs and records. Now you can use both custom F# records and structs (and arrays of records and structs) as parameters of kernels and functions. Also, you can declare private/local structs and records using record initialisation construct, struct parameterless constructor and "special" struct constructor (a constructor taking N arguments, each of one matching one of the N fields, in the order). Records must be labeled with _LayoutKind.Sequential_ attribute. Important to note, records have lower performance, cause not blittable and must be marshalled into an unmanaged intptr (AllocHGlobal) and then copied to the OpenCL buffer (2 copies). Structs instead require one copy only (0 if UseHostPointer).
- Valid record decl: let myRec = { field1 = val1; ... fieldN = valN }
- Valid default struct decl: let myStruct = new MyStruct()
- Valid "special constructor" struct decl: let myStruct = new MyStruct(valForField1, valForField2, ... valForFieldN)
- NOT valid struct decl: let myStruct = new MyStruct(<Args where the i-TH is not a value assigned to the i-TH field>)