Skip to content

Commit c66c1f2

Browse files
committed
merge amd-staging into amd-mainline
for ROCm HIP 6.1.1 Change-Id: Ib2273b022b1ebb3b3ee1e347cb00780b6c2055a1
2 parents 39cebd0 + 133db0c commit c66c1f2

35 files changed

+3176
-2324
lines changed

CHANGELOG.md

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,20 @@
33
Documentation for HIPIFY is available at
44
[https://rocmdocs.amd.com/projects/HIPIFY/en/latest/](https://rocmdocs.amd.com/projects/HIPIFY/en/latest/).
55

6+
## HIPIFY for ROCm 6.1.1
7+
8+
### Additions
9+
10+
* LLVM 18.1.2 support
11+
* cuDNN 9.0.0 support
12+
* New options:
13+
* `--clang-resource-directory` to specify the clang resource path - the path to the parent folder for the `include` folder that
14+
contains `__clang_cuda_runtime_wrapper.h` and other header files used during the hipification process
15+
16+
### Fixes
17+
18+
* Clang resource files used during hipification are now searchable and also can be specified by the `--clang-resource-directory` option
19+
620
## HIPIFY for ROCm 6.1.0
721

822
### Additions
@@ -14,13 +28,10 @@ Documentation for HIPIFY is available at
1428
* Full `rocSPARSE` support
1529
* New options:
1630
* `--amap` to hipify as much as possible, ignoring `--default-preprocessor` behavior
17-
* `--clang-resource-directory` to specify the clang resource path - the path to the parent folder for the `include` folder that
18-
contains `__clang_cuda_runtime_wrapper.h` and other header files used during the hipification process
1931

2032
### Fixes
2133

2234
* Code blocks skipped by the Preprocessor are not hipified anymore under the `--default-preprocessor` option
23-
* Clang resource files used during hipification are now searchable and also can be specified by the `--clang-resource-directory` option
2435

2536
## HIPIFY for ROCm 6.0.2
2637

README.md

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,6 @@
33
HIPIFY is a set of tools that you can use to automatically translate CUDA source code into portable
44
[HIP](https://github.com/ROCm/HIP) C++.
55

6-
## Table of contents
7-
8-
<!-- toc -->
9-
10-
* [hipify-clang](./docs/hipify-clang.md#hipify-clang)
11-
* [Dependencies](./docs/hipify-clang.md#hipify-clang-dependencies)
12-
* [Usage](./docs/hipify-clang.md#hipify-clang-usage)
13-
* [JSON Compilation Database](./docs/hipify-clang.md#hipify-clang-using-json-compilation-database)
14-
* [Hipification Statistics](./docs/hipify-clang.md#hipify-clang-hipification-statistics)
15-
* [Building](./docs/hipify-clang.md#hipify-clang-building)
16-
* [Testing](./docs/hipify-clang.md#hipify-clang-testing)
17-
* [Linux](./docs/hipify-clang.md#hipify-clang-linux-testing)
18-
* [Windows](./docs/hipify-clang.md#hipify-clang-windows-testing)
19-
* [hipify-perl](./docs/hipify-perl.md#hipify-perl)
20-
* [Usage](./docs/hipify-perl.md#hipify-perl-usage)
21-
* [Building](./docs/hipify-perl.md#hipify-perl-building)
22-
* Related: [hipify_torch](https://github.com/ROCmSoftwarePlatform/hipify_torch)
23-
* [Supported CUDA APIs](./docs/supported_apis.md#supported-cuda-apis)
24-
* [Documentation](#documentation)
25-
26-
<!-- tocstop -->
27-
286
## Documentation
297

308
Documentation for HIPIFY is available at

bin/hipify-perl

Lines changed: 352 additions & 0 deletions
Large diffs are not rendered by default.
File renamed without changes.

docs/hipify-clang.md

Lines changed: 0 additions & 702 deletions
This file was deleted.

docs/hipify-clang.rst

Lines changed: 881 additions & 0 deletions
Large diffs are not rendered by default.

docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
hipify-clang and hipify-perl are tools to translate CUDA source code into portable HIP C++ automatically.
44

5-
* [hipify-clang](hipify-clang.md)
5+
* [hipify-clang](hipify-clang.rst)
66
* [hipify-perl](hipify-perl.md)
77
* [Supported CUDA APIs](supported_apis.md)
88

docs/sphinx/requirements.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
rocm-docs-core==0.35.0
1+
rocm-docs-core==0.38.0

docs/sphinx/requirements.txt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,7 @@ pygments==2.15.0
8484
# pydata-sphinx-theme
8585
# sphinx
8686
pyjwt[crypto]==2.6.0
87-
# via
88-
# pygithub
89-
# pyjwt
87+
# via pygithub
9088
pynacl==1.5.0
9189
# via pygithub
9290
pytz==2023.3.post1
@@ -100,7 +98,7 @@ requests==2.31.0
10098
# via
10199
# pygithub
102100
# sphinx
103-
rocm-docs-core==0.35.0
101+
rocm-docs-core==0.38.0
104102
# via -r requirements.in
105103
smmap==5.0.0
106104
# via gitdb

docs/tables/CUDNN_API_supported_by_HIP.md

Lines changed: 354 additions & 309 deletions
Large diffs are not rendered by default.

docs/tables/CUDNN_API_supported_by_HIP_and_MIOPEN.md

Lines changed: 354 additions & 309 deletions
Large diffs are not rendered by default.

docs/tables/CUDNN_API_supported_by_MIOPEN.md

Lines changed: 354 additions & 309 deletions
Large diffs are not rendered by default.

src/CUDA2HIP_DNN_API_functions.cpp

Lines changed: 382 additions & 366 deletions
Large diffs are not rendered by default.

src/CUDA2HIP_DNN_API_types.cpp

Lines changed: 337 additions & 263 deletions
Large diffs are not rendered by default.

src/HipifyAction.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2276,7 +2276,7 @@ clang::SourceRange getWriteRange(clang::SourceManager &SM, const clang::SourceRa
22762276
// If the range is contained within a macro, update the macro definition.
22772277
// Otherwise, use the file location and hope for the best.
22782278
if (!SM.isMacroBodyExpansion(begin) || !SM.isMacroBodyExpansion(end)) {
2279-
return {SM.getExpansionLoc(begin), SM.getExpansionLoc(end)};
2279+
return {SM.getFileLoc(begin), SM.getFileLoc(end)};
22802280
}
22812281
return {SM.getSpellingLoc(begin), SM.getSpellingLoc(end)};
22822282
}

src/Statistics.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -536,6 +536,7 @@ std::string Statistics::getCudaVersion(const cudaVersions& ver) {
536536
case CUDNN_895: return "8.9.5";
537537
case CUDNN_896: return "8.9.6";
538538
case CUDNN_897: return "8.9.7";
539+
case CUDNN_900: return "9.0.0";
539540
}
540541
return "";
541542
}

src/Statistics.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,8 @@ enum cudaVersions {
290290
CUDNN_895 = 895,
291291
CUDNN_896 = 896,
292292
CUDNN_897 = 897,
293-
CUDNN_LATEST = CUDNN_897,
293+
CUDNN_900 = 900,
294+
CUDNN_LATEST = CUDNN_900,
294295
};
295296

296297
enum hipVersions {

tests/lit.cfg

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,9 @@ if config.cuda_version_major >= 12:
137137
config.excludes.append('cusparse2rocsparse_9020_12000.cu')
138138
config.excludes.append('cusparse2rocsparse_before_12000.cu')
139139

140+
if config.cudnn_version_major >= 9:
141+
config.excludes.append('cudnn2miopen_before_9000.cu')
142+
140143
if config.llvm_version_major < 8:
141144
config.excludes.append('cd_intro.cu')
142145

tests/lit.site.cfg.in

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,14 @@ if sys.platform in ['win32']:
2424
else:
2525
config.cuda_sdk_root = config.cuda_root
2626

27+
config.cudnn_version_major = int("0")
28+
if config.cuda_dnn_root and config.cuda_dnn_root != "OFF":
29+
cudnn_ver_file = config.cuda_dnn_root + '/include/cudnn_version.h';
30+
if os.path.isfile(cudnn_ver_file):
31+
with open(cudnn_ver_file) as f:
32+
if 'CUDNN_MAJOR 9' in f.read():
33+
config.cudnn_version_major = int("9")
34+
2735
# Support substitution of the tools and libs dirs with user parameters. This is
2836
# used when we can't determine the tool dir at configuration time.
2937
try:
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// RUN: %run_test hipify "%s" "%t" %hipify_args 1 --hip-kernel-execution-syntax %clang_args
2+
// CHECK: #include <hip/hip_runtime.h>
3+
#include <stdio.h>
4+
5+
#define a0 -3.0124472f
6+
#define a1 1.7383092f
7+
#define a2 -0.2796695f
8+
#define a3 0.0547837f
9+
#define a4 -0.0073118f
10+
11+
#define CHECK(call) \
12+
{ \
13+
const cudaError_t error = call; \
14+
if (error != cudaSuccess) \
15+
{ \
16+
fprintf(stderr, "Error: %s:%d, ", __FILE__, __LINE__); \
17+
fprintf(stderr, "code: %d, reason: %s\n", error, \
18+
cudaGetErrorString(error)); \
19+
} \
20+
}
21+
22+
__device__ __constant__ float coef[5];
23+
24+
int main() {
25+
const float h_coef[] = {a0, a1, a2, a3, a4};
26+
// CHECK: CHECK( hipMemcpyToSymbol( HIP_SYMBOL(coef), h_coef, 5 * sizeof(float) ));
27+
CHECK( cudaMemcpyToSymbol( coef, h_coef, 5 * sizeof(float) ));
28+
}

tests/unit_tests/synthetic/libraries/cudnn2miopen.cu

Lines changed: 18 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %run_test hipify "%s" "%t" %hipify_args 4 --skip-excluded-preprocessor-conditional-blocks --experimental --roc --miopen %clang_args -D__CUDA_API_VERSION_INTERNAL
1+
// RUN: %run_test hipify "%s" "%t" %hipify_args 5 --skip-excluded-preprocessor-conditional-blocks --experimental --roc --miopen --amap %clang_args -D__CUDA_API_VERSION_INTERNAL
22

33
// CHECK: #include <hip/hip_runtime.h>
44
#include <cuda_runtime.h>
@@ -647,24 +647,13 @@ int main() {
647647
int hiddenSize = 0;
648648
int layer = 0;
649649

650-
// TODO [#837]: Insert miopenRNNBiasMode_t* biasMode in the hipified miopenGetRNNDescriptor_V2 after miopenRNNMode_t* rnnMode: will need variable declaration
651-
// CUDA: CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI cudnnGetRNNDescriptor_v6(cudnnHandle_t handle, cudnnRNNDescriptor_t rnnDesc, int* hiddenSize, int* numLayers, cudnnDropoutDescriptor_t* dropoutDesc, cudnnRNNInputMode_t* inputMode, cudnnDirectionMode_t* direction, cudnnRNNMode_t* cellMode, cudnnRNNAlgo_t* algo, cudnnDataType_t* mathPrec);
652-
// MIOPEN: MIOPEN_EXPORT miopenStatus_t miopenGetRNNDescriptor_V2(miopenRNNDescriptor_t rnnDesc, int* hiddenSize, int* layer, miopenDropoutDescriptor_t* dropoutDesc, miopenRNNInputMode_t* inputMode, miopenRNNDirectionMode_t* dirMode, miopenRNNMode_t* rnnMode, miopenRNNBiasMode_t* biasMode, miopenRNNAlgo_t* algoMode, miopenDataType_t* dataType);
653-
// CHECK: status = miopenGetRNNDescriptor_V2(RNNDescriptor, &hiddenSize, &layer, &DropoutDescriptor, &RNNInputMode, &DirectionMode, &RNNMode, &RNNAlgo, &dataType);
654-
status = cudnnGetRNNDescriptor_v6(handle, RNNDescriptor, &hiddenSize, &layer, &DropoutDescriptor, &RNNInputMode, &DirectionMode, &RNNMode, &RNNAlgo, &dataType);
655-
656650
// NOTE: cudnnSetRNNDescriptor - removed after cuDNN 7.6.5
657651
// NOTE: cudnnSetRNNDescriptor_v5 - removed after cuDNN 7.6.5
658652
// TODO: add cudnnSetRNNDescriptor -> miopenSetRNNDescriptor_V2 mapping after implementing cuDNN versioning in tests
659653

660-
// TODO [#837]: Insert miopenRNNBiasMode_t biasMode in the hipified miopenSetRNNDescriptor_V2 after miopenRNNMode_t rnnMode: will need variable declaration
661-
// CUDA: CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI cudnnSetRNNDescriptor_v6(cudnnHandle_t handle, cudnnRNNDescriptor_t rnnDesc, const int hiddenSize, const int numLayers, cudnnDropoutDescriptor_t dropoutDesc, cudnnRNNInputMode_t inputMode, cudnnDirectionMode_t direction, cudnnRNNMode_t cellMode, cudnnRNNAlgo_t algo, cudnnDataType_t mathPrec);
662-
// MIOPEN: MIOPEN_EXPORT miopenStatus_t miopenSetRNNDescriptor_V2(miopenRNNDescriptor_t rnnDesc, const int hsize, const int nlayers, miopenDropoutDescriptor_t dropoutDesc, miopenRNNInputMode_t inMode, miopenRNNDirectionMode_t direction, miopenRNNMode_t rnnMode, miopenRNNBiasMode_t biasMode, miopenRNNAlgo_t algo, miopenDataType_t dataType);
663-
// CHECK: status = miopenSetRNNDescriptor_V2(RNNDescriptor, hiddenSize, layer, DropoutDescriptor, RNNInputMode, DirectionMode, RNNMode, RNNAlgo, dataType);
664-
status = cudnnSetRNNDescriptor_v6(handle, RNNDescriptor, hiddenSize, layer, DropoutDescriptor, RNNInputMode, DirectionMode, RNNMode, RNNAlgo, dataType);
665-
666654
int seqLength = 0;
667655

656+
#if CUDNN_MAJOR < 9
668657
// CUDA: CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI cudnnGetRNNWorkspaceSize(cudnnHandle_t handle, const cudnnRNNDescriptor_t rnnDesc, const int seqLength, const cudnnTensorDescriptor_t* xDesc, size_t* sizeInBytes);
669658
// MIOPEN: MIOPEN_EXPORT miopenStatus_t miopenGetRNNWorkspaceSize(miopenHandle_t handle, const miopenRNNDescriptor_t rnnDesc, const int sequenceLen, const miopenTensorDescriptor_t* xDesc, size_t* numBytes);
670659
// CHECK: status = miopenGetRNNWorkspaceSize(handle, RNNDescriptor, seqLength, &xD, &workSpaceSizeInBytes);
@@ -680,6 +669,11 @@ int main() {
680669
// CHECK: status = miopenGetRNNParamsSize(handle, RNNDescriptor, xD, &workSpaceSizeInBytes, dataType);
681670
status = cudnnGetRNNParamsSize(handle, RNNDescriptor, xD, &workSpaceSizeInBytes, dataType);
682671

672+
// CUDA: CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI cudnnRNNForwardInference(cudnnHandle_t handle, const cudnnRNNDescriptor_t rnnDesc, const int seqLength, const cudnnTensorDescriptor_t* xDesc, const void* x, const cudnnTensorDescriptor_t hxDesc, const void* hx, const cudnnTensorDescriptor_t cxDesc, const void* cx, const cudnnFilterDescriptor_t wDesc, const void* w, const cudnnTensorDescriptor_t* yDesc, void* y, const cudnnTensorDescriptor_t hyDesc, void* hy, const cudnnTensorDescriptor_t cyDesc, void* cy, void* workSpace, size_t workSpaceSizeInBytes);
673+
// MIOPEN: MIOPEN_EXPORT miopenStatus_t miopenRNNForwardInference(miopenHandle_t handle, miopenRNNDescriptor_t rnnDesc, const int sequenceLen, const miopenTensorDescriptor_t* xDesc, const void* x, const miopenTensorDescriptor_t hxDesc, const void* hx, const miopenTensorDescriptor_t cxDesc, const void* cx, const miopenTensorDescriptor_t wDesc, const void* w, const miopenTensorDescriptor_t* yDesc, void* y, const miopenTensorDescriptor_t hyDesc, void* hy, const miopenTensorDescriptor_t cyDesc, void* cy, void* workSpace, size_t workSpaceNumBytes);
674+
// CHECK: status = miopenRNNForwardInference(handle, RNNDescriptor, seqLength, &xD, x, hxD, hx, cxD, cx, filterDescriptor, W, &yD, y, hyD, hy, cyD, cy, workSpace, workSpaceSizeInBytes);
675+
status = cudnnRNNForwardInference(handle, RNNDescriptor, seqLength, &xD, x, hxD, hx, cxD, cx, filterDescriptor, W, &yD, y, hyD, hy, cyD, cy, workSpace, workSpaceSizeInBytes);
676+
683677
// CUDA: CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI cudnnRNNForwardTraining(cudnnHandle_t handle, const cudnnRNNDescriptor_t rnnDesc, const int seqLength, const cudnnTensorDescriptor_t* xDesc, const void* x, const cudnnTensorDescriptor_t hxDesc, const void* hx, const cudnnTensorDescriptor_t cxDesc, const void* cx, const cudnnFilterDescriptor_t wDesc, const void* w, const cudnnTensorDescriptor_t* yDesc, void* y, const cudnnTensorDescriptor_t hyDesc, void* hy, const cudnnTensorDescriptor_t cyDesc, void* cy, void* workSpace, size_t workSpaceSizeInBytes, void* reserveSpace, size_t reserveSpaceSizeInBytes);
684678
// MIOPEN: MIOPEN_EXPORT miopenStatus_t miopenRNNForwardTraining(miopenHandle_t handle, const miopenRNNDescriptor_t rnnDesc, const int sequenceLen, const miopenTensorDescriptor_t* xDesc, const void* x, const miopenTensorDescriptor_t hxDesc, const void* hx, const miopenTensorDescriptor_t cxDesc, const void* cx, const miopenTensorDescriptor_t wDesc, const void* w, const miopenTensorDescriptor_t* yDesc, void* y, const miopenTensorDescriptor_t hyDesc, void* hy, const miopenTensorDescriptor_t cyDesc, void* cy, void* workSpace, size_t workSpaceNumBytes, void* reserveSpace, size_t reserveSpaceNumBytes);
685679
// CHECK: status = miopenRNNForwardTraining(handle, RNNDescriptor, seqLength, &xD, x, hxD, hx, cxD, cx, filterDescriptor, W, &yD, y, hyD, hy, cyD, cy, workSpace, workSpaceSizeInBytes, reserveSpace, reserveSpaceNumBytes);
@@ -690,15 +684,18 @@ int main() {
690684
// CHECK: status = miopenRNNBackwardData(handle, RNNDescriptor, seqLength, &yD, y, &dyD, dy, dhyD, dhy, dcyD, dcy, filterDescriptor, W, hxD, hx, cxD, cx, &dxD, dx, dhxD, dhx, dcxD, dcx, workSpace, workSpaceSizeInBytes, &reserveSpace, reserveSpaceNumBytes);
691685
status = cudnnRNNBackwardData(handle, RNNDescriptor, seqLength, &yD, y, &dyD, dy, dhyD, dhy, dcyD, dcy, filterDescriptor, W, hxD, hx, cxD, cx, &dxD, dx, dhxD, dhx, dcxD, dcx, workSpace, workSpaceSizeInBytes, &reserveSpace, reserveSpaceNumBytes);
692686

693-
// CUDA: CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI cudnnRNNBackwardWeights(cudnnHandle_t handle, const cudnnRNNDescriptor_t rnnDesc, const int seqLength, const cudnnTensorDescriptor_t* xDesc, const void* x, const cudnnTensorDescriptor_t hxDesc, const void* hx, const cudnnTensorDescriptor_t* yDesc, const void* y, const void* workSpace, size_t workSpaceSizeInBytes, const cudnnFilterDescriptor_t dwDesc, void* dw, const void* reserveSpace, size_t reserveSpaceSizeInBytes);
694-
// MIOPEN: MIOPEN_EXPORT miopenStatus_t miopenRNNBackwardWeights(miopenHandle_t handle, const miopenRNNDescriptor_t rnnDesc, const int sequenceLen, const miopenTensorDescriptor_t* xDesc, const void* x, const miopenTensorDescriptor_t hxDesc, const void* hx, const miopenTensorDescriptor_t* yDesc, const void* y, const miopenTensorDescriptor_t dwDesc, void* dw, void* workSpace, size_t workSpaceNumBytes, const void* reserveSpace, size_t reserveSpaceNumBytes);
695-
// CHECK: status = miopenRNNBackwardWeights(handle, RNNDescriptor, seqLength, &xD, x, hxD, hx, &yD, y, filterDescriptor, dw, workSpace, workSpaceSizeInBytes, &reserveSpace, reserveSpaceNumBytes);
696-
status = cudnnRNNBackwardWeights(handle, RNNDescriptor, seqLength, &xD, x, hxD, hx, &yD, y, workSpace, workSpaceSizeInBytes, filterDescriptor, dw, &reserveSpace, reserveSpaceNumBytes);
687+
// TODO [#837]: Insert int* blank_label_id, bool* apply_softmax_layer in the hipified miopenGetCTCLossDescriptor: will need variable declaration
688+
// CUDA: cudnnStatus_t CUDNNWINAPI cudnnGetCTCLossDescriptor(cudnnCTCLossDescriptor_t ctcLossDesc, cudnnDataType_t* compType);
689+
// MIOPEN: MIOPEN_EXPORT miopenStatus_t miopenGetCTCLossDescriptor(miopenCTCLossDescriptor_t ctcLossDesc, miopenDataType_t* dataType, int* blank_label_id, bool* apply_softmax_layer);
690+
// CHECK: status = miopenGetCTCLossDescriptor(CTCLossDescriptor, &dataType);
691+
status = cudnnGetCTCLossDescriptor(CTCLossDescriptor, &dataType);
697692

698-
// CUDA: CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI cudnnRNNForwardInference(cudnnHandle_t handle, const cudnnRNNDescriptor_t rnnDesc, const int seqLength, const cudnnTensorDescriptor_t* xDesc, const void* x, const cudnnTensorDescriptor_t hxDesc, const void* hx, const cudnnTensorDescriptor_t cxDesc, const void* cx, const cudnnFilterDescriptor_t wDesc, const void* w, const cudnnTensorDescriptor_t* yDesc, void* y, const cudnnTensorDescriptor_t hyDesc, void* hy, const cudnnTensorDescriptor_t cyDesc, void* cy, void* workSpace, size_t workSpaceSizeInBytes);
699-
// MIOPEN: MIOPEN_EXPORT miopenStatus_t miopenRNNForwardInference(miopenHandle_t handle, miopenRNNDescriptor_t rnnDesc, const int sequenceLen, const miopenTensorDescriptor_t* xDesc, const void* x, const miopenTensorDescriptor_t hxDesc, const void* hx, const miopenTensorDescriptor_t cxDesc, const void* cx, const miopenTensorDescriptor_t wDesc, const void* w, const miopenTensorDescriptor_t* yDesc, void* y, const miopenTensorDescriptor_t hyDesc, void* hy, const miopenTensorDescriptor_t cyDesc, void* cy, void* workSpace, size_t workSpaceNumBytes);
700-
// CHECK: status = miopenRNNForwardInference(handle, RNNDescriptor, seqLength, &xD, x, hxD, hx, cxD, cx, filterDescriptor, W, &yD, y, hyD, hy, cyD, cy, workSpace, workSpaceSizeInBytes);
701-
status = cudnnRNNForwardInference(handle, RNNDescriptor, seqLength, &xD, x, hxD, hx, cxD, cx, filterDescriptor, W, &yD, y, hyD, hy, cyD, cy, workSpace, workSpaceSizeInBytes);
693+
// TODO [#837]: Insert int blank_label_id, bool apply_softmax_layer in the hipified miopenSetCTCLossDescriptor: will need variable declaration
694+
// CUDA: cudnnStatus_t CUDNNWINAPI cudnnSetCTCLossDescriptor(cudnnCTCLossDescriptor_t ctcLossDesc, cudnnDataType_t compType);
695+
// MIOPEN: MIOPEN_EXPORT miopenStatus_t miopenSetCTCLossDescriptor(miopenCTCLossDescriptor_t ctcLossDesc, miopenDataType_t dataType, const int blank_label_id, bool apply_softmax_layer);
696+
// CHECK: status = miopenSetCTCLossDescriptor(CTCLossDescriptor, dataType);
697+
status = cudnnSetCTCLossDescriptor(CTCLossDescriptor, dataType);
698+
#endif
702699

703700
// CUDA: cudnnStatus_t CUDNNWINAPI cudnnDestroyRNNDescriptor(cudnnRNNDescriptor_t rnnDesc);
704701
// MIOPEN: MIOPEN_EXPORT miopenStatus_t miopenDestroyRNNDescriptor(miopenRNNDescriptor_t rnnDesc);
@@ -715,18 +712,6 @@ int main() {
715712
// CHECK: status = miopenDestroyCTCLossDescriptor(CTCLossDescriptor);
716713
status = cudnnDestroyCTCLossDescriptor(CTCLossDescriptor);
717714

718-
// TODO [#837]: Insert int* blank_label_id, bool* apply_softmax_layer in the hipified miopenGetCTCLossDescriptor: will need variable declaration
719-
// CUDA: cudnnStatus_t CUDNNWINAPI cudnnGetCTCLossDescriptor(cudnnCTCLossDescriptor_t ctcLossDesc, cudnnDataType_t* compType);
720-
// MIOPEN: MIOPEN_EXPORT miopenStatus_t miopenGetCTCLossDescriptor(miopenCTCLossDescriptor_t ctcLossDesc, miopenDataType_t* dataType, int* blank_label_id, bool* apply_softmax_layer);
721-
// CHECK: status = miopenGetCTCLossDescriptor(CTCLossDescriptor, &dataType);
722-
status = cudnnGetCTCLossDescriptor(CTCLossDescriptor, &dataType);
723-
724-
// TODO [#837]: Insert int blank_label_id, bool apply_softmax_layer in the hipified miopenSetCTCLossDescriptor: will need variable declaration
725-
// CUDA: cudnnStatus_t CUDNNWINAPI cudnnSetCTCLossDescriptor(cudnnCTCLossDescriptor_t ctcLossDesc, cudnnDataType_t compType);
726-
// MIOPEN: MIOPEN_EXPORT miopenStatus_t miopenSetCTCLossDescriptor(miopenCTCLossDescriptor_t ctcLossDesc, miopenDataType_t dataType, const int blank_label_id, bool apply_softmax_layer);
727-
// CHECK: status = miopenSetCTCLossDescriptor(CTCLossDescriptor, dataType);
728-
status = cudnnSetCTCLossDescriptor(CTCLossDescriptor, dataType);
729-
730715
int labels = 0;
731716
int labelLengths = 0;
732717
int inputLengths = 0;

0 commit comments

Comments
 (0)