#include "common_magma.h"
#include <assert.h>
Go to the source code of this file.
Function Documentation
Definition at line 161 of file auxiliary.cpp.
{
float res[1];
cublasGetVector(1, sizeof(float), da, 1, res, 1);
return res[0];
}
| int magma_num_gpus |
( |
void |
| ) |
|
Definition at line 17 of file auxiliary.cpp.
References MagmaMaxGPUs, and min.
{
const char *ngpu_str = getenv("MAGMA_NUM_GPUS");
int ngpu = 1;
if ( ngpu_str != NULL ) {
char* endptr;
ngpu = strtol( ngpu_str, &endptr, 10 );
int ndevices;
cudaGetDeviceCount( &ndevices );
if ( ngpu < 1 or *endptr != '\0' ) {
ngpu = 1;
fprintf( stderr, "$MAGMA_NUM_GPUS=%s is an invalid number; using %d GPU.\n",
ngpu_str, ngpu );
}
fprintf( stderr, "$MAGMA_NUM_GPUS=%s exceeds MagmaMaxGPUs=%d or available GPUs=%d; using %d GPUs.\n",
}
assert( 1 <= ngpu and ngpu <= ndevices );
}
return ngpu;
}
| void printout_devices |
( |
| ) |
|
Definition at line 48 of file auxiliary.cpp.
{
int ndevices;
cudaGetDeviceCount( &ndevices );
for( int idevice = 0; idevice < ndevices; idevice++ ) {
cudaDeviceProp prop;
cudaGetDeviceProperties( &prop, idevice );
printf( "device %d: %s, %.1f MHz clock, %.1f MB memory, capability %d.%d\n",
idevice,
prop.name,
prop.clockRate / 1000.,
prop.totalGlobalMem / (1024.*1024.),
prop.major,
prop.minor );
}
}
Definition at line 171 of file auxiliary.cpp.
{
char *f__rp;
n = (int)*np;
for(i = 0 ; i < n ; ++i)
{
nc = ll;
if(rnp[i] < nc)
nc = rnp[i];
ll -= nc;
f__rp = rpp[i];
while(--nc >= 0)
*lp++ = *f__rp++;
}
while(--ll >= 0)
*lp++ = ' ';
return 0;
}
| void swp2pswp |
( |
char |
trans, |
|
|
int |
n, |
|
|
int * |
ipiv, |
|
|
int * |
newipiv |
|
) |
| |
Definition at line 74 of file auxiliary.cpp.
{
int i, newind, ind;
char trans_[2] = {
trans, 0};
for(i=0; i<n; i++)
newipiv[i] = -1;
if (notran){
for(i=0; i<n; i++){
newind = ipiv[i] - 1;
if (newipiv[newind] == -1) {
if (newipiv[i]==-1){
newipiv[i] = newind;
if (newind>i)
newipiv[newind]= i;
}
else
{
ind = newipiv[i];
newipiv[i] = newind;
if (newind>i)
newipiv[newind]= ind;
}
}
else {
if (newipiv[i]==-1){
if (newind>i){
ind = newipiv[newind];
newipiv[newind] = i;
newipiv[i] = ind;
}
else
newipiv[i] = newipiv[newind];
}
else{
ind = newipiv[i];
newipiv[i] = newipiv[newind];
if (newind > i)
newipiv[newind] = ind;
}
}
}
} else {
for(i=n-1; i>=0; i--){
newind = ipiv[i] - 1;
if (newipiv[newind] == -1) {
if (newipiv[i]==-1){
newipiv[i] = newind;
if (newind>i)
newipiv[newind]= i;
}
else
{
ind = newipiv[i];
newipiv[i] = newind;
if (newind>i)
newipiv[newind]= ind;
}
}
else {
if (newipiv[i]==-1){
if (newind>i){
ind = newipiv[newind];
newipiv[newind] = i;
newipiv[i] = ind;
}
else
newipiv[i] = newipiv[newind];
}
else{
ind = newipiv[i];
newipiv[i] = newipiv[newind];
if (newind > i)
newipiv[newind] = ind;
}
}
}
}
}