Skip to content

Commit 5b2eba7

Browse files
authored
add tests for tanh (#252)
add 16 and 32 bit float tests for tanh closes #145
1 parent fa54ce3 commit 5b2eba7

File tree

2 files changed

+132
-0
lines changed

2 files changed

+132
-0
lines changed

test/Feature/HLSLLib/tanh.16.test

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#--- source.hlsl
2+
3+
StructuredBuffer<half4> In : register(t0);
4+
5+
RWStructuredBuffer<half4> Out : register(u1);
6+
7+
[numthreads(1,1,1)]
8+
void main() {
9+
Out[0] = tanh(In[0]);
10+
half4 Tmp = {tanh(In[1].xyz), tanh(In[1].w)};
11+
Out[1] = Tmp;
12+
half4 Tmp2 = {tanh(In[2].xy), tanh(In[2].zw)};
13+
Out[2] = Tmp2;
14+
}
15+
16+
17+
//--- pipeline.yaml
18+
19+
---
20+
Shaders:
21+
- Stage: Compute
22+
Entry: main
23+
DispatchSize: [1, 1, 1]
24+
Buffers:
25+
- Name: In
26+
Format: Float16
27+
Stride: 8
28+
Data: [ 0x8000, 0x0000, 0x3c00, 0xbc00, 0x8000, 0x0000, 0x3c00, 0xbc00, 0x8000, 0x0000, 0x3c00, 0xbc00]
29+
# -0, 0, 1, -1, -0, 0 , 1, -1, -0, 0, 1, -1
30+
- Name: Out
31+
Format: Float16
32+
Stride: 8
33+
ZeroInitSize: 24
34+
- Name: ExpectedOut # The result we expect
35+
Format: Float16
36+
Stride: 8
37+
Data: [ 0x8000, 0x0000, 0x3a18, 0xba18, 0x8000, 0x0000, 0x3a18, 0xba18, 0x8000, 0x0000, 0x3a18, 0xba18]
38+
# -0.0, 0.0, 0.761594, -0.761594, -0.0, 0.0, 0.761594, -0.761594, -0.0, 0.0, 0.761594, -0.761594,
39+
Results:
40+
- Result: Test1
41+
Rule: BufferFloatEpsilon
42+
Epsilon: 0.0008
43+
Actual: Out
44+
Expected: ExpectedOut
45+
DescriptorSets:
46+
- Resources:
47+
- Name: In
48+
Kind: StructuredBuffer
49+
DirectXBinding:
50+
Register: 0
51+
Space: 0
52+
VulkanBinding:
53+
Binding: 0
54+
- Name: Out
55+
Kind: RWStructuredBuffer
56+
DirectXBinding:
57+
Register: 1
58+
Space: 0
59+
VulkanBinding:
60+
Binding: 1
61+
...
62+
#--- end
63+
64+
# REQUIRES: Half
65+
# RUN: split-file %s %t
66+
# RUN: %dxc_target -enable-16bit-types -T cs_6_5 -Fo %t.o %t/source.hlsl
67+
# RUN: %offloader %t/pipeline.yaml %t.o

test/Feature/HLSLLib/tanh.32.test

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
#--- source.hlsl
2+
3+
StructuredBuffer<float4> In : register(t0);
4+
5+
RWStructuredBuffer<float4> Out : register(u1);
6+
7+
[numthreads(1,1,1)]
8+
void main() {
9+
Out[0] = tanh(In[0]);
10+
float4 Tmp = {tanh(In[1].xyz), tanh(In[1].w)};
11+
Out[1] = Tmp;
12+
float4 Tmp2 = {tanh(In[2].xy), tanh(In[2].zw)};
13+
Out[2] = Tmp2;
14+
}
15+
16+
17+
//--- pipeline.yaml
18+
19+
---
20+
Shaders:
21+
- Stage: Compute
22+
Entry: main
23+
DispatchSize: [1, 1, 1]
24+
Buffers:
25+
- Name: In
26+
Format: Float32
27+
Stride: 16
28+
Data: [ -0, 0, 1, -1, -0, 0, 1, -1, -0, 0, 1, -1]
29+
- Name: Out
30+
Format: Float32
31+
Stride: 16
32+
ZeroInitSize: 48
33+
- Name: ExpectedOut # The result we expect
34+
Format: Float32
35+
Stride: 16
36+
Data: [ -0.0, 0.0, 0.761594, -0.761594, -0.0, 0.0, 0.761594, -0.761594, -0.0, 0.0, 0.761594, -0.761594]
37+
Results:
38+
- Result: Test1
39+
Rule: BufferFloatEpsilon
40+
Epsilon: 0.0008
41+
Actual: Out
42+
Expected: ExpectedOut
43+
DescriptorSets:
44+
- Resources:
45+
- Name: In
46+
Kind: StructuredBuffer
47+
DirectXBinding:
48+
Register: 0
49+
Space: 0
50+
VulkanBinding:
51+
Binding: 0
52+
- Name: Out
53+
Kind: RWStructuredBuffer
54+
DirectXBinding:
55+
Register: 1
56+
Space: 0
57+
VulkanBinding:
58+
Binding: 1
59+
...
60+
#--- end
61+
62+
63+
# RUN: split-file %s %t
64+
# RUN: %dxc_target -T cs_6_5 -Fo %t.o %t/source.hlsl
65+
# RUN: %offloader %t/pipeline.yaml %t.o

0 commit comments

Comments
 (0)