Skip to content

Commit

Permalink
Merge branch 'release-2.1.0-rc5'
Browse files Browse the repository at this point in the history
  • Loading branch information
pseewald committed Mar 4, 2020
2 parents d871ed2 + 73389ae commit 40a8e91
Show file tree
Hide file tree
Showing 8 changed files with 345 additions and 75 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MAJOR = 2
MINOR = 1
PATCH = 0-rc4
PATCH = 0-rc5
# A specific DATE (YYYY-MM-DD) fixes an official release, otherwise
# it is considered Development version.
DATE =
9 changes: 8 additions & 1 deletion docs/guide/2-user-guide/1-installation/1-install.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ You absolutely need:

Optionally:

* [libxsmm](https://github.com/hfp/libxsmm) (1.10+) for Small Matrix Multiplication acceleration
* [libxsmm](https://github.com/hfp/libxsmm) (1.10+, and `pkg-config`) for Small Matrix Multiplication acceleration
* a LAPACK implementation (reference, OpenBLAS-bundled and MKL have been tested), required when building the tests

To build `libsmm_acc`, DBCSR's GPU backend, you further need:
Expand Down Expand Up @@ -64,6 +64,13 @@ Run inside the `dbcsr` directory:
-DTEST_OMP_THREADS=<2,N>
```

When providing a custom build of `libxsmm`, make sure that its library directory is added to the `PKG_CONFIG_PATH` variable prior
to running `cmake`. An example if `libxsmm` was checked out using Git to your home folder:

```bash
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:${HOME}/libxsmm/lib"
```

### CMake Build Recipes

For build recipes on different platforms, make sure to also read the [CMake Build Recipes](./2-cmake-build-recipes.html).
Expand Down
9 changes: 6 additions & 3 deletions src/acc/acc_init.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,12 @@

/****************************************************************************/
extern "C" int acc_init(){
int myDevice;
// Driver boilerplate
ACC_DRV_CALL(Init, (0));
ACC_DRV(device) acc_device;
ACC_DRV_CALL(DeviceGet, (&acc_device, 0));
ACC_API_CALL(GetDevice, (&myDevice));
ACC_DRV_CALL(DeviceGet, (&acc_device, myDevice));
ACC_DRV(context) ctx;
ACC_DRV_CALL(DevicePrimaryCtxRetain, (&ctx, acc_device));

Expand All @@ -37,10 +39,11 @@ extern "C" int acc_init(){

/****************************************************************************/
extern "C" int acc_finalize(){
int myDevice;
// Release driver resources
ACC_DRV(device) acc_device;
ACC_DRV_CALL(DeviceGet, (&acc_device, 0));
ACC_API_CALL(GetDevice, (&myDevice));
ACC_DRV_CALL(DeviceGet, (&acc_device, myDevice));
ACC_DRV_CALL(DevicePrimaryCtxRelease, (acc_device));
return 0;
}

129 changes: 88 additions & 41 deletions src/tas/dbcsr_tas_mm.F

Large diffs are not rendered by default.

233 changes: 207 additions & 26 deletions src/tensors/dbcsr_tensor.F

Large diffs are not rendered by default.

9 changes: 6 additions & 3 deletions src/tensors/dbcsr_tensor_api.F
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ MODULE dbcsr_tensor_api
dbcsr_t_contract, dbcsr_t_get_block, dbcsr_t_get_stored_coordinates, dbcsr_t_put_block, &
dbcsr_t_reserve_blocks, dbcsr_t_copy_matrix_to_tensor, dbcsr_t_copy, &
dbcsr_t_copy_tensor_to_matrix, dbcsr_t_need_contract, dbcsr_t_batched_contract_init, &
dbcsr_t_batched_contract_finalize, dbcsr_t_ndims
dbcsr_t_batched_contract_finalize, dbcsr_t_ndims, dbcsr_t_contract_index
USE dbcsr_tensor_block, ONLY: &
dbcsr_t_iterator_blocks_left, dbcsr_t_iterator_next_block, dbcsr_t_iterator_start, &
dbcsr_t_iterator_stop, dbcsr_t_iterator_type
dbcsr_t_iterator_stop, dbcsr_t_iterator_type, dbcsr_t_reserved_block_indices
USE dbcsr_tensor_types, ONLY: &
dbcsr_t_create, dbcsr_t_destroy, dbcsr_t_distribution_destroy, dbcsr_t_distribution_new, &
dbcsr_t_distribution_type, dbcsr_t_nd_mp_comm, dbcsr_t_nd_mp_free, dbcsr_t_type, &
Expand All @@ -31,7 +31,7 @@ MODULE dbcsr_tensor_api
dbcsr_t_mp_environ_pgrid => mp_environ_pgrid, dbcsr_t_blk_sizes, dbcsr_t_get_info, &
dbcsr_t_finalize, dbcsr_t_scale, dbcsr_t_get_nze, dbcsr_t_get_nze_total, &
dbcsr_t_get_num_blocks, dbcsr_t_get_num_blocks_total, dbcsr_t_clear, &
dbcsr_t_mp_dims_create
dbcsr_t_mp_dims_create, dbcsr_t_pgrid_change_dims
USE dbcsr_tensor_test, ONLY: &
dbcsr_t_contract_test, dbcsr_t_checksum
USE dbcsr_tensor_split, ONLY: &
Expand Down Expand Up @@ -92,5 +92,8 @@ MODULE dbcsr_tensor_api
PUBLIC :: dbcsr_t_batched_contract_init
PUBLIC :: dbcsr_t_batched_contract_finalize
PUBLIC :: dbcsr_t_ndims
PUBLIC :: dbcsr_t_pgrid_change_dims
PUBLIC :: dbcsr_t_reserved_block_indices
PUBLIC :: dbcsr_t_contract_index

END MODULE dbcsr_tensor_api
29 changes: 29 additions & 0 deletions src/tensors/dbcsr_tensor_types.F
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ MODULE dbcsr_tensor_types
dbcsr_t_mp_dims_create, &
dbcsr_t_nd_mp_comm, &
dbcsr_t_nd_mp_free, &
dbcsr_t_pgrid_change_dims, &
dbcsr_t_pgrid_create, &
dbcsr_t_pgrid_create_expert, &
dbcsr_t_pgrid_destroy, &
Expand Down Expand Up @@ -1230,6 +1231,34 @@ SUBROUTINE dbcsr_t_pgrid_remap(pgrid_in, map1_2d, map2_2d, pgrid_out)
ENDIF
END SUBROUTINE

SUBROUTINE dbcsr_t_pgrid_change_dims(pgrid, pdims)
!! change dimensions of an existing process grid.

TYPE(dbcsr_t_pgrid_type), INTENT(INOUT) :: pgrid
!! process grid to be changed
INTEGER, DIMENSION(:), INTENT(INOUT) :: pdims
!! new process grid dimensions, should all be set > 0
TYPE(dbcsr_t_pgrid_type) :: pgrid_tmp
INTEGER :: nsplit, dimsplit
INTEGER, DIMENSION(:), ALLOCATABLE :: map1_2d, map2_2d
TYPe(nd_to_2d_mapping) :: nd_index_grid
INTEGER, DIMENSION(2) :: pdims_2d

DBCSR_ASSERT(ALL(pdims > 0))
CALL dbcsr_tas_get_split_info(pgrid%tas_split_info, nsplit=nsplit, split_rowcol=dimsplit)
CALL dbcsr_t_get_mapping_info(pgrid%nd_index_grid, map1_2d=map1_2d, map2_2d=map2_2d)
CALL create_nd_to_2d_mapping(nd_index_grid, pdims, map1_2d, map2_2d, base=0, col_major=.FALSE.)
CALL dbcsr_t_get_mapping_info(nd_index_grid, dims_2d=pdims_2d)
IF(MOD(pdims_2d(dimsplit),nsplit) == 0) THEN
CALL dbcsr_t_pgrid_create_expert(pgrid%mp_comm_2d, pdims, pgrid_tmp, map1_2d=map1_2d, map2_2d=map2_2d, &
nsplit=nsplit, dimsplit=dimsplit)
ELSE
CALL dbcsr_t_pgrid_create_expert(pgrid%mp_comm_2d, pdims, pgrid_tmp, map1_2d=map1_2d, map2_2d=map2_2d)
ENDIF
CALL dbcsr_t_pgrid_destroy(pgrid)
pgrid = pgrid_tmp
END SUBROUTINE

SUBROUTINE dbcsr_t_distribution_remap(dist_in, map1_2d, map2_2d, dist_out)
TYPE(dbcsr_t_distribution_type), INTENT(IN) :: dist_in
INTEGER, DIMENSION(:), INTENT(IN) :: map1_2d, map2_2d
Expand Down
File renamed without changes.

0 comments on commit 40a8e91

Please sign in to comment.