-
Notifications
You must be signed in to change notification settings - Fork 685
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Applying autotest module on existing complex operators (#10284)
### Original requirements **Autotest**: We found that the previous testing of operators supporting complex tensor was not complete. We decided to reuse the real tensor operator tests to ensure completeness. Since complex tensor tests are supported in the `autotest` module from pr (#10027) , in this pr we applied the autotest module to the tests of complex tensor operators already available in Oneflow **Fix**: In addition, the autograd rules for some previous operators of complex numbers might not conform to the convention of ["Conjugate Wirtinger Derivative"](https://en.wikipedia.org/wiki/Wirtinger_derivatives). We have fixed these bugs in this pr at the same time. #### Main Works **Applying `autotest` module on existing operators that have already support complex tensor:** `Complex and Real Behave the Same Way`: means we don't need to add conjugate operation in op grad. Because regardless of whether the input data type involved in the operation is real or complex, the gradient result using the winterger derivative is the same as the real derivative rule, `Grad Not Supported in OF`: means the grad of this op is not supported in oneflow - broadcast_elementwise_binary | Op | complex type | Backend | Using autotest | conjugate Wirtinger derivative | |:-----:|:-------------:|:------:|:------:|:------:| | Add | cp64, cp128 | CPU, CUDA | DONE | Complex and Real Behave the Same Way | | Mul | cp64, cp128 | CPU, CUDA | DONE | DONE | | Sub | cp64, cp128 | CPU, CUDA | DONE | Complex and Real Behave the Same Way | | Equal | cp64, cp128 | CPU, CUDA | DONE | Complex and Real Behave the Same Way | | NotEqual | cp64, cp128 | CPU, CUDA | DONE | Grad Not Supported in OF | - broadcast_elementwise_unary | Op | complex type | Backend | Using autotest | conjugate Wirtinger derivative | |:----------:|:-------------:|:------:|:------:|:------:| | Cast | cp64, cp128 | CPU, CUDA | DONE | Complex and Real Behave the Same Way | - other exisiting operations | Op | complex type | Backend | Using autotest | conjugate Wirtinger derivative | |:----------:|:-------------:|:------:|:------:|:------:| | constant_pad | cp64, cp128 | CPU, CUDA | Done | Complex and Real Behave the Same Way | | reduce_sum | cp64, cp128 | CPU, CUDA | TO-DO | Complex and Real Behave the Same Way | ## 注意: 复数基础设施建设系列 pr: 1. 使用 primitive 来实现 conj, real 等常见复数算子: #10281 2. 将现有支持复数数据类型的算子测例迁移到 autotest 模块中,以使复数算子复用实数算子的测试用例:#10284 3. 继续拓展支持复数数据类型的算子,比如 matmul, sqrt, div 等:#10269 依赖关系: 本 pr 基于:[pr1](https://github.com/Oneflow-Inc/oneflow/pull/10281),需要在 merge [pr1](#10281) 后,再 Merge 本 pr
- Loading branch information
1 parent
6f5e0f6
commit fb423fa
Showing
15 changed files
with
144 additions
and
42 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.