Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[HIPIFY][MIOpen][feature] cuDNN -> MIOpen transformations #584

Open
emankov opened this issue Jul 1, 2022 · 0 comments
Open

[HIPIFY][MIOpen][feature] cuDNN -> MIOpen transformations #584

emankov opened this issue Jul 1, 2022 · 0 comments
Assignees
Labels
DNN DNN-related feature Feature request or implementation MIOpen partial Partial fix or implementation

Comments

@emankov
Copy link
Collaborator

emankov commented Jul 1, 2022

@emankov emankov added feature Feature request or implementation MIOpen labels Jul 1, 2022
@emankov emankov self-assigned this Jul 1, 2022
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 1, 2022
+ Introduced the `API_DNN` as yet another API to hipify under the `--roc` option
+ Introduced a new synthetic test `cudnn2miopen.cu`
+ Added just a few cudnn2miopen mappings

[ToDo]
+ Add the needed changes in the `hipify-perl` script generation
+ Start to generate yet another CUDA2HIP Markdown doc regarding cuDNN support in MIOpen
+ Decide what to do with the still being generated but not being published `CUDNN_API_supported_by_HIP.md` for cuDNN support in the obsolete hipDNN
emankov added a commit that referenced this issue Nov 1, 2022
[HIPIFY][#584][DNN][MIOpen] cuDNN -> MIOpen - Part 1
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 10, 2022
+ Continued supporting hipification to MIOpen based on `miopen.h`
+ Updated the synthetic test `cudnn2miopen.cu` accordingly
+ MIOpen has its own types, equal to HIP ones but without any connection (like redefines, for instance):
  + Example: cudaStream_t / hipStream_t / miopenAcceleratorQueue_t
  + [Solution] Started to use the "roc" mapping for Runtime APIs as well, which is used only under the `--roc` option

[ToDo]
+ Form the above solution as a standalone function instead of an ad-hock workaround
+ Add the needed changes in the `hipify-perl` script generation
+ Start to generate yet another CUDA2HIP Markdown doc regarding cuDNN support in MIOpen
+ Decide what to do with the still being generated but not being published `CUDNN_API_supported_by_HIP.md` for cuDNN support in the obsolete hipDNN
emankov added a commit that referenced this issue Nov 10, 2022
[HIPIFY][#584][DNN][MIOpen] cuDNN -> MIOpen - Part 2
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 11, 2022
+ Continued supporting hipification to MIOpen based on `miopen.h`
+ Updated the synthetic test `cudnn2miopen.cu` accordingly
emankov added a commit that referenced this issue Nov 12, 2022
[HIPIFY][#584][DNN][MIOpen] cuDNN -> MIOpen - Part 3
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 15, 2022
+ Continued supporting hipification to MIOpen based on `miopen.h`
+ Updated the synthetic test `cudnn2miopen.cu` accordingly
+ Fixed typos
emankov added a commit that referenced this issue Nov 16, 2022
[HIPIFY][#584][DNN][MIOpen] cuDNN -> MIOpen - Part 4
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 20, 2022
+ Continued supporting hipification to MIOpen based on `miopen.h`
+ Updated the synthetic test `cudnn2miopen.cu` accordingly
emankov added a commit that referenced this issue Nov 20, 2022
[HIPIFY][#584][DNN][MIOpen] cuDNN -> MIOpen - Part 5
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 23, 2022
+ Continued supporting hipification to MIOpen based on `miopen.h`
+ Updated the synthetic test `cudnn2miopen.cu` accordingly
emankov added a commit that referenced this issue Nov 23, 2022
[HIPIFY][#584][DNN][MIOpen] cuDNN -> MIOpen - Part 6
emankov added a commit to emankov/HIPIFY that referenced this issue Mar 31, 2023
+ Continued supporting hipification to MIOpen based on `miopen.h`
+ Updated the synthetic test `cudnn2miopen.cu` accordingly

[ToDo]
+ [feature] Arguments swap
+ [feature] Additional argument (const value, firstly)
emankov added a commit that referenced this issue Mar 31, 2023
[HIPIFY][#584][DNN][MIOpen] cuDNN -> MIOpen - Part 7
@emankov emankov added the DNN DNN-related label Mar 31, 2023
emankov added a commit to emankov/HIPIFY that referenced this issue Apr 1, 2023
+ [refactor] Introduced `ArgCastStruct` with additional fields `isToRoc` and `isToMIOpen` (both are `false` by default) for the correct argument casting in `roc*` and `miopen*` functions
+ Removed the penultimate (5th) arg `cudnnConvolutionFwdAlgo_t algo` from the `miopenConvolutionForwardGetWorkSpaceSize` function call after hipification of `cudnnGetConvolutionForwardWorkspaceSize` due to the absence of that argument in `miopenConvolutionForwardGetWorkSpaceSize`; no warning is emitted
+ Updated the synthetic test `cudnn2miopen.cu` accordingly
emankov added a commit that referenced this issue Apr 1, 2023
[HIPIFY][#584][DNN][MIOpen][refactor] cuDNN -> MIOpen - Part 8
emankov added a commit to emankov/HIPIFY that referenced this issue Apr 1, 2023
+ Continued supporting hipification to MIOpen based on `miopen.h`:
  `cudnnConvolutionBackwardBias` -> `miopenConvolutionBackwardBias`
  `cudnnGetConvolutionBackwardDataWorkspaceSize` -> `miopenConvolutionBackwardDataGetWorkSpaceSize` (TODO: swap 2 and 3 arguments)
  `cudnnConvolutionBackwardData` -> `miopenConvolutionBackwardData` (TODO: swap correctly all args, starting from 3rd)
  `cudnnCreatePoolingDescriptor` -> `miopenCreatePoolingDescriptor`
  `cudnnConvolutionBwdDataAlgoPerf_t` && `cudnnConvolutionFwdAlgoPerf_t` -> `miopenConvAlgoPerf_t`
+ Updated the synthetic test `cudnn2miopen.cu` accordingly
emankov added a commit that referenced this issue Apr 1, 2023
[HIPIFY][#584][DNN][MIOpen] cuDNN -> MIOpen - Part 9
emankov added a commit to emankov/HIPIFY that referenced this issue Apr 2, 2023
…Part 10

+ Add a new function call transformation type "additional const by value arg":
  the arg is added at ArgNum (starting from 0), if ArgNum >= `ArgNumCount` the arg is added at the end as the last function arg
+ Added a const argument `true` for `bool exhaustiveSearch` as the last argument in the `miopenFindConvolutionForwardAlgorithm` function calls
+ Updated the synthetic test `cudnn2miopen.cu` accordingly
emankov added a commit that referenced this issue Apr 2, 2023
[HIPIFY][#584][#822][DNN][MIOpen][feature] cuDNN -> MIOpen - Part 10
emankov added a commit to emankov/HIPIFY that referenced this issue Apr 3, 2023
…ling functions

+ Continued supporting hipification to MIOpen based on `miopen.h`
+ Updated the synthetic test `cudnn2miopen.cu` accordingly
+ [IMP] `cudnnPoolingForward` and `cudnnPoolingBackward` do not have a correspondence to `miopenPoolingForward` and `miopenPoolingBackward` - to discuss with the team
emankov added a commit that referenced this issue Apr 3, 2023
[HIPIFY][#584][DNN][MIOpen] cuDNN -> MIOpen - Part 11 - cuDNN Pooling functions
emankov added a commit to emankov/HIPIFY that referenced this issue Apr 4, 2023
… functions

+ Continued supporting hipification to MIOpen based on `miopen.h`
+ Updated the synthetic test `cudnn2miopen.cu` accordingly
+ [IMP] `cudnnLRNCrossChannelForward` and `cudnnLRNCrossChannelBackward` do not have a correspondence to `miopenLRNForward` and `miopenLRNBackward` - to discuss with the team

[ToDo]
+ [feature] Add a new type of transformation with declaring a var before the function call to add that var reference as an arg to the below function call
+ Add a referrence to miopenLRNMode_t as a 2nd arg for `miopenGetLRNDescriptor` function call
emankov added a commit that referenced this issue Apr 4, 2023
[HIPIFY][#584][DNN][MIOpen] cuDNN -> MIOpen - Part 12 - cuDNN LRN functions
emankov added a commit to emankov/HIPIFY that referenced this issue Apr 4, 2023
…ch Normalization functions

+ Continued supporting hipification to MIOpen based on `miopen.h`
+ Updated the synthetic test `cudnn2miopen.cu` accordingly
emankov added a commit that referenced this issue Apr 4, 2023
[HIPIFY][#584][DNN][MIOpen] cuDNN -> MIOpen - Part 13 - cuDNN Batch Normalization functions
emankov added a commit that referenced this issue Apr 15, 2023
[HIPIFY][#584][DNN][MIOpen] cuDNN -> MIOpen - Part 17 - cuDNN RNN functions - partially
emankov added a commit to emankov/HIPIFY that referenced this issue Apr 16, 2023
… Loss functions

+ Finished with RNN functions
+ Continued supporting hipification to MIOpen based on `miopen.h`
+ Updated the synthetic test `cudnn2miopen.cu` accordingly

[ToDo]
+ [ROCm#837] for miopenGetRNNDescriptor_V2, miopenSetRNNDescriptor_V2, miopenGetCTCLossDescriptor, and miopenSetCTCLossDescriptor
emankov added a commit that referenced this issue Apr 16, 2023
[HIPIFY][#584][DNN][MIOpen] cuDNN -> MIOpen - Part 18 - cuDNN CTC Loss functions
emankov added a commit to emankov/HIPIFY that referenced this issue Apr 17, 2023
…pout functions

+ Continued supporting hipification to MIOpen based on `miopen.h`
+ Updated the synthetic test `cudnn2miopen.cu` accordingly

[ToDo]
+ [ROCm#837] for miopenGetDropoutDescriptor, miopenSetDropoutDescriptor, miopenRestoreDropoutDescriptor, miopenDropoutForward, and miopenDropoutBackward
emankov added a commit that referenced this issue Apr 17, 2023
[HIPIFY][#584][DNN][MIOpen] cuDNN -> MIOpen - Part 19 - cuDNN Dropout functions
emankov added a commit to emankov/HIPIFY that referenced this issue Apr 18, 2023
…uce Tensor functions

+ Continued supporting hipification to MIOpen based on `miopen.h`
+ Updated the synthetic test `cudnn2miopen.cu` accordingly
emankov added a commit that referenced this issue Apr 18, 2023
[HIPIFY][#584][DNN][MIOpen] cuDNN -> MIOpen - Part 20 - cuDNN Reduce Tensor functions
@emankov emankov added the partial Partial fix or implementation label Sep 28, 2023
emankov added a commit to emankov/HIPIFY that referenced this issue Aug 23, 2024
…direct translation from `cuDNN` to `MIOpen` - Part 1

+ `cudnnTensorFormat_t` -> `miopenTensorLayout_t`
+ `cudnnBackendDescriptorType_t` -> `miopenBackendDescriptorType_t`
+ Updated synthetic tests, the regenerated `hipify-perl`, and `DNN` `CUDA2HIP` documentation
+ [ToDo] `MIOpen` API versioning
emankov added a commit that referenced this issue Aug 23, 2024
[HIPIFY][#584][#1624][MIOpen] Support for backend `graphAPI` direct translation from `cuDNN` to `MIOpen` - Part 1
emankov added a commit to emankov/HIPIFY that referenced this issue Aug 26, 2024
…direct translation from `cuDNN` to `MIOpen` - Part 2

+ `cudnnBackendAttributeType_t` -> `miopenBackendAttributeType_t`
+ Updated synthetic tests, the regenerated `hipify-perl`, and `DNN` `CUDA2HIP` documentation
+ [ToDo] `MIOpen` API versioning
emankov added a commit that referenced this issue Aug 26, 2024
[HIPIFY][#584][#1624][MIOpen] Support for backend `graphAPI` direct translation from `cuDNN` to `MIOpen` - Part 2
emankov added a commit to emankov/HIPIFY that referenced this issue Sep 3, 2024
…direct translation from `cuDNN` to `MIOpen` - Part 3

+ `cudnnBackendAttributeName_t` -> `miopenBackendAttributeName_t` -  partial
+ Updated the regenerated `hipify-perl`, and `DNN` `CUDA2HIP` documentation
+ [ToDo] `synthetic tests
emankov added a commit that referenced this issue Sep 3, 2024
[HIPIFY][#584][#1624][MIOpen] Support for backend `graphAPI` direct translation from `cuDNN` to `MIOpen` - Part 3
emankov added a commit to emankov/HIPIFY that referenced this issue Sep 4, 2024
…direct translation from `cuDNN` to `MIOpen` - Part 4

+ `cudnnBackendAttributeName_t` -> `miopenBackendAttributeName_t` - continuation
+ Updated synthetic tests, the regenerated `hipify-perl`, and `DNN` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Sep 4, 2024
[HIPIFY][#584][#1624][MIOpen] Support for backend `graphAPI` direct translation from `cuDNN` to `MIOpen` - Part 4
emankov added a commit to emankov/HIPIFY that referenced this issue Sep 5, 2024
…direct translation from `cuDNN` to `MIOpen` - Part 5

+ `cudnnBackendAttributeName_t` -> `miopenBackendAttributeName_t` - continuation
+ Updated synthetic tests, the regenerated `hipify-perl`, and `DNN` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Sep 5, 2024
[HIPIFY][#584][#1624][MIOpen] Support for backend `graphAPI` direct translation from `cuDNN` to `MIOpen` - Part 5
emankov added a commit to emankov/HIPIFY that referenced this issue Sep 6, 2024
…direct translation from `cuDNN` to `MIOpen` - Part 6

+ `cudnnBackendAttributeName_t` -> `miopenBackendAttributeName_t` - continuation
+ Updated synthetic tests, the regenerated `hipify-perl`, and `DNN` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Sep 6, 2024
[HIPIFY][#584][#1624][MIOpen] Support for backend `graphAPI` direct translation from `cuDNN` to `MIOpen` - Part 6
emankov added a commit to emankov/HIPIFY that referenced this issue Sep 9, 2024
…direct translation from `cuDNN` to `MIOpen` - Part 7

+ `cudnnBackendAttributeName_t` -> `miopenBackendAttributeName_t` - final
+ Updated synthetic tests, the regenerated `hipify-perl`, and `DNN` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Sep 9, 2024
[HIPIFY][#584][#1624][MIOpen] Support for backend `graphAPI` direct translation from `cuDNN` to `MIOpen` - Part 7
emankov added a commit to emankov/HIPIFY that referenced this issue Sep 12, 2024
…direct translation from `cuDNN` to `MIOpen` - Part 8

+ Added the missing `cudnnCTCGradMode_t` appeared in cuDNN 9.0.0
+ Fixed: `cudnnReduceTensorOp_t` deprecated in cuDNN 9.0.0 was undeprecated in cuDNN 9.1.0
+ Updated synthetic tests, the regenerated `hipify-perl`, and `DNN` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Sep 12, 2024
[HIPIFY][#584][#1624][MIOpen] Support for backend `graphAPI` direct translation from `cuDNN` to `MIOpen` - Part 8
emankov added a commit to emankov/HIPIFY that referenced this issue Sep 17, 2024
…direct translation from `cuDNN` to `MIOpen` - Part 9

+ `cudnnConvolutionMode_t` -> `miopenConvolutionMode_t`
+ `cudnnPointwiseMode_t` -> `miopenPointwiseMode_t`
+ `cudnnBackendDescriptor_t` -> `miopenBackendDescriptor_t`
+ Updated synthetic tests, the regenerated `hipify-perl`, and `DNN` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Sep 17, 2024
[HIPIFY][#584][#1624][MIOpen] Support for backend `graphAPI` direct translation from `cuDNN` to `MIOpen` - Part 9
emankov added a commit to emankov/HIPIFY that referenced this issue Sep 19, 2024
…direct translation from `cuDNN` to `MIOpen` - Part 10

+ `cudnnBackendHeurMode_t` -> `miopenBackendHeurMode_t`
+ `cudnnRngDistribution_t` -> `miopenRngDistribution_t`
+ Backend functions, except `miopenBackendInitialize` due to to ф signature difference from `cudnnBackendInitialize`
+ Updated synthetic tests, the regenerated `hipify-perl`, and `DNN` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Sep 19, 2024
[HIPIFY][#584][#1624][MIOpen] Support for backend `graphAPI` direct translation from `cuDNN` to `MIOpen` - Part 10
emankov added a commit to emankov/HIPIFY that referenced this issue Oct 2, 2024
…direct translation from `cuDNN` to `MIOpen` - Part 11 - final

+ `cudnnDataType_t` -> `miopenDataType_t` (missing float8 types)
+ `cudnnPoolingMode_t` -> `miopenPoolingMode_t`
+ `cudnnActivationMode_t` -> `miopenActivationMode_t` (missing `miopenActivationLOGISTIC`)
+ `cudnnRNNPaddingMode_t` -> `miopenRNNPaddingMode_t`
+ `cudnnForwardMode_t` -> `miopenRNNFWDMode_t`
+ `cudnnPaddingMode_t` -> `miopenPaddingMode_t`
+ [fix] `cudnnRNNPaddingMode_t` versioning
+ Updated synthetic tests, the regenerated `hipify-perl`, and `DNN` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Oct 2, 2024
[HIPIFY][#584][#1624][MIOpen] Support for backend `graphAPI` direct translation from `cuDNN` to `MIOpen` - Part 11 - final
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DNN DNN-related feature Feature request or implementation MIOpen partial Partial fix or implementation
Projects
None yet
Development

No branches or pull requests

1 participant