@@ -16,6 +16,15 @@ open Brahma.FSharp.OpenCL.WorkflowBuilder.Evaluation
1616open Brahma.FSharp .OpenCL .Extensions
1717open OpenCL.Net
1818
19+ type ClContext = ClContext of OpenCLEvaluationContext
20+ with
21+ override this.ToString () =
22+ let mutable e = ErrorCode.Unknown
23+ let ( ClContext context ) = this
24+ let device = context.Device
25+ let deviceName = Cl.GetDeviceInfo( device, DeviceInfo.Name, & e) .ToString()
26+ sprintf " %20s " deviceName
27+
1928type InputMatrixFormat = {
2029 MatrixName: string
2130 MatrixStructure: COOFormat < float >
@@ -129,13 +138,15 @@ type EWiseAddBenchmarks() =
129138
130139 [<Benchmark>]
131140 [<ArgumentsSource( " AvaliableContextsProvider" ) >]
132- member this.EWiseAdditionCOO ( context : OpenCLEvaluationContext ) =
141+ member this.EWiseAdditionCOO ( clContext : ClContext ) =
142+ let ( ClContext context ) = clContext
133143 leftCOO.EWiseAdd rightCOO None FloatSemiring.addMult
134144 |> context.RunSync
135145
136146 [<Benchmark>]
137147 [<ArgumentsSource( " AvaliableContextsProvider" ) >]
138- member this.EWiseAdditionCSR ( context : OpenCLEvaluationContext ) =
148+ member this.EWiseAdditionCSR ( clContext : ClContext ) =
149+ let ( ClContext context ) = clContext
139150 leftCSR.EWiseAdd rightCOO None FloatSemiring.addMult
140151 |> context.RunSync
141152
@@ -204,14 +215,14 @@ type EWiseAddBenchmarks() =
204215 static member AvaliableContextsProvider =
205216 let mutable e = ErrorCode.Unknown
206217 Cl.GetPlatformIDs & e
207- |> Array.collect ( fun platform -> Cl.GetDeviceIDs( platform, DeviceType.All , & e))
218+ |> Array.collect ( fun platform -> Cl.GetDeviceIDs( platform, DeviceType.Cpu , & e))
208219 |> Seq.ofArray
209220 |> Seq.map
210221 ( fun device ->
211222 let platform = Cl.GetDeviceInfo( device, DeviceInfo.Platform, & e) .CastTo< Platform>()
212223 let platformName = Cl.GetPlatformInfo( platform, PlatformInfo.Name, & e) .ToString()
213224 let deviceType = Cl.GetDeviceInfo( device, DeviceInfo.Type, & e) .CastTo< DeviceType>()
214- OpenCLEvaluationContext( platformName, deviceType)
225+ OpenCLEvaluationContext( platformName, deviceType) |> ClContext
215226 )
216227
217228// не уверен, что на каждой итерации трансфер данных снова происходит
0 commit comments