2
Fle #에서 Alea GPU로 가능합니까? 기능을 커널에 전달Alea GPU 커널에 함수를 넘겨 주면
let my_function = fun a b -> a + b
, 커널 내에서 사용 :
함수를 선언
let result = my_function 5 9
내가 대안은 단순히 정적으로 같은 기능을 선언하는 것을 이해 :
[<ReflectedDefinition>]
let my_function a b =
a + b
하지만 변경하고 싶습니다. my_function
b 프로그램의 매개 변수에 따라 달라집니다. 예를 들어
는 :
[<ReflectedDefinition>]
let kernel (a:int) (adder:int->int) =
let result <- adder a
let transformKernel = <@ kernel @> |> Compiler.makeKernel
let add_num b =
fun (a:int) ->
a + b
let run num1 num2 =
let adder = add_num num2
let gpu = Gpu.Default
let num1Gpu = gpu.Allocate(num1)
let adderGpu = gpu.Allocate(adder)
let lp = LaunchParam(1, 1)
gpu.Launch transformKernel lp num1Gpu adderGpu
// return result
let my_result = run 3 7
// my_result should be 10