summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2020-03-10 12:31:25 -0400
committerGitHub <noreply@github.com>2020-03-10 12:31:25 -0400
commita10d9cd8767e88a064719d71cc97144ba8b112d1 (patch)
treec54745fb698c8cacfeb1c4440261eb899338f20e /source
parent721d2e8a2d457081cd3d9b081979d436b7002c2c (diff)
WIP Prefix Sum for CUDA (#1268)
* Fix some typos. * Add wave-prefix-sum.slang test * First pass at implementing prefixSum. * Small improvments to prefixSum CUDA. * Small improvement to prefix sum. * Enable prefix sum in stdlib.
Diffstat (limited to 'source')
-rw-r--r--source/slang/hlsl.meta.slang21
1 files changed, 11 insertions, 10 deletions
diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang
index 4b717d540..b43cd009f 100644
--- a/source/slang/hlsl.meta.slang
+++ b/source/slang/hlsl.meta.slang
@@ -2497,12 +2497,12 @@ bool WaveIsFirstLane();
__generic<T : __BuiltinArithmeticType>
__glsl_extension(GL_KHR_shader_subgroup_arithmetic)
__spirv_version(1.3)
-__target_intrinsic(glsl, "subgroupExcusiveMul($0)")
+__target_intrinsic(glsl, "subgroupExclusiveMul($0)")
T WavePrefixProduct(T expr);
__generic<T : __BuiltinArithmeticType, let N : int>
__glsl_extension(GL_KHR_shader_subgroup_arithmetic)
__spirv_version(1.3)
-__target_intrinsic(glsl, "subgroupExcusiveMul($0)")
+__target_intrinsic(glsl, "subgroupExclusiveMul($0)")
vector<T,N> WavePrefixProduct(vector<T,N> expr);
__generic<T : __BuiltinArithmeticType, let N : int, let M : int>
matrix<T,N,M> WavePrefixProduct(matrix<T,N,M> expr);
@@ -2510,12 +2510,13 @@ matrix<T,N,M> WavePrefixProduct(matrix<T,N,M> expr);
__generic<T : __BuiltinArithmeticType>
__glsl_extension(GL_KHR_shader_subgroup_arithmetic)
__spirv_version(1.3)
-__target_intrinsic(glsl, "subgroupExcusiveAdd($0)")
+__target_intrinsic(glsl, "subgroupExclusiveAdd($0)")
+__target_intrinsic(cuda, "_wavePrefixSum($0)")
T WavePrefixSum(T expr);
__generic<T : __BuiltinArithmeticType, let N : int>
__glsl_extension(GL_KHR_shader_subgroup_arithmetic)
__spirv_version(1.3)
-__target_intrinsic(glsl, "subgroupExcusiveAdd($0)")
+__target_intrinsic(glsl, "subgroupExclusiveAdd($0)")
vector<T,N> WavePrefixSum(vector<T,N> expr);
__generic<T : __BuiltinArithmeticType, let N : int, let M : int>
matrix<T,N,M> WavePrefixSum(matrix<T,N,M> expr);
@@ -2523,11 +2524,11 @@ matrix<T,N,M> WavePrefixSum(matrix<T,N,M> expr);
__generic<T : __BuiltinArithmeticType>
__glsl_extension(GL_KHR_shader_subgroup_arithmetic)
__spirv_version(1.3)
-__target_intrinsic(glsl, "subgroupExcusiveAnd($0)")
+__target_intrinsic(glsl, "subgroupExclusiveAnd($0)")
T WaveMultiPrefixBitAnd(T expr);
__glsl_extension(GL_KHR_shader_subgroup_arithmetic)
__spirv_version(1.3)
-__target_intrinsic(glsl, "subgroupExcusiveAnd($0)")
+__target_intrinsic(glsl, "subgroupExclusiveAnd($0)")
__generic<T : __BuiltinArithmeticType, let N : int>
vector<T,N> WaveMultiPrefixBitAnd(vector<T,N> expr);
__generic<T : __BuiltinArithmeticType, let N : int, let M : int>
@@ -2536,12 +2537,12 @@ matrix<T,N,M> WaveMultiPrefixBitAnd(matrix<T,N,M> expr);
__generic<T : __BuiltinArithmeticType>
__glsl_extension(GL_KHR_shader_subgroup_arithmetic)
__spirv_version(1.3)
-__target_intrinsic(glsl, "subgroupExcusiveOr($0)")
+__target_intrinsic(glsl, "subgroupExclusiveOr($0)")
T WaveMultiPrefixBitOr(T expr);
__generic<T : __BuiltinArithmeticType, let N : int>
__glsl_extension(GL_KHR_shader_subgroup_arithmetic)
__spirv_version(1.3)
-__target_intrinsic(glsl, "subgroupExcusiveOr($0)")
+__target_intrinsic(glsl, "subgroupExclusiveOr($0)")
vector<T,N> WaveMultiPrefixBitOr(vector<T,N> expr);
__generic<T : __BuiltinArithmeticType, let N : int, let M : int>
matrix<T,N,M> WaveMultiPrefixBitOr(matrix<T,N,M> expr);
@@ -2549,12 +2550,12 @@ matrix<T,N,M> WaveMultiPrefixBitOr(matrix<T,N,M> expr);
__generic<T : __BuiltinArithmeticType>
__glsl_extension(GL_KHR_shader_subgroup_arithmetic)
__spirv_version(1.3)
-__target_intrinsic(glsl, "subgroupExcusiveXor($0)")
+__target_intrinsic(glsl, "subgroupExclusiveXor($0)")
T WaveMultiPrefixBitXor(T expr);
__generic<T : __BuiltinArithmeticType, let N : int>
__glsl_extension(GL_KHR_shader_subgroup_arithmetic)
__spirv_version(1.3)
-__target_intrinsic(glsl, "subgroupExcusiveXor($0)")
+__target_intrinsic(glsl, "subgroupExclusiveXor($0)")
vector<T,N> WaveMultiPrefixBitXor(vector<T,N> expr);
__generic<T : __BuiltinArithmeticType, let N : int, let M : int>
matrix<T,N,M> WaveMultiPrefixBitXor(matrix<T,N,M> expr);