summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/autodiff/cuda-kernel-export.slang29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/autodiff/cuda-kernel-export.slang b/tests/autodiff/cuda-kernel-export.slang
new file mode 100644
index 000000000..0db4d8cea
--- /dev/null
+++ b/tests/autodiff/cuda-kernel-export.slang
@@ -0,0 +1,29 @@
+//DISABLED_TEST:SIMPLE: -target cuda -line-directive-mode none
+
+// Verify that we can output a cuda device function with [CudaDeviceExport].
+// Disabled until we have FileCheck.
+
+struct MixedType : IDifferentiable
+{
+ no_diff float noDiffField;
+ float field;
+}
+
+[BackwardDifferentiable]
+float f1(MixedType m)
+{
+ return 2.0 * m.field;
+}
+
+[BackwardDifferentiable]
+float f(MixedType m)
+{
+ MixedType m1 = { m.noDiffField, m.field };
+ return f1(m1);
+}
+
+[CudaDeviceExport]
+void diffF(inout DifferentialPair<MixedType> m, float dout)
+{
+ __bwd_diff(f)(m, dout);
+}