Skip to content

Commit

Permalink
Add LASR API (#845)
Browse files Browse the repository at this point in the history
* adds LASR definition and documentation
* adds empty API
* add unit test
* implement lasr routine
* optimize lasr routine
* clean/simplify lasr code
* address review comments
* changelog
* changelog update
* address review comments
  • Loading branch information
jzuniga-amd authored Nov 7, 2024
1 parent a01a2cd commit 4c92a0e
Show file tree
Hide file tree
Showing 23 changed files with 1,619 additions and 7 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,12 @@
Full documentation for rocSOLVER is available at the [rocSOLVER documentation](https://rocm.docs.amd.com/projects/rocSOLVER/en/latest/index.html).

## (Unreleased) rocSOLVER

### Added

* Application of a sequence of plane rotations to a given matrix
- LASR

### Changed
### Removed
### Optimized
Expand Down
1 change: 1 addition & 0 deletions clients/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ if(BUILD_CLIENTS_BENCHMARKS OR BUILD_CLIENTS_TESTS)
common/auxiliary/testing_larf.cpp
common/auxiliary/testing_larft.cpp
common/auxiliary/testing_larfb.cpp
common/auxiliary/testing_lasr.cpp
common/auxiliary/testing_latrd.cpp
common/auxiliary/testing_labrd.cpp
common/auxiliary/testing_lauum.cpp
Expand Down
7 changes: 7 additions & 0 deletions clients/benchmarks/client.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,12 @@ try
" The order in which a series of transformations are applied.\n"
" ")

("pivot",
value<char>()->default_value('V'),
"V = variable, T = top, B = bottom.\n"
" Defines the planes on which a sequence of rotations is applied.\n"
" ")

("evect",
value<char>()->default_value('N'),
"N = none, V = compute eigenvectors of the matrix,\n"
Expand Down Expand Up @@ -644,6 +650,7 @@ try
argus.validate_fill("uplo");
argus.validate_diag("diag");
argus.validate_direct("direct");
argus.validate_pivot("pivot");
argus.validate_storev("storev");
argus.validate_svect("svect");
argus.validate_svect("left_svect");
Expand Down
32 changes: 32 additions & 0 deletions clients/common/auxiliary/testing_lasr.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/* **************************************************************************
* Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* *************************************************************************/

#include "testing_lasr.hpp"

#define TESTING_LASR(...) template void testing_lasr<__VA_ARGS__>(Arguments&);

INSTANTIATE(TESTING_LASR, FOREACH_SCALAR_TYPE, APPLY_STAMP)
Loading

0 comments on commit 4c92a0e

Please sign in to comment.