summaryrefslogtreecommitdiffstats
path: root/tests/autodiff/cuda-kernel-export.slang
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2023-03-16 22:17:34 -0700
committerGitHub <noreply@github.com>2023-03-16 22:17:34 -0700
commitfc9cba5307d166f7fda3f7e2c8b5bed7b06fef54 (patch)
tree1a7e73b2b00cd5672c0c7318a6f4ab52cf7c5557 /tests/autodiff/cuda-kernel-export.slang
parent2fd1ac6c85230d47c008e45fefcc1c49400e96bd (diff)
Add `[CudaDeviceExport]` to allow exporting CUDA device functions. (#2708)
* Add `[CudaDeviceExport]` to allow exporting CUDA device functions. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'tests/autodiff/cuda-kernel-export.slang')
-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);
+}