Skip to content

Commit

Permalink
fix large 1d strided incorrect results when stride != batch
Browse files Browse the repository at this point in the history
* tree_node_1D: correctly handle stride != batch in strided L1D_CC

* rocfft-test: add strided large 1D case where batch != dist

* bump version to 1.0.20
  • Loading branch information
evetsso authored Dec 1, 2022
1 parent 6005bfa commit 9961827
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 10 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

Full documentation for rocFFT is available at [rocfft.readthedocs.io](https://rocfft.readthedocs.io/en/latest/).

## rocFFT 1.0.20 for ROCm 5.4.1

### Fixed
- Fixed incorrect results on strided large 1D FFTs where batch size does not equal the stride.

## rocFFT 1.0.19 for ROCm 5.4.0

### Optimizations
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ include( ROCMClients )
include( ROCMHeaderWrapper )

# Using standardized versioning from rocm-cmake
set ( VERSION_STRING "1.0.19" )
set ( VERSION_STRING "1.0.20" )
rocm_setup_version( VERSION ${VERSION_STRING} )

# Append our library helper cmake path and the cmake path for hip (for
Expand Down
2 changes: 2 additions & 0 deletions clients/tests/accuracy_test_adhoc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,8 @@ auto adhoc_tokens = {
"1_ioffset_0_0_ooffset_0_0",
"real_forward_len_1024_1024_1024_single_op_batch_1_istride_1048576_1024_1_R_ostride_525312_513_"
"1_HI_idist_1073741824_odist_537919488_ioffset_0_0_ooffset_0_0",
"complex_forward_len_6144_single_ip_batch_34_istride_35_CI_ostride_35_CI_idist_1_odist_1_"
"ioffset_0_0_ooffset_0_0",
};

INSTANTIATE_TEST_SUITE_P(adhoc_token,
Expand Down
2 changes: 1 addition & 1 deletion docs/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ PROJECT_NAME = "rocFFT"
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = v1.0.19
PROJECT_NUMBER = v1.0.20

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
4 changes: 2 additions & 2 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,9 @@
# built documents.
#
# The short X.Y version.
version = u'1.0.19'
version = u'1.0.20'
# The full version, including alpha/beta/rc tags.
release = u'1.0.19'
release = u'1.0.20'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
12 changes: 6 additions & 6 deletions library/src/tree_node_1D.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -476,8 +476,8 @@ void CC1DNode::AssignParams_internal()
// faster than the actual second dimension
std::swap(col2colPlan->length.back(), col2colPlan->batch);
col2colPlan->outputLength = {col2colPlan->length.back(), col2colPlan->length.front()};
col2colPlan->inStride = {col2colPlan->length.back() * col2colPlan->batch, 1};
col2colPlan->iDist = col2colPlan->length.back();
col2colPlan->iDist = col2colPlan->inStride.back();
col2colPlan->inStride = {col2colPlan->inStride.back() * col2colPlan->batch, 1};
// make output the same shape as input (even though it's going to
// a temp buffer), so both read+write are coalesced the same
col2colPlan->outStride = col2colPlan->inStride;
Expand All @@ -487,10 +487,10 @@ void CC1DNode::AssignParams_internal()
// again, make batch the second dimension
std::swap(row2colPlan->length.back(), row2colPlan->batch);
row2colPlan->outputLength = {row2colPlan->length.back(), row2colPlan->length.front()};
row2colPlan->inStride = {row2colPlan->length.back(), 1};
row2colPlan->iDist = row2colPlan->length.front() * row2colPlan->length.back();
row2colPlan->outStride = {1, row2colPlan->batch * row2colPlan->length.back()};
row2colPlan->oDist = row2colPlan->length.back();
row2colPlan->inStride = {inStride.front(), 1};
row2colPlan->iDist = row2colPlan->length.front() * inStride.front();
row2colPlan->oDist = outStride.front();
row2colPlan->outStride = {1, row2colPlan->batch * outStride.front()};
}
}

Expand Down

0 comments on commit 9961827

Please sign in to comment.