mirror of
https://github.com/paboyle/Grid.git
synced 2025-06-22 09:42:02 +01:00
Compare commits
8 Commits
3aff64dddb
...
3984265851
Author | SHA1 | Date | |
---|---|---|---|
3984265851 | |||
45361d188f | |||
80c9d77e02 | |||
5d7e0d18b9 | |||
9e64387933 | |||
983b681d46 | |||
39214702f6 | |||
3e4614c63a |
54
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
Normal file
54
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
name: Bug report
|
||||||
|
description: Report a bug.
|
||||||
|
title: "<insert title>"
|
||||||
|
labels: [bug]
|
||||||
|
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: >
|
||||||
|
Thank you for taking the time to file a bug report.
|
||||||
|
Please check that the code is pointing to the HEAD of develop
|
||||||
|
or any commit in master which is tagged with a version number.
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: "Describe the issue:"
|
||||||
|
description: >
|
||||||
|
Describe the issue and any previous attempt to solve it.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: "Code example:"
|
||||||
|
description: >
|
||||||
|
If relevant, show how to reproduce the issue using a minimal working
|
||||||
|
example.
|
||||||
|
placeholder: |
|
||||||
|
<< your code here >>
|
||||||
|
render: shell
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: "Target platform:"
|
||||||
|
description: >
|
||||||
|
Give a description of the target platform (CPU, network, compiler).
|
||||||
|
Please give the full CPU part description, using for example
|
||||||
|
`cat /proc/cpuinfo | grep 'model name' | uniq` (Linux)
|
||||||
|
or `sysctl machdep.cpu.brand_string` (macOS) and the full output
|
||||||
|
the `--version` option of your compiler.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: "Configure options:"
|
||||||
|
description: >
|
||||||
|
Please give the exact configure command used and attach
|
||||||
|
`config.log`, `grid.config.summary` and the output of `make V=1`.
|
||||||
|
render: shell
|
||||||
|
validations:
|
||||||
|
required: true
|
@ -542,6 +542,7 @@ public:
|
|||||||
(*this)(in[i], out[i]);
|
(*this)(in[i], out[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
virtual ~LinearFunction(){};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<class Field> class IdentityLinearFunction : public LinearFunction<Field> {
|
template<class Field> class IdentityLinearFunction : public LinearFunction<Field> {
|
||||||
|
@ -519,7 +519,6 @@ void MemoryManager::Audit(std::string s)
|
|||||||
uint64_t LruBytes1=0;
|
uint64_t LruBytes1=0;
|
||||||
uint64_t LruBytes2=0;
|
uint64_t LruBytes2=0;
|
||||||
uint64_t LruCnt=0;
|
uint64_t LruCnt=0;
|
||||||
uint64_t LockedBytes=0;
|
|
||||||
|
|
||||||
std::cout << " Memory Manager::Audit() from "<<s<<std::endl;
|
std::cout << " Memory Manager::Audit() from "<<s<<std::endl;
|
||||||
for(auto it=LRU.begin();it!=LRU.end();it++){
|
for(auto it=LRU.begin();it!=LRU.end();it++){
|
||||||
|
@ -170,10 +170,7 @@ void GlobalSharedMemory::OptimalCommunicator(const Coordinate &processors,Grid_M
|
|||||||
if(nscan==3 && HPEhypercube ) OptimalCommunicatorHypercube(processors,optimal_comm,SHM);
|
if(nscan==3 && HPEhypercube ) OptimalCommunicatorHypercube(processors,optimal_comm,SHM);
|
||||||
else OptimalCommunicatorSharedMemory(processors,optimal_comm,SHM);
|
else OptimalCommunicatorSharedMemory(processors,optimal_comm,SHM);
|
||||||
}
|
}
|
||||||
static inline int divides(int a,int b)
|
|
||||||
{
|
|
||||||
return ( b == ( (b/a)*a ) );
|
|
||||||
}
|
|
||||||
void GlobalSharedMemory::OptimalCommunicatorHypercube(const Coordinate &processors,Grid_MPI_Comm & optimal_comm,Coordinate &SHM)
|
void GlobalSharedMemory::OptimalCommunicatorHypercube(const Coordinate &processors,Grid_MPI_Comm & optimal_comm,Coordinate &SHM)
|
||||||
{
|
{
|
||||||
////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////
|
||||||
|
@ -1367,10 +1367,11 @@ public:
|
|||||||
int recv_from_rank;
|
int recv_from_rank;
|
||||||
int xmit_to_rank;
|
int xmit_to_rank;
|
||||||
int shm_send=0;
|
int shm_send=0;
|
||||||
int shm_recv=0;
|
|
||||||
_grid->ShiftedRanks(dimension,nbr_proc,xmit_to_rank,recv_from_rank);
|
_grid->ShiftedRanks(dimension,nbr_proc,xmit_to_rank,recv_from_rank);
|
||||||
#ifdef SHM_FAST_PATH
|
#ifdef SHM_FAST_PATH
|
||||||
#warning STENCIL SHM FAST PATH SELECTED
|
#warning STENCIL SHM FAST PATH SELECTED
|
||||||
|
int shm_recv=0;
|
||||||
// shm == receive pointer if offnode
|
// shm == receive pointer if offnode
|
||||||
// shm == Translate[send pointer] if on node -- my view of his send pointer
|
// shm == Translate[send pointer] if on node -- my view of his send pointer
|
||||||
cobj *shm = (cobj *) _grid->ShmBufferTranslate(recv_from_rank,sp);
|
cobj *shm = (cobj *) _grid->ShmBufferTranslate(recv_from_rank,sp);
|
||||||
@ -1403,7 +1404,6 @@ public:
|
|||||||
acceleratorMemSet(rp,0,bytes); // Zero prefill comms buffer to zero
|
acceleratorMemSet(rp,0,bytes); // Zero prefill comms buffer to zero
|
||||||
}
|
}
|
||||||
int do_send = (comms_send|comms_partial_send) && (!shm_send );
|
int do_send = (comms_send|comms_partial_send) && (!shm_send );
|
||||||
int do_recv = (comms_send|comms_partial_send) && (!shm_recv );
|
|
||||||
AddPacket((void *)sp,(void *)rp,
|
AddPacket((void *)sp,(void *)rp,
|
||||||
xmit_to_rank,do_send,
|
xmit_to_rank,do_send,
|
||||||
recv_from_rank,do_send,
|
recv_from_rank,do_send,
|
||||||
|
@ -133,7 +133,6 @@ typename vobj::scalar_object extractLane(int lane, const vobj & __restrict__ vec
|
|||||||
typedef scalar_type * pointer;
|
typedef scalar_type * pointer;
|
||||||
|
|
||||||
constexpr int words=sizeof(vobj)/sizeof(vector_type);
|
constexpr int words=sizeof(vobj)/sizeof(vector_type);
|
||||||
constexpr int Nsimd=vector_type::Nsimd();
|
|
||||||
|
|
||||||
scalar_object extracted;
|
scalar_object extracted;
|
||||||
pointer __restrict__ sp = (pointer)&extracted; // Type pun
|
pointer __restrict__ sp = (pointer)&extracted; // Type pun
|
||||||
@ -153,7 +152,6 @@ void insertLane(int lane, vobj & __restrict__ vec,const typename vobj::scalar_ob
|
|||||||
typedef scalar_type * pointer;
|
typedef scalar_type * pointer;
|
||||||
|
|
||||||
constexpr int words=sizeof(vobj)/sizeof(vector_type);
|
constexpr int words=sizeof(vobj)/sizeof(vector_type);
|
||||||
constexpr int Nsimd=vector_type::Nsimd();
|
|
||||||
|
|
||||||
pointer __restrict__ sp = (pointer)&extracted;
|
pointer __restrict__ sp = (pointer)&extracted;
|
||||||
vector_type *vp = (vector_type *)&vec;
|
vector_type *vp = (vector_type *)&vec;
|
||||||
@ -178,8 +176,6 @@ void extract(const vobj &vec,const ExtractPointerArray<sobj> &extracted, int off
|
|||||||
const int s = Nsimd/Nextr;
|
const int s = Nsimd/Nextr;
|
||||||
|
|
||||||
vector_type * vp = (vector_type *)&vec;
|
vector_type * vp = (vector_type *)&vec;
|
||||||
scalar_type vtmp;
|
|
||||||
sobj_scalar_type stmp;
|
|
||||||
for(int w=0;w<words;w++){
|
for(int w=0;w<words;w++){
|
||||||
for(int i=0;i<Nextr;i++){
|
for(int i=0;i<Nextr;i++){
|
||||||
sobj_scalar_type * pointer = (sobj_scalar_type *)& extracted[i][offset];
|
sobj_scalar_type * pointer = (sobj_scalar_type *)& extracted[i][offset];
|
||||||
@ -205,7 +201,6 @@ void merge(vobj &vec,const ExtractPointerArray<sobj> &extracted, int offset)
|
|||||||
|
|
||||||
vector_type * vp = (vector_type *)&vec;
|
vector_type * vp = (vector_type *)&vec;
|
||||||
scalar_type vtmp;
|
scalar_type vtmp;
|
||||||
sobj_scalar_type stmp;
|
|
||||||
for(int w=0;w<words;w++){
|
for(int w=0;w<words;w++){
|
||||||
for(int i=0;i<Nextr;i++){
|
for(int i=0;i<Nextr;i++){
|
||||||
sobj_scalar_type * pointer = (sobj_scalar_type *)& extracted[i][offset];
|
sobj_scalar_type * pointer = (sobj_scalar_type *)& extracted[i][offset];
|
||||||
@ -242,9 +237,6 @@ void copyLane(vobjOut & __restrict__ vecOut, int lane_out, const vobjIn & __rest
|
|||||||
typedef oextract_type * opointer;
|
typedef oextract_type * opointer;
|
||||||
typedef iextract_type * ipointer;
|
typedef iextract_type * ipointer;
|
||||||
|
|
||||||
constexpr int oNsimd=ovector_type::Nsimd();
|
|
||||||
constexpr int iNsimd=ivector_type::Nsimd();
|
|
||||||
|
|
||||||
iscalar_type itmp;
|
iscalar_type itmp;
|
||||||
oscalar_type otmp;
|
oscalar_type otmp;
|
||||||
|
|
||||||
|
@ -329,7 +329,6 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
|
|
||||||
auto grid4= GridPtr;
|
auto grid4= GridPtr;
|
||||||
auto rbgrid4= GridRBPtr;
|
|
||||||
auto rbgrid = StrangeOp.FermionRedBlackGrid();
|
auto rbgrid = StrangeOp.FermionRedBlackGrid();
|
||||||
auto grid = StrangeOp.FermionGrid();
|
auto grid = StrangeOp.FermionGrid();
|
||||||
if(1){
|
if(1){
|
||||||
|
Reference in New Issue
Block a user