cuBLASMp C API#
库管理#
cublasMpCreate
#
cublasMpStatus_t cublasMpCreate(
cublasMpHandle_t *handle,
cudaStream_t stream);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输出 |
cuBLASMp 库句柄。 |
stream |
主机 |
输入 |
将分配给句柄的流。 |
cublasMpDestroy
#
cublasMpStatus_t cublasMpDestroy(
cublasMpHandle_t handle);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输入/输出 |
cuBLASMp 库句柄,用于销毁。 |
cublasMpStreamSet
#
cublasMpStatus_t cublasMpStreamSet(
cublasMpHandle_t handle,
cudaStream_t stream);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输入 |
cuBLASMp 库句柄。 |
stream |
主机 |
输入 |
要设置的 CUDA 流指针。 |
cublasMpStreamGet
#
cublasMpStatus_t cublasMpStreamGet(
cublasMpHandle_t handle,
cudaStream_t* stream);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输入 |
cuBLASMp 库句柄。 |
stream |
主机 |
输出 |
要设置的 CUDA 流指针。 |
cublasMpGetVersion
#
cublasMpStatus_t cublasMpGetVersion(
int *version);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
version |
主机 |
输出 |
cuBLASMp 库版本。值为 |
网格管理#
cublasMpGridCreate
#
cublasMpStatus_t cublasMpGridCreate(
int64_t nprow,
int64_t npcol,
cublasMpGridLayout_t layout,
cal_comm_t comm,
cublasMpGrid_t* grid);
如果 NVSHMEM 未由用户初始化,cuBLASMp 将在创建第一个网格时初始化它。如果 NVSHMEM 已经初始化,则不会重新初始化。如果 cuBLASMp 初始化了 NVSHMEM,则它只会调用
nvshmem_finalize
。
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
nprow |
主机 |
输入 |
网格包含多少行进程。 |
npcol |
主机 |
输入 |
网格包含多少列进程。 |
layout |
主机 |
输入 |
网格布局 (cublasMpGridLayout_t)。 |
comm |
主机 |
输入 |
与网格关联的通信器。 |
grid |
主机 |
输入/输出 |
指向网格对象的指针。 |
cublasMpGridDestroy
#
cublasMpStatus_t cublasMpGridDestroy(
cublasMpGrid_t grid);
grid
对象。参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
grid |
主机 |
输入/输出 |
要销毁的网格对象。 |
矩阵管理#
cublasMpMatrixDescriptorCreate
#
cublasMpStatus_t cublasMpMatrixDescriptorCreate(
int64_t m,
int64_t n,
int64_t mb,
int64_t nb,
int64_t rsrc,
int64_t csrc,
int64_t lld,
cudaDataType_t type,
cublasMpGrid_t grid,
cublasMpMatrixDescriptor_t* desc);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
m |
主机 |
输入 |
全局矩阵中的行数。 |
n |
主机 |
输入 |
全局矩阵中的列数。 |
mb |
主机 |
输入 |
用于分布全局矩阵行的分块因子。 |
nb |
主机 |
输入 |
用于分布全局矩阵列的分块因子。 |
rsrc |
主机 |
输入 |
拥有全局矩阵第一个行块的进程的行秩。 |
csrc |
主机 |
输入 |
拥有全局矩阵第一个列块的进程的列秩。 |
lld |
主机 |
输入 |
局部矩阵的 leading dimension。 |
type |
主机 |
输入 |
矩阵的数据类型。 |
grid |
主机 |
输入 |
与矩阵描述符关联的网格对象。 |
desc |
主机 |
输出 |
由此函数初始化的矩阵描述符对象。 |
type
参数的受支持值。数据类型 |
描述 |
---|---|
CUDA_R_8I |
8 位实数有符号整数。 |
CUDA_R_32I |
32 位实数有符号整数。 |
CUDA_R_8F_E4M3 |
E4M3 格式的 8 位实数浮点数。 |
CUDA_R_8F_E5M2 |
E5M2 格式的 8 位实数浮点数。 |
CUDA_R_16F |
16 位实数半精度浮点数。 |
CUDA_R_16BF |
16 位实数 bfloat16 浮点数。 |
CUDA_R_32F |
32 位实数单精度浮点数。 |
CUDA_R_64F |
64 位实数双精度浮点数。 |
CUDA_C_32F |
64 位结构,由两个单精度浮点数组成,表示复数。 |
CUDA_C_64F |
128 位结构,由两个双精度浮点数组成,表示复数。 |
cublasMpMatrixDescriptorDestroy
#
cublasMpStatus_t cublasMpMatrixDescriptorDestroy(
cublasMpMatrixDescriptor_t desc);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
desc |
主机 |
输入/输出 |
要销毁的矩阵描述符对象。 |
cublasMpMatrixDescriptorInit
#
cublasMpStatus_t cublasMpMatrixDescriptorInit(
int64_t m,
int64_t n,
int64_t mb,
int64_t nb,
int64_t rsrc,
int64_t csrc,
int64_t lld,
cudaDataType_t type,
cublasMpGrid_t grid,
cublasMpMatrixDescriptor_t desc);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
m |
主机 |
输入 |
全局矩阵中的行数。 |
n |
主机 |
输入 |
全局矩阵中的列数。 |
mb |
主机 |
输入 |
用于分布全局矩阵行的分块因子。 |
nb |
主机 |
输入 |
用于分布全局矩阵列的分块因子。 |
rsrc |
主机 |
输入 |
拥有全局矩阵第一个行块的进程的行秩。 |
csrc |
主机 |
输入 |
拥有全局矩阵第一个列块的进程的列秩。 |
lld |
主机 |
输入 |
局部矩阵的 leading dimension。 |
type |
主机 |
输入 |
矩阵的数据类型。 |
grid |
主机 |
输入 |
与矩阵描述符关联的网格对象。 |
desc |
主机 |
输出 |
由此函数初始化的矩阵描述符对象。 |
type
参数的受支持值数据类型 |
描述 |
---|---|
CUDA_R_8I |
8 位实数有符号整数。 |
CUDA_R_32I |
32 位实数有符号整数。 |
CUDA_R_8F_E4M3 |
E4M3 格式的 8 位实数浮点数。 |
CUDA_R_8F_E5M2 |
E5M2 格式的 8 位实数浮点数。 |
CUDA_R_16F |
16 位实数半精度浮点数。 |
CUDA_R_16BF |
16 位实数 bfloat16 浮点数。 |
CUDA_R_32F |
32 位实数单精度浮点数。 |
CUDA_R_64F |
64 位实数双精度浮点数。 |
CUDA_C_32F |
64 位结构,由两个单精度浮点数组成,表示复数。 |
CUDA_C_64F |
128 位结构,由两个双精度浮点数组成,表示复数。 |
Matmul 属性#
cublasMpMatmulDescriptorCreate
#
cublasMpStatus_t cublasMpMatmulDescriptorCreate(
cublasMpMatmulDescriptor_t* matmulDesc,
cublasComputeType_t computeType);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
matmulDesc |
主机 |
输入/输出 |
指向要初始化的 cublasMpMatmulDescriptor 对象的指针。 |
computeType |
主机 |
输入 |
cuBLAS 计算类型,用于计算。请参阅下表了解支持的组合。 |
computeType
参数的受支持值。计算类型 |
---|
CUBLAS_COMPUTE_32I |
CUBLAS_COMPUTE_32I_PEDANTIC |
CUBLAS_COMPUTE_16F |
CUBLAS_COMPUTE_16F_PEDANTIC |
CUBLAS_COMPUTE_32F |
CUBLAS_COMPUTE_32F_PEDANTIC |
CUBLAS_COMPUTE_32F_FAST_16F |
CUBLAS_COMPUTE_32F_FAST_16BF |
CUBLAS_COMPUTE_32F_FAST_TF32 |
CUBLAS_COMPUTE_64F |
CUBLAS_COMPUTE_64F_PEDANTIC |
cublasMpMatmulDescriptorDestroy
#
cublasMpStatus_t cublasMpMatmulDescriptorDestroy(
cublasMpMatmulDescriptor_t matmulDesc);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
matmulDesc |
主机 |
输入/输出 |
要销毁的 Matmul 描述符对象。 |
cublasMpMatmulDescriptorAttributeSet
#
cublasMpStatus_t cublasMpMatmulDescriptorAttributeSet(
cublasMpMatmulDescriptor_t matmulDesc,
cublasMpMatmulDescriptorAttribute_t attr,
const void* buf,
size_t sizeInBytes);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
matmulDesc |
主机 |
输入 |
要设置其属性的 Matmul 描述符对象。 |
attr |
主机 |
输入 |
要设置的 Matmul 描述符属性。 |
buf |
主机 |
输入 |
要设置的属性值。 |
sizeInBytes |
主机 |
输入 |
属性缓冲区大小(以字节为单位)。 |
cublasMpMatmulDescriptorAttributeGet
#
cublasMpStatus_t cublasMpMatmulDescriptorAttributeGet(
cublasMpMatmulDescriptor_t matmulDesc,
cublasMpMatmulDescriptorAttribute_t attr,
const void* buf,
size_t sizeInBytes,
size_t* sizeWritten);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
matmulDesc |
主机 |
输入 |
要设置其属性的 Matmul 描述符对象。 |
attr |
主机 |
输入 |
要设置的 Matmul 描述符属性。 |
buf |
主机 |
输出 |
要设置的属性值。 |
sizeInBytes |
主机 |
输入 |
属性缓冲区大小(以字节为单位)。 |
sizeWritten |
主机 |
输出 |
写入 |
实用程序#
cublasMpNumroc
#
int64_t cublasMpNumroc(
int64_t n,
int64_t nb,
uint32_t iproc,
uint32_t isrcproc,
uint32_t nprocs);
iproc
参数指示的进程拥有的分布式矩阵的行数或列数。参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
n |
主机 |
输入 |
全局分布式矩阵中的行数或列数。 |
nb |
主机 |
输入 |
全局矩阵的行或列分块大小。 |
iproc |
主机 |
输入 |
要确定其局部数组行或列的进程的坐标。 |
isrcproc |
主机 |
输入 |
拥有分布式矩阵第一行或第一列的进程的坐标。 |
nprocs |
主机 |
输入 |
矩阵分布在其上的行或列进程的总数。 |
cublasMpGemr2D
#
cublasMpStatus_t cublasMpGemr2D(
cublasMpHandle_t handle,
int64_t m,
int64_t n,
const void* a,
int64_t ia,
int64_t ja,
cublasMpMatrixDescriptor_t descA,
void* b,
int64_t ib,
int64_t jb,
cublasMpMatrixDescriptor_t descB,
void* d_work,
size_t workspaceSizeInBytesOnDevice,
void* h_work,
size_t workspaceSizeInBytesOnHost,
cal_comm_t global_comm);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输入 |
cuBLASMp 库句柄。 |
m |
主机 |
输入 |
sub(A) 和 sub(B) 的行数。 |
n |
主机 |
输入 |
sub(A) 和 sub(B) 的列数。 |
a |
设备 |
输入 |
指向全局矩阵 A 的局部部分的第一个条目的指针。 |
ia |
主机 |
输入 |
sub(A) 第一行的行索引。 |
ja |
主机 |
输入 |
sub(A) 第一列的列索引。 |
descA |
主机 |
输入 |
与全局矩阵 A 关联的矩阵描述符。在不属于 A 网格的进程中,descA 的网格值必须设置为 null。 |
b |
设备 |
输出 |
指向全局矩阵 B 的局部部分的第一个条目的指针。 |
ib |
主机 |
输入 |
sub(B) 第一行的行索引。 |
jb |
主机 |
输入 |
sub(B) 第一列的列索引。 |
descB |
主机 |
输入 |
与全局矩阵 B 关联的矩阵描述符。在不属于 B 网格的进程中,descB 的网格值必须设置为 null。 |
d_work |
设备 |
输出 |
大小为 |
workspaceInBytesOnDevice |
主机 |
输入 |
例程所需的本地设备工作区的大小(以字节为单位),由 cublasMpGemr2D_bufferSize() 提供。 |
h_work |
主机 |
输出 |
大小为 |
workspaceInBytesOnHost |
主机 |
输入 |
例程所需的本地主机工作区的大小(以字节为单位),由 cublasMpGemr2D_bufferSize() 提供。 |
global_comm |
主机 |
输入 |
一个通信器,至少包含 A 和 B 通信器中所有进程的并集。通信器中的所有进程都必须调用此函数,即使它们不拥有任何矩阵的一部分。 |
cublasMpGemr2D_bufferSize
#
cublasMpStatus_t cublasMpGemr2D_bufferSize(
cublasMpHandle_t handle,
int64_t m,
int64_t n,
const void* a,
int64_t ia,
int64_t ja,
cublasMpMatrixDescriptor_t descA,
void* b,
int64_t ib,
int64_t jb,
cublasMpMatrixDescriptor_t descB,
size_t* workspaceSizeInBytesOnDevice,
size_t* workspaceSizeInBytesOnHost,
cal_comm_t global_comm);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输入 |
cuBLASMp 库句柄。 |
m |
主机 |
输入 |
sub(A) 和 sub(B) 的行数。 |
n |
主机 |
输入 |
sub(A) 和 sub(B) 的列数。 |
a |
设备 |
输入 |
指向全局矩阵 A 的局部部分的第一个条目的指针。 |
ia |
主机 |
输入 |
sub(A) 第一行的行索引。 |
ja |
主机 |
输入 |
sub(A) 第一列的列索引。 |
descA |
主机 |
输入 |
与全局矩阵 A 关联的矩阵描述符。在不属于 A 网格的进程中,descA 的网格值必须设置为 null。 |
b |
设备 |
输入 |
指向全局矩阵 B 的局部部分的第一个条目的指针。 |
ib |
主机 |
输入 |
sub(B) 第一行的行索引。 |
jb |
主机 |
输入 |
sub(B) 第一列的列索引。 |
descB |
主机 |
输入 |
与全局矩阵 B 关联的矩阵描述符。在不属于 B 网格的进程中,descB 的网格值必须设置为 null。 |
workspaceInBytesOnDevice |
主机 |
输出 |
在输出时,包含 cublasMpGemr2D() 所需的本地设备工作区的大小(以字节为单位)。 |
workspaceInBytesOnHost |
主机 |
输出 |
在输出时,包含 cublasMpGemr2D() 所需的本地主机工作区的大小(以字节为单位)。 |
global_comm |
主机 |
输入 |
一个通信器,至少包含 A 和 B 通信器中所有进程的并集。通信器中的所有进程都必须调用此函数,即使它们不拥有任何矩阵的一部分。 |
cublasMpTrmr2D
#
cublasMpStatus_t cublasMpTrmr2D(
cublasMpHandle_t handle,
cublasFillMode_t uplo,
cublasDiagType_t diag,
int64_t m,
int64_t n,
const void* a,
int64_t ia,
int64_t ja,
cublasMpMatrixDescriptor_t descA,
void* b,
int64_t ib,
int64_t jb,
cublasMpMatrixDescriptor_t descB,
void* d_work,
size_t workspaceSizeInBytesOnDevice,
void* h_work,
size_t workspaceSizeInBytesOnHost,
cal_comm_t global_comm);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输入 |
cuBLASMp 库句柄。 |
uplo |
主机 |
输入 |
指示是否存储了矩阵 A 的下部或上部,另一部分未被引用,而是从存储的元素中推断出来的。 |
diag |
主机 |
输入 |
指示矩阵 A 主对角线上的元素是否为单位值,并且不应被访问。 |
m |
主机 |
输入 |
sub(A) 和 sub(B) 的行数。 |
n |
主机 |
输入 |
sub(A) 和 sub(B) 的列数。 |
a |
设备 |
输入 |
指向全局矩阵 A 的局部部分的第一个条目的指针。 |
ia |
主机 |
输入 |
sub(A) 第一行的行索引。 |
ja |
主机 |
输入 |
sub(A) 第一列的列索引。 |
descA |
主机 |
输入 |
与全局矩阵 A 关联的矩阵描述符。在不属于 A 网格的进程中,descA 的网格值必须设置为 null。 |
b |
设备 |
输出 |
指向全局矩阵 B 的局部部分的第一个条目的指针。 |
ib |
主机 |
输入 |
sub(B) 第一行的行索引。 |
jb |
主机 |
输入 |
sub(B) 第一列的列索引。 |
descB |
主机 |
输入 |
与全局矩阵 B 关联的矩阵描述符。在不属于 B 网格的进程中,descB 的网格值必须设置为 null。 |
d_work |
设备 |
输出 |
大小为 |
workspaceInBytesOnDevice |
主机 |
输入 |
例程所需的本地设备工作区的大小(以字节为单位),由 cublasMpTrmr2D_bufferSize() 提供。 |
h_work |
主机 |
输出 |
大小为 |
workspaceInBytesOnHost |
主机 |
输入 |
例程所需的本地主机工作区的大小(以字节为单位),由 cublasMpTrmr2D_bufferSize() 提供。 |
global_comm |
主机 |
输入 |
一个通信器,至少包含 A 和 B 通信器中所有进程的并集。通信器中的所有进程都必须调用此函数,即使它们不拥有任何矩阵的一部分。 |
cublasMpTrmr2D_bufferSize
#
cublasMpStatus_t cublasMpTrmr2D_bufferSize(
cublasMpHandle_t handle,
cublasFillMode_t uplo,
cublasDiagType_t diag,
int64_t m,
int64_t n,
const void* a,
int64_t ia,
int64_t ja,
cublasMpMatrixDescriptor_t descA,
void* b,
int64_t ib,
int64_t jb,
cublasMpMatrixDescriptor_t descB,
size_t* workspaceSizeInBytesOnDevice,
size_t* workspaceSizeInBytesOnHost,
cal_comm_t global_comm);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输入 |
cuBLASMp 库句柄。 |
uplo |
主机 |
输入 |
指示是否存储了矩阵 A 的下部或上部,另一部分未被引用,而是从存储的元素中推断出来的。 |
diag |
主机 |
输入 |
指示矩阵 A 主对角线上的元素是否为单位值,并且不应被访问。 |
m |
主机 |
输入 |
sub(A) 和 sub(B) 的行数。 |
n |
主机 |
输入 |
sub(A) 和 sub(B) 的列数。 |
a |
设备 |
输入 |
指向全局矩阵 A 的局部部分的第一个条目的指针。 |
ia |
主机 |
输入 |
sub(A) 第一行的行索引。 |
ja |
主机 |
输入 |
sub(A) 第一列的列索引。 |
descA |
主机 |
输入 |
与全局矩阵 A 关联的矩阵描述符。在不属于 A 网格的进程中,descA 的网格值必须设置为 null。 |
b |
设备 |
输入 |
指向全局矩阵 B 的局部部分的第一个条目的指针。 |
ib |
主机 |
输入 |
sub(B) 第一行的行索引。 |
jb |
主机 |
输入 |
sub(B) 第一列的列索引。 |
descB |
主机 |
输入 |
与全局矩阵 B 关联的矩阵描述符。在不属于 B 网格的进程中,descB 的网格值必须设置为 null。 |
workspaceInBytesOnDevice |
主机 |
输出 |
在输出时,包含 cublasMpTrmr2D() 所需的本地设备工作区的大小(以字节为单位)。 |
workspaceInBytesOnHost |
主机 |
输出 |
在输出时,包含 cublasMpTrmr2D() 所需的本地主机工作区的大小(以字节为单位)。 |
global_comm |
主机 |
输入 |
一个通信器,至少包含 A 和 B 通信器中所有进程的并集。通信器中的所有进程都必须调用此函数,即使它们不拥有任何矩阵的一部分。 |
日志记录#
cublasMpLoggerSetCallback
#
cublasMpStatus_t cublasMpLoggerSetCallback(
cublasMpLoggerCallback_t callback);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
callback |
主机 |
输入 |
指向回调函数的指针。请参阅 |
警告
这是一个实验性功能。
cublasMpLoggerSetFile
#
cublasMpStatus_t cublasMpLoggerSetFile(
FILE *file);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
file |
主机 |
输入 |
指向打开文件的指针。文件应具有写入权限。 |
警告
这是一个实验性功能。
cublasMpLoggerOpenFile
#
cublasMpStatus_t cublasMpLoggerOpenFile(
const char* logFile);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
logFile |
主机 |
输入 |
日志记录输出文件的路径。 |
警告
这是一个实验性功能。
cublasMpLoggerSetLevel
#
cublasMpStatus_t cublasMpLoggerSetLevel(
int level);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
level |
主机 |
输入 |
日志记录级别的数值。请参阅 cuBLASMp 日志记录。 |
警告
这是一个实验性功能。
cublasMpLoggerSetMask
#
cublasMpStatus_t cublasMpLoggerSetMask(
int mask);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
mask |
主机 |
输入 |
日志记录掩码的数值。请参阅 cuBLASMp 日志记录。 |
警告
这是一个实验性功能。
cublasMpLoggerForceDisable
#
cublasMpStatus_t cublasMpLoggerForceDisable();
警告
这是一个实验性功能。
稠密线性代数 API#
cublasMpTrsm
#
cublasMpStatus_t cublasMpTrsm(
cublasMpHandle_t handle,
cublasSideMode_t side,
cublasFillMode_t uplo,
cublasOperation_t trans,
cublasDiagType_t diag,
int64_t m,
int64_t n,
const void* alpha,
const void* a,
int64_t ia,
int64_t ja,
cublasMpMatrixDescriptor_t descA,
void* b,
int64_t ib,
int64_t jb,
cublasMpMatrixDescriptor_t descB,
cublasComputeType_t computeType,
void* d_work,
size_t workspaceSizeInBytesOnDevice,
void* h_work,
size_t workspaceSizeInBytesOnHost);
\(\left\{ \begin{matrix} {\text{op}(A)X = \alpha B} & {\text{if }\textsf{side == $\mathrm{CUBLAS\_SIDE\_LEFT}$}} \\ {X\text{op}(A) = \alpha B} & {\text{if }\textsf{side == $\mathrm{CUBLAS\_SIDE\_RIGHT}$}} \\ \end{matrix} \right.\)
\(\text{op}(A) = \left\{ \begin{matrix} A & {\text{if }\textsf{trans == $\mathrm{CUBLAS\_OP\_N}$}} \\ A^{T} & {\text{if }\textsf{trans == $\mathrm{CUBLAS\_OP\_T}$}} \\ A^{H} & {\text{if }\textsf{trans == $\mathrm{CUBLAS\_OP\_C}$}} \\ \end{matrix} \right.\)
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输入 |
cuBLASMp 库句柄。 |
side |
主机 |
输入 |
指示矩阵 A 在 X 的左侧还是右侧。 |
uplo |
主机 |
输入 |
指示是否存储了矩阵 A 的下部或上部,另一部分未被引用,而是从存储的元素中推断出来的。 |
trans |
主机 |
输入 |
非转置或(共轭)转置的运算 op(A)。 |
diag |
主机 |
输入 |
指示矩阵 A 主对角线上的元素是否为单位值,并且不应被访问。 |
m |
主机 |
输入 |
矩阵 sub(B) 的行数,矩阵 sub(A) 的大小也相应调整。 |
n |
主机 |
输入 |
矩阵 sub(B) 的列数,矩阵 sub(A) 的大小也相应调整。 |
alpha |
主机 |
输入 |
用于乘法的标量。 |
a |
设备 |
输入 |
指向全局矩阵 A 的局部部分的第一个条目的指针。 |
ia |
主机 |
输入 |
sub(A) 第一行的行索引。 |
ja |
主机 |
输入 |
sub(A) 第一列的列索引。 |
descA |
主机 |
输入 |
与全局矩阵 A 关联的矩阵描述符。 |
b |
设备 |
输入/输出 |
指向全局矩阵 B 的局部部分的第一个条目的指针。 |
ib |
主机 |
输入 |
sub(B) 第一行的行索引。 |
jb |
主机 |
输入 |
sub(B) 第一列的列索引。 |
descB |
主机 |
输入 |
与全局矩阵 B 关联的矩阵描述符。 |
computeType |
主机 |
输入 |
cuBLAS 计算类型,用于计算。请参阅下表了解支持的组合。 |
d_work |
设备 |
输出 |
大小为 |
workspaceInBytesOnDevice |
主机 |
输入 |
例程所需的本地设备工作区的大小(以字节为单位),由 cublasMpTrsm_bufferSize() 提供。 |
h_work |
主机 |
输出 |
大小为 |
workspaceInBytesOnHost |
主机 |
输入 |
例程所需的本地主机工作区的大小(以字节为单位),由 cublasMpTrsm_bufferSize() 提供。 |
计算类型 |
标量类型 (alpha 和 beta) |
Atype/Btype |
Ctype |
---|---|---|---|
CUBLAS_COMPUTE_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
|
CUBLAS_COMPUTE_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_C_64F |
CUDA_C_64F |
CUDA_C_64F |
computeType
参数仅用于内部矩阵-矩阵乘法。cublasMpTrsm_bufferSize
#
cublasMpStatus_t cublasMpTrsm_bufferSize(
cublasMpHandle_t handle,
cublasSideMode_t side,
cublasFillMode_t uplo,
cublasOperation_t trans,
cublasDiagType_t diag,
int64_t m,
int64_t n,
const void* alpha,
const void* a,
int64_t ia,
int64_t ja,
cublasMpMatrixDescriptor_t descA,
void* b,
int64_t ib,
int64_t jb,
cublasMpMatrixDescriptor_t descB,
cublasComputeType_t computeType,
size_t* workspaceSizeInBytesOnDevice,
size_t* workspaceSizeInBytesOnHost);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输入 |
cuBLASMp 库句柄。 |
side |
主机 |
输入 |
指示矩阵 A 在 X 的左侧还是右侧。 |
uplo |
主机 |
输入 |
指示是否存储了矩阵 A 的下部或上部,另一部分未被引用,而是从存储的元素中推断出来的。 |
trans |
主机 |
输入 |
非转置或(共轭)转置的运算 op(A)。 |
diag |
主机 |
输入 |
指示矩阵 A 主对角线上的元素是否为单位值,并且不应被访问。 |
m |
主机 |
输入 |
矩阵 sub(B) 的行数,矩阵 sub(A) 的大小也相应调整。 |
n |
主机 |
输入 |
矩阵 sub(B) 的列数,矩阵 sub(A) 的大小也相应调整。 |
alpha |
主机 |
输入 |
用于乘法的标量。 |
a |
设备 |
输入 |
指向全局矩阵 A 的局部部分的第一个条目的指针。 |
ia |
主机 |
输入 |
sub(A) 第一行的行索引。 |
ja |
主机 |
输入 |
sub(A) 第一列的列索引。 |
descA |
主机 |
输入 |
与全局矩阵 A 关联的矩阵描述符。 |
b |
设备 |
输入 |
指向全局矩阵 B 的局部部分的第一个条目的指针。 |
ib |
主机 |
输入 |
sub(B) 第一行的行索引。 |
jb |
主机 |
输入 |
sub(B) 第一列的列索引。 |
descB |
主机 |
输入 |
与全局矩阵 B 关联的矩阵描述符。 |
computeType |
主机 |
输入 |
cuBLAS 计算类型,用于计算。请参阅下表了解支持的组合。 |
workspaceInBytesOnDevice |
主机 |
输出 |
在输出时,包含 cublasMpTrsm() 所需的本地设备工作区的大小(以字节为单位)。 |
workspaceInBytesOnHost |
主机 |
输出 |
在输出时,包含 cublasMpTrsm() 所需的本地主机工作区的大小(以字节为单位)。 |
计算类型 |
标量类型 (alpha 和 beta) |
Atype/Btype |
Ctype |
---|---|---|---|
CUBLAS_COMPUTE_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
|
CUBLAS_COMPUTE_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_C_64F |
CUDA_C_64F |
CUDA_C_64F |
computeType
参数仅用于内部矩阵-矩阵乘法。cublasMpGemm
#
cublasMpStatus_t cublasMpGemm(
cublasMpHandle_t handle,
cublasOperation_t transA,
cublasOperation_t transB,
int64_t m,
int64_t n,
int64_t k,
const void* alpha,
const void* a,
int64_t ia,
int64_t ja,
cublasMpMatrixDescriptor_t descA,
const void* b,
int64_t ib,
int64_t jb,
cublasMpMatrixDescriptor_t descB,
const void* beta,
void* c,
int64_t ic,
int64_t jc,
cublasMpMatrixDescriptor_t descC,
cublasComputeType_t computeType,
void* d_work,
size_t workspaceSizeInBytesOnDevice,
void* h_work,
size_t workspaceSizeInBytesOnHost);
\(C = \alpha\text{op}(A)\text{op}(B) + \beta C\)
\(\text{op}(A) = \left\{ \begin{matrix} A & {\text{if }\textsf{transA == $\mathrm{CUBLAS\_OP\_N}$}} \\ A^{T} & {\text{if }\textsf{transA == $\mathrm{CUBLAS\_OP\_T}$}} \\ A^{H} & {\text{if }\textsf{transA == $\mathrm{CUBLAS\_OP\_C}$}} \\ \end{matrix} \right.\)
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输入 |
cuBLASMp 库句柄。 |
transA |
主机 |
输入 |
非转置或(共轭)转置的运算 op(A)。 |
transB |
主机 |
输入 |
非转置或(共轭)转置的运算 op(B)。 |
m |
主机 |
输入 |
sub(A) 和 sub(C) 的行数。 |
n |
主机 |
输入 |
sub(B) 和 sub(C) 的列数。 |
k |
主机 |
输入 |
sub(A) 的列数和 sub(B) 的行数。 |
alpha |
主机 |
输入 |
<type> scalar used for multiplication. |
a |
设备 |
输入 |
指向全局矩阵 A 的局部部分的第一个条目的指针。 |
ia |
主机 |
输入 |
sub(A) 第一行的行索引。 |
ja |
主机 |
输入 |
sub(A) 第一列的列索引。 |
descA |
主机 |
输入 |
与全局矩阵 A 关联的矩阵描述符。 |
b |
设备 |
输入 |
指向全局矩阵 B 的局部部分的第一个条目的指针。 |
ib |
主机 |
输入 |
sub(B) 第一行的行索引。 |
jb |
主机 |
输入 |
sub(B) 第一列的列索引。 |
descB |
主机 |
输入 |
与全局矩阵 B 关联的矩阵描述符。 |
beta |
主机 |
输入 |
<type> scalar used for multiplication. |
c |
设备 |
输入/输出 |
指向全局矩阵 C 的局部部分的第一个条目的指针。 |
ic |
主机 |
输入 |
sub(C) 第一行的行索引。 |
jc |
主机 |
输入 |
sub(C) 第一列的列索引。 |
descC |
主机 |
输入 |
与全局矩阵 C 关联的矩阵描述符。 |
computeType |
主机 |
输入 |
cuBLAS 计算类型,用于计算。请参阅下表了解支持的组合。 |
d_work |
设备 |
输出 |
大小为 |
workspaceInBytesOnDevice |
主机 |
输入 |
例程所需的本地设备工作区的大小(以字节为单位),由 cublasMpGemm_bufferSize() 提供。 |
h_work |
主机 |
输出 |
大小为 |
workspaceInBytesOnHost |
主机 |
输入 |
例程所需的本地主机工作区的大小(以字节为单位),由 cublasMpGemm_bufferSize() 提供。 |
计算类型 |
标量类型 (alpha 和 beta) |
Atype/Btype |
Ctype |
---|---|---|---|
CUBLAS_COMPUTE_16F 或 CUBLAS_COMPUTE_16F_PEDANTIC |
CUDA_R_16F |
CUDA_R_16F |
CUDA_R_16F |
CUBLAS_COMPUTE_32F 或 CUBLAS_COMPUTE_32F_PEDANTIC |
CUDA_R_32F |
CUDA_R_16BF |
CUDA_R_16BF |
CUDA_R_16F |
CUDA_R_16F |
||
CUDA_R_8I |
CUDA_R_32F |
||
CUDA_R_16BF |
CUDA_R_32F |
||
CUDA_R_16F |
CUDA_R_32F |
||
CUDA_R_32F |
CUDA_R_32F |
||
CUDA_C_32F |
CUDA_C_8I |
CUDA_C_32F |
|
CUDA_C_32F |
CUDA_C_32F |
||
CUBLAS_COMPUTE_32F_FAST_16F 或 CUBLAS_COMPUTE_32F_FAST_16BF 或 CUBLAS_COMPUTE_32F_FAST_TF32 |
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
|
CUBLAS_COMPUTE_64F 或 CUBLAS_COMPUTE_64F_PEDANTIC |
CUDA_R_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_C_64F |
CUDA_C_64F |
CUDA_C_64F |
computeType
参数仅用于内部矩阵-矩阵乘法。cublasMpGemm_bufferSize
#
cublasMpStatus_t cublasMpGemm_bufferSize(
cublasMpHandle_t handle,
cublasOperation_t transA,
cublasOperation_t transB,
int64_t m,
int64_t n,
int64_t k,
const void* alpha,
const void* a,
int64_t ia,
int64_t ja,
cublasMpMatrixDescriptor_t descA,
const void* b,
int64_t ib,
int64_t jb,
cublasMpMatrixDescriptor_t descB,
const void* beta,
void* c,
int64_t ic,
int64_t jc,
cublasMpMatrixDescriptor_t descC,
cublasComputeType_t computeType,
size_t* workspaceSizeInBytesOnDevice,
size_t* workspaceSizeInBytesOnHost);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输入 |
cuBLASMp 库句柄。 |
transA |
主机 |
输入 |
非转置或(共轭)转置的运算 op(A)。 |
transB |
主机 |
输入 |
非转置或(共轭)转置的运算 op(B)。 |
m |
主机 |
输入 |
sub(A) 和 sub(C) 的行数。 |
n |
主机 |
输入 |
sub(B) 和 sub(C) 的列数。 |
k |
主机 |
输入 |
sub(A) 的列数和 sub(B) 的行数。 |
alpha |
主机 |
输入 |
<type> scalar used for multiplication. |
a |
设备 |
输入 |
指向全局矩阵 A 的局部部分的第一个条目的指针。 |
ia |
主机 |
输入 |
sub(A) 第一行的行索引。 |
ja |
主机 |
输入 |
sub(A) 第一列的列索引。 |
descA |
主机 |
输入 |
与全局矩阵 A 关联的矩阵描述符。 |
b |
设备 |
输入 |
指向全局矩阵 B 的局部部分的第一个条目的指针。 |
ib |
主机 |
输入 |
sub(B) 第一行的行索引。 |
jb |
主机 |
输入 |
sub(B) 第一列的列索引。 |
descB |
主机 |
输入 |
与全局矩阵 B 关联的矩阵描述符。 |
beta |
主机 |
输入 |
<type> scalar used for multiplication. |
c |
设备 |
输入 |
指向全局矩阵 C 的局部部分的第一个条目的指针。 |
ic |
主机 |
输入 |
sub(C) 第一行的行索引。 |
jc |
主机 |
输入 |
sub(C) 第一列的列索引。 |
descC |
主机 |
输入 |
与全局矩阵 C 关联的矩阵描述符。 |
computeType |
主机 |
输入 |
cuBLAS 计算类型,用于计算。请参阅下表了解支持的组合。 |
workspaceInBytesOnDevice |
主机 |
输出 |
在输出时,包含 cublasMpGemm() 所需的本地设备工作区的大小(以字节为单位)。 |
workspaceInBytesOnHost |
主机 |
输出 |
在输出时,包含 cublasMpGemm() 所需的本地主机工作区的大小(以字节为单位)。 |
计算类型 |
标量类型 (alpha 和 beta) |
Atype/Btype |
Ctype |
---|---|---|---|
CUBLAS_COMPUTE_16F 或 CUBLAS_COMPUTE_16F_PEDANTIC |
CUDA_R_16F |
CUDA_R_16F |
CUDA_R_16F |
CUBLAS_COMPUTE_32F 或 CUBLAS_COMPUTE_32F_PEDANTIC |
CUDA_R_32F |
CUDA_R_16BF |
CUDA_R_16BF |
CUDA_R_16F |
CUDA_R_16F |
||
CUDA_R_8I |
CUDA_R_32F |
||
CUDA_R_16BF |
CUDA_R_32F |
||
CUDA_R_16F |
CUDA_R_32F |
||
CUDA_R_32F |
CUDA_R_32F |
||
CUDA_C_32F |
CUDA_C_8I |
CUDA_C_32F |
|
CUDA_C_32F |
CUDA_C_32F |
||
CUBLAS_COMPUTE_32F_FAST_16F 或 CUBLAS_COMPUTE_32F_FAST_16BF 或 CUBLAS_COMPUTE_32F_FAST_TF32 |
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
|
CUBLAS_COMPUTE_64F 或 CUBLAS_COMPUTE_64F_PEDANTIC |
CUDA_R_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_C_64F |
CUDA_C_64F |
CUDA_C_64F |
computeType
参数仅用于内部矩阵-矩阵乘法。cublasMpMatmul
#
cublasMpStatus_t cublasMpMatmul(
cublasMpHandle_t handle,
cublasMpMatmulDescriptor_t matmulDesc,
int64_t m,
int64_t n,
int64_t k,
const void* alpha,
const void* a,
int64_t ia,
int64_t ja,
cublasMpMatrixDescriptor_t descA,
const void* b,
int64_t ib,
int64_t jb,
cublasMpMatrixDescriptor_t descB,
const void* beta,
const void* c,
int64_t ic,
int64_t jc,
cublasMpMatrixDescriptor_t descC,
void* d,
int64_t id,
int64_t jd,
cublasMpMatrixDescriptor_t descD,
void* d_work,
size_t workspaceSizeInBytesOnDevice,
void* h_work,
size_t workspaceSizeInBytesOnHost);
\(D = \alpha\text{op}(A)\text{op}(B) + \beta C\)
\(\text{op}(A) = \left\{ \begin{matrix} A & {\text{if }\textsf{TRANSA == $\mathrm{CUBLAS\_OP\_N}$}} \\ A^{T} & {\text{if }\textsf{TRANSA == $\mathrm{CUBLAS\_OP\_T}$}} \\ A^{H} & {\text{if }\textsf{TRANSA == $\mathrm{CUBLAS\_OP\_C}$}} \\ \end{matrix} \right.\)
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输入 |
cuBLASMp 库句柄。 |
matmulDesc |
主机 |
输入 |
要执行的操作的描述符,使用 cublasMpMatmulDescriptorCreate() 创建。 |
m |
主机 |
输入 |
sub(A) 和 sub(C) 的行数。 |
n |
主机 |
输入 |
sub(B) 和 sub(C) 的列数。 |
k |
主机 |
输入 |
sub(A) 的列数和 sub(B) 的行数。 |
alpha |
主机 |
输入 |
<type> scalar used for multiplication. |
a |
设备 |
输入 |
指向全局矩阵 A 的局部部分的第一个条目的指针。 |
ia |
主机 |
输入 |
sub(A) 第一行的行索引。 |
ja |
主机 |
输入 |
sub(A) 第一列的列索引。 |
descA |
主机 |
输入 |
与全局矩阵 A 关联的矩阵描述符。 |
b |
设备 |
输入 |
指向全局矩阵 B 的局部部分的第一个条目的指针。 |
ib |
主机 |
输入 |
sub(B) 第一行的行索引。 |
jb |
主机 |
输入 |
sub(B) 第一列的列索引。 |
descB |
主机 |
输入 |
与全局矩阵 B 关联的矩阵描述符。 |
beta |
主机 |
输入 |
<type> scalar used for multiplication. |
c |
设备 |
输入 |
指向全局矩阵 C 的局部部分的第一个条目的指针。 |
ic |
主机 |
输入 |
sub(C) 第一行的行索引。 |
jc |
主机 |
输入 |
sub(C) 第一列的列索引。 |
descC |
主机 |
输入 |
与全局矩阵 C 关联的矩阵描述符。 |
d |
设备 |
输出 |
指向全局矩阵 D 的局部部分的第一个条目的指针。 |
id |
主机 |
输入 |
sub(D) 第一行的行索引。 |
jd |
主机 |
输入 |
sub(D) 首列的列索引。 |
descD |
主机 |
输入 |
与全局矩阵 D 关联的矩阵描述符。 |
d_work |
设备 |
输出 |
大小为 |
workspaceInBytesOnDevice |
主机 |
输入 |
例程所需的本地设备工作空间大小(以字节为单位),由 cublasMpMatmul_bufferSize() 提供。 |
h_work |
主机 |
输出 |
大小为 |
workspaceInBytesOnHost |
主机 |
输入 |
例程所需的本地主机工作空间大小(以字节为单位),由 cublasMpMatmul_bufferSize() 提供。 |
计算类型 |
标量类型 (alpha 和 beta) |
Atype |
Btype |
Ctype |
Dtype |
---|---|---|---|---|---|
CUBLAS_COMPUTE_16F 或 CUBLAS_COMPUTE_16F_PEDANTIC |
CUDA_R_16F |
CUDA_R_16F |
CUDA_R_16F |
CUDA_R_16F |
CUDA_R_16F |
CUBLAS_COMPUTE_32F 或 CUBLAS_COMPUTE_32F_PEDANTIC |
CUDA_R_32F |
CUDA_R_16BF |
CUDA_R_16BF |
CUDA_R_16BF |
CUDA_R_16BF |
CUDA_R_16F |
CUDA_R_16F |
CUDA_R_16F |
CUDA_R_16F |
||
CUDA_R_8I |
CUDA_R_8I |
CUDA_R_32F |
CUDA_R_32F |
||
CUDA_R_16BF |
CUDA_R_16BF |
CUDA_R_32F |
CUDA_R_32F |
||
CUDA_R_16F |
CUDA_R_16F |
CUDA_R_32F |
CUDA_R_32F |
||
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
||
CUDA_C_32F |
CUDA_C_8I |
CUDA_C_8I |
CUDA_C_32F |
CUDA_C_32F |
|
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
||
CUBLAS_COMPUTE_32F |
CUDA_R_32F |
CUDA_R_8F_E4M3 |
CUDA_R_8F_E4M3 |
CUDA_R_16BF |
CUDA_R_16BF |
CUDA_R_8F_E4M3 |
CUDA_R_8F_E4M3 |
CUDA_R_16BF |
CUDA_R_8F_E4M3 |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E4M3 |
CUDA_R_16F |
CUDA_R_16F |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E4M3 |
CUDA_R_16F |
CUDA_R_8F_E4M3 |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E4M3 |
CUDA_R_32F |
CUDA_R_32F |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E5M2 |
CUDA_R_16BF |
CUDA_R_16BF |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E5M2 |
CUDA_R_16BF |
CUDA_R_8F_E4M3 |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E5M2 |
CUDA_R_16BF |
CUDA_R_8F_E5M2 |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E5M2 |
CUDA_R_16F |
CUDA_R_16F |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E5M2 |
CUDA_R_16F |
CUDA_R_8F_E4M3 |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E5M2 |
CUDA_R_16F |
CUDA_R_8F_E5M2 |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E5M2 |
CUDA_R_32F |
CUDA_R_32F |
||
CUDA_R_8F_E5M2 |
CUDA_R_8F_E4M3 |
CUDA_R_16BF |
CUDA_R_16BF |
||
CUDA_R_8F_E5M2 |
CUDA_R_8F_E4M3 |
CUDA_R_16BF |
CUDA_R_8F_E4M3 |
||
CUDA_R_8F_E5M2 |
CUDA_R_8F_E4M3 |
CUDA_R_16BF |
CUDA_R_8F_E5M2 |
||
CUDA_R_8F_E5M2 |
CUDA_R_8F_E4M3 |
CUDA_R_16F |
CUDA_R_16F |
||
CUDA_R_8F_E5M2 |
CUDA_R_8F_E4M3 |
CUDA_R_16F |
CUDA_R_8F_E4M3 |
||
CUDA_R_8F_E5M2 |
CUDA_R_8F_E4M3 |
CUDA_R_16F |
CUDA_R_8F_E5M2 |
||
CUDA_R_8F_E5M2 |
CUDA_R_8F_E4M3 |
CUDA_R_32F |
CUDA_R_32F |
||
CUBLAS_COMPUTE_32F_FAST_16F 或 CUBLAS_COMPUTE_32F_FAST_16BF 或 CUBLAS_COMPUTE_32F_FAST_TF32 |
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
|
CUBLAS_COMPUTE_64F 或 CUBLAS_COMPUTE_64F_PEDANTIC |
CUDA_R_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_C_64F |
CUDA_C_64F |
CUDA_C_64F |
CUDA_C_64F |
CUDA_C_64F |
computeType
参数仅用于内部矩阵-矩阵乘法。cublasMpMatmul_bufferSize
#
cublasMpStatus_t cublasMpMatmul_bufferSize(
cublasMpHandle_t handle,
cublasMpMatmulDescriptor_t matmulDesc,
int64_t m,
int64_t n,
int64_t k,
const void* alpha,
const void* a,
int64_t ia,
int64_t ja,
cublasMpMatrixDescriptor_t descA,
const void* b,
int64_t ib,
int64_t jb,
cublasMpMatrixDescriptor_t descB,
const void* beta,
const void* c,
int64_t ic,
int64_t jc,
cublasMpMatrixDescriptor_t descC,
void* d,
int64_t id,
int64_t jd,
cublasMpMatrixDescriptor_t descD,
size_t* workspaceSizeInBytesOnDevice,
size_t* workspaceSizeInBytesOnHost);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输入 |
cuBLASMp 库句柄。 |
matmulDesc |
主机 |
输入 |
要执行的操作的描述符,使用 cublasMpMatmulDescriptorCreate() 创建。 |
m |
主机 |
输入 |
sub(A) 和 sub(C) 的行数。 |
n |
主机 |
输入 |
sub(B) 和 sub(C) 的列数。 |
k |
主机 |
输入 |
sub(A) 的列数和 sub(B) 的行数。 |
alpha |
主机 |
输入 |
<type> scalar used for multiplication. |
a |
设备 |
输入 |
指向全局矩阵 A 的局部部分的第一个条目的指针。 |
ia |
主机 |
输入 |
sub(A) 第一行的行索引。 |
ja |
主机 |
输入 |
sub(A) 第一列的列索引。 |
descA |
主机 |
输入 |
与全局矩阵 A 关联的矩阵描述符。 |
b |
设备 |
输入 |
指向全局矩阵 B 的局部部分的第一个条目的指针。 |
ib |
主机 |
输入 |
sub(B) 第一行的行索引。 |
jb |
主机 |
输入 |
sub(B) 第一列的列索引。 |
descB |
主机 |
输入 |
与全局矩阵 B 关联的矩阵描述符。 |
beta |
主机 |
输入 |
<type> scalar used for multiplication. |
c |
设备 |
输入 |
指向全局矩阵 C 的局部部分的第一个条目的指针。 |
ic |
主机 |
输入 |
sub(C) 第一行的行索引。 |
jc |
主机 |
输入 |
sub(C) 第一列的列索引。 |
descC |
主机 |
输入 |
与全局矩阵 C 关联的矩阵描述符。 |
d |
设备 |
输出 |
指向全局矩阵 D 的局部部分的第一个条目的指针。 |
id |
主机 |
输入 |
sub(D) 第一行的行索引。 |
jd |
主机 |
输入 |
sub(D) 首列的列索引。 |
descD |
主机 |
输入 |
与全局矩阵 D 关联的矩阵描述符。 |
workspaceInBytesOnDevice |
主机 |
输出 |
在输出时,包含 cublasMpGemm() 所需的本地设备工作区的大小(以字节为单位)。 |
workspaceInBytesOnHost |
主机 |
输出 |
在输出时,包含 cublasMpGemm() 所需的本地主机工作区的大小(以字节为单位)。 |
计算类型 |
标量类型 (alpha 和 beta) |
Atype |
Btype |
Ctype |
Dtype |
---|---|---|---|---|---|
CUBLAS_COMPUTE_16F 或 CUBLAS_COMPUTE_16F_PEDANTIC |
CUDA_R_16F |
CUDA_R_16F |
CUDA_R_16F |
CUDA_R_16F |
CUDA_R_16F |
CUBLAS_COMPUTE_32F 或 CUBLAS_COMPUTE_32F_PEDANTIC |
CUDA_R_32F |
CUDA_R_16BF |
CUDA_R_16BF |
CUDA_R_16BF |
CUDA_R_16BF |
CUDA_R_16F |
CUDA_R_16F |
CUDA_R_16F |
CUDA_R_16F |
||
CUDA_R_8I |
CUDA_R_8I |
CUDA_R_32F |
CUDA_R_32F |
||
CUDA_R_16BF |
CUDA_R_16BF |
CUDA_R_32F |
CUDA_R_32F |
||
CUDA_R_16F |
CUDA_R_16F |
CUDA_R_32F |
CUDA_R_32F |
||
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
||
CUDA_C_32F |
CUDA_C_8I |
CUDA_C_8I |
CUDA_C_32F |
CUDA_C_32F |
|
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
||
CUBLAS_COMPUTE_32F |
CUDA_R_32F |
CUDA_R_8F_E4M3 |
CUDA_R_8F_E4M3 |
CUDA_R_16BF |
CUDA_R_16BF |
CUDA_R_8F_E4M3 |
CUDA_R_8F_E4M3 |
CUDA_R_16BF |
CUDA_R_8F_E4M3 |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E4M3 |
CUDA_R_16F |
CUDA_R_16F |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E4M3 |
CUDA_R_16F |
CUDA_R_8F_E4M3 |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E4M3 |
CUDA_R_32F |
CUDA_R_32F |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E5M2 |
CUDA_R_16BF |
CUDA_R_16BF |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E5M2 |
CUDA_R_16BF |
CUDA_R_8F_E4M3 |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E5M2 |
CUDA_R_16BF |
CUDA_R_8F_E5M2 |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E5M2 |
CUDA_R_16F |
CUDA_R_16F |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E5M2 |
CUDA_R_16F |
CUDA_R_8F_E4M3 |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E5M2 |
CUDA_R_16F |
CUDA_R_8F_E5M2 |
||
CUDA_R_8F_E4M3 |
CUDA_R_8F_E5M2 |
CUDA_R_32F |
CUDA_R_32F |
||
CUDA_R_8F_E5M2 |
CUDA_R_8F_E4M3 |
CUDA_R_16BF |
CUDA_R_16BF |
||
CUDA_R_8F_E5M2 |
CUDA_R_8F_E4M3 |
CUDA_R_16BF |
CUDA_R_8F_E4M3 |
||
CUDA_R_8F_E5M2 |
CUDA_R_8F_E4M3 |
CUDA_R_16BF |
CUDA_R_8F_E5M2 |
||
CUDA_R_8F_E5M2 |
CUDA_R_8F_E4M3 |
CUDA_R_16F |
CUDA_R_16F |
||
CUDA_R_8F_E5M2 |
CUDA_R_8F_E4M3 |
CUDA_R_16F |
CUDA_R_8F_E4M3 |
||
CUDA_R_8F_E5M2 |
CUDA_R_8F_E4M3 |
CUDA_R_16F |
CUDA_R_8F_E5M2 |
||
CUDA_R_8F_E5M2 |
CUDA_R_8F_E4M3 |
CUDA_R_32F |
CUDA_R_32F |
||
CUBLAS_COMPUTE_32F_FAST_16F 或 CUBLAS_COMPUTE_32F_FAST_16BF 或 CUBLAS_COMPUTE_32F_FAST_TF32 |
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
|
CUBLAS_COMPUTE_64F 或 CUBLAS_COMPUTE_64F_PEDANTIC |
CUDA_R_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_C_64F |
CUDA_C_64F |
CUDA_C_64F |
CUDA_C_64F |
CUDA_C_64F |
computeType
参数仅用于内部矩阵-矩阵乘法。cublasMpSyrk
#
cublasMpStatus_t cublasMpSyrk(
cublasMpHandle_t handle,
cublasFillMode_t uplo,
cublasOperation_t trans,
int64_t n,
int64_t k,
const void* alpha,
const void* a,
int64_t ia,
int64_t ja,
cublasMpMatrixDescriptor_t descA,
const void* beta,
void* c,
int64_t ic,
int64_t jc,
cublasMpMatrixDescriptor_t descC,
cublasComputeType_t computeType,
void* d_work,
size_t workspaceSizeInBytesOnDevice,
void* h_work,
size_t workspaceSizeInBytesOnHost);
\(C = \alpha\text{op}(A)\text{op}(A)^{T} + \beta C\)
\(\text{op}(A) = \left\{ \begin{matrix} A & {\text{if }\textsf{trans == $\mathrm{CUBLAS\_OP\_N}$}} \\ A^{T} & {\text{if }\textsf{trans == $\mathrm{CUBLAS\_OP\_T}$}} \\ \end{matrix} \right.\)
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输入 |
cuBLASMp 库句柄。 |
uplo |
主机 |
输入 |
指示矩阵 C 存储的是下半部分还是上半部分,另一个对称部分不被引用,并从存储的元素中推断出来。 |
trans |
主机 |
输入 |
运算 op(A) 是非转置或转置。 |
n |
主机 |
输入 |
sub(A) 和 sub(C) 的行数。 |
k |
主机 |
输入 |
sub(A) 的列数。 |
alpha |
主机 |
输入 |
<type> scalar used for multiplication. |
a |
设备 |
输入 |
指向全局矩阵 A 的局部部分的第一个条目的指针。 |
ia |
主机 |
输入 |
sub(A) 第一行的行索引。 |
ja |
主机 |
输入 |
sub(A) 第一列的列索引。 |
descA |
主机 |
输入 |
与全局矩阵 A 关联的矩阵描述符。 |
beta |
主机 |
输入 |
<type> scalar used for multiplication. |
c |
设备 |
输入/输出 |
指向全局矩阵 A 的局部部分的第一个条目的指针。 |
ic |
主机 |
输入 |
sub(C) 第一行的行索引。 |
jc |
主机 |
输入 |
sub(C) 第一列的列索引。 |
descC |
主机 |
输入 |
与全局矩阵 C 关联的矩阵描述符。 |
computeType |
主机 |
输入 |
cuBLAS 计算类型,用于计算。请参阅下表了解支持的组合。 |
d_work |
设备 |
输出 |
大小为 |
workspaceInBytesOnDevice |
主机 |
输入 |
例程所需的本地设备工作空间大小(以字节为单位),由 cublasMpSyrk_bufferSize() 提供。 |
h_work |
主机 |
输出 |
大小为 |
workspaceInBytesOnHost |
主机 |
输入 |
例程所需的本地主机工作空间大小(以字节为单位),由 cublasMpSyrk_bufferSize() 提供。 |
计算类型 |
标量类型 (alpha 和 beta) |
Atype/Btype |
Ctype |
---|---|---|---|
CUBLAS_COMPUTE_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
|
CUBLAS_COMPUTE_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_C_64F |
CUDA_C_64F |
CUDA_C_64F |
computeType
参数仅用于内部矩阵-矩阵乘法。cublasMpSyrk_bufferSize
#
cublasMpStatus_t cublasMpSyrk_bufferSize(
cublasMpHandle_t handle,
cublasFillMode_t uplo,
cublasOperation_t trans,
int64_t n,
int64_t k,
const void* alpha,
const void* a,
int64_t ia,
int64_t ja,
cublasMpMatrixDescriptor_t descA,
const void* beta,
void* c,
int64_t ic,
int64_t jc,
cublasMpMatrixDescriptor_t descC,
cublasComputeType_t computeType,
size_t* workspaceSizeInBytesOnDevice,
size_t* workspaceSizeInBytesOnHost);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输入 |
cuBLASMp 库句柄。 |
uplo |
主机 |
输入 |
指示矩阵 C 存储的是下半部分还是上半部分,另一个对称部分不被引用,并从存储的元素中推断出来。 |
trans |
主机 |
输入 |
运算 op(A) 是非转置或转置。 |
n |
主机 |
输入 |
sub(A) 和 sub(C) 的行数。 |
k |
主机 |
输入 |
sub(A) 的列数。 |
alpha |
主机 |
输入 |
<type> scalar used for multiplication. |
a |
设备 |
输入 |
指向全局矩阵 A 的局部部分的第一个条目的指针。 |
ia |
主机 |
输入 |
sub(A) 第一行的行索引。 |
ja |
主机 |
输入 |
sub(A) 第一列的列索引。 |
descA |
主机 |
输入 |
与全局矩阵 A 关联的矩阵描述符。 |
beta |
主机 |
输入 |
<type> scalar used for multiplication. |
c |
设备 |
输入 |
指向全局矩阵 A 的局部部分的第一个条目的指针。 |
ic |
主机 |
输入 |
sub(C) 第一行的行索引。 |
jc |
主机 |
输入 |
sub(C) 第一列的列索引。 |
descC |
主机 |
输入 |
与全局矩阵 C 关联的矩阵描述符。 |
computeType |
主机 |
输入 |
cuBLAS 计算类型,用于计算。请参阅下表了解支持的组合。 |
workspaceInBytesOnDevice |
主机 |
输出 |
输出时,包含 cublasMpSyrk() 所需的本地设备工作空间大小(以字节为单位)。 |
workspaceInBytesOnHost |
主机 |
输出 |
输出时,包含 cublasMpSyrk() 所需的本地主机工作空间大小(以字节为单位)。 |
计算类型 |
标量类型 (alpha 和 beta) |
Atype/Btype |
Ctype |
---|---|---|---|
CUBLAS_COMPUTE_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
|
CUBLAS_COMPUTE_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_C_64F |
CUDA_C_64F |
CUDA_C_64F |
computeType
参数仅用于内部矩阵-矩阵乘法。cublasMpGeadd
#
cublasMpStatus_t cublasMpGeadd(
cublasMpHandle_t handle,
cublasOperation_t trans,
int64_t m,
int64_t n,
const void* alpha,
const void* a,
int64_t ia,
int64_t ja,
cublasMpMatrixDescriptor_t descA,
const void* beta,
void* c,
int64_t ic,
int64_t jc,
cublasMpMatrixDescriptor_t descC,
void* d_work,
size_t workspaceSizeInBytesOnDevice,
void* h_work,
size_t workspaceSizeInBytesOnHost);
\(C = \alpha\text{op}(A) + \beta C\)
\(\text{op}(A) = \left\{ \begin{matrix} A & {\text{if }\textsf{trans == $\mathrm{CUBLAS\_OP\_N}$}} \\ A^{T} & {\text{if }\textsf{trans == $\mathrm{CUBLAS\_OP\_T}$}} \\ A^{H} & {\text{if }\textsf{trans == $\mathrm{CUBLAS\_OP\_C}$}} \\ \end{matrix} \right.\)
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输入 |
cuBLASMp 库句柄。 |
trans |
主机 |
输入 |
非转置或(共轭)转置的运算 op(A)。 |
m |
主机 |
输入 |
sub(A) 和 sub(C) 的行数。 |
n |
主机 |
输入 |
sub(A) 和 sub(C) 的列数。 |
alpha |
主机 |
输入 |
<type> scalar used for multiplication. |
a |
设备 |
输入 |
指向全局矩阵 A 的局部部分的第一个条目的指针。 |
ia |
主机 |
输入 |
sub(A) 第一行的行索引。 |
ja |
主机 |
输入 |
sub(A) 第一列的列索引。 |
descA |
主机 |
输入 |
与全局矩阵 A 关联的矩阵描述符。 |
beta |
主机 |
输入 |
<type> scalar used for multiplication. |
c |
设备 |
输入/输出 |
指向全局矩阵 C 的局部部分的第一个条目的指针。 |
ic |
主机 |
输入 |
sub(C) 第一行的行索引。 |
jc |
主机 |
输入 |
sub(C) 第一列的列索引。 |
descC |
主机 |
输入 |
与全局矩阵 C 关联的矩阵描述符。 |
d_work |
设备 |
输出 |
大小为 |
workspaceInBytesOnDevice |
主机 |
输入 |
例程所需的本地设备工作空间大小(以字节为单位),由 cublasMpGeadd_bufferSize() 提供。 |
h_work |
主机 |
输出 |
大小为 |
workspaceInBytesOnHost |
主机 |
输入 |
例程所需的本地主机工作空间大小(以字节为单位),由 cublasMpGeadd_bufferSize() 提供。 |
A 的数据类型 |
computeType |
输出数据类型 |
---|---|---|
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_64F |
CUDA_C_64F |
CUDA_C_64F |
cublasMpGeadd_bufferSize
#
cublasMpStatus_t cublasMpGeadd_bufferSize(
cublasMpHandle_t handle,
cublasOperation_t trans,
int64_t m,
int64_t n,
const void* alpha,
const void* a,
int64_t ia,
int64_t ja,
cublasMpMatrixDescriptor_t descA,
const void* beta,
void* c,
int64_t ic,
int64_t jc,
cublasMpMatrixDescriptor_t descC,
size_t* workspaceSizeInBytesOnDevice,
size_t* workspaceSizeInBytesOnHost);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输入 |
cuBLASMp 库句柄。 |
trans |
主机 |
输入 |
非转置或(共轭)转置的运算 op(A)。 |
m |
主机 |
输入 |
sub(A) 和 sub(C) 的行数。 |
n |
主机 |
输入 |
sub(A) 和 sub(C) 的列数。 |
alpha |
主机 |
输入 |
<type> scalar used for multiplication. |
a |
设备 |
输入 |
指向全局矩阵 A 的局部部分的第一个条目的指针。 |
ia |
主机 |
输入 |
sub(A) 第一行的行索引。 |
ja |
主机 |
输入 |
sub(A) 第一列的列索引。 |
descA |
主机 |
输入 |
与全局矩阵 A 关联的矩阵描述符。 |
beta |
主机 |
输入 |
<type> scalar used for multiplication. |
c |
设备 |
输入 |
指向全局矩阵 C 的局部部分的第一个条目的指针。 |
ic |
主机 |
输入 |
sub(C) 第一行的行索引。 |
jc |
主机 |
输入 |
sub(C) 第一列的列索引。 |
descC |
主机 |
输入 |
与全局矩阵 C 关联的矩阵描述符。 |
workspaceInBytesOnDevice |
主机 |
输出 |
输出时,包含 cublasMpGeadd() 所需的本地设备工作空间大小(以字节为单位)。 |
workspaceInBytesOnHost |
主机 |
输出 |
输出时,包含 cublasMpGeadd() 所需的本地主机工作空间大小(以字节为单位)。 |
A 的数据类型 |
computeType |
输出数据类型 |
---|---|---|
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_64F |
CUDA_C_64F |
CUDA_C_64F |
cublasMpTradd
#
cublasMpStatus_t cublasMpTradd(
cublasMpHandle_t handle,
cublasFillMode_t uplo,
cublasOperation_t trans,
int64_t m,
int64_t n,
const void* alpha,
const void* a,
int64_t ia,
int64_t ja,
cublasMpMatrixDescriptor_t descA,
const void* beta,
void* c,
int64_t ic,
int64_t jc,
cublasMpMatrixDescriptor_t descC,
void* d_work,
size_t workspaceSizeInBytesOnDevice,
void* h_work,
size_t workspaceSizeInBytesOnHost);
\(C = \alpha\text{op}(A) + \beta C\)
\(\text{op}(A) = \left\{ \begin{matrix} A & {\text{if }\textsf{trans == $\mathrm{CUBLAS\_OP\_N}$}} \\ A^{T} & {\text{if }\textsf{trans == $\mathrm{CUBLAS\_OP\_T}$}} \\ A^{H} & {\text{if }\textsf{trans == $\mathrm{CUBLAS\_OP\_C}$}} \\ \end{matrix} \right.\)
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输入 |
cuBLASMp 库句柄。 |
uplo |
主机 |
输入 |
指示矩阵 C 存储的是下半部分还是上半部分,另一部分不被引用,并从存储的元素中推断出来。 |
trans |
主机 |
输入 |
非转置或(共轭)转置的运算 op(A)。 |
m |
主机 |
输入 |
sub(A) 和 sub(C) 的行数。 |
n |
主机 |
输入 |
sub(A) 和 sub(C) 的列数。 |
alpha |
主机 |
输入 |
<type> scalar used for multiplication. |
a |
设备 |
输入 |
指向全局矩阵 A 的局部部分的第一个条目的指针。 |
ia |
主机 |
输入 |
sub(A) 第一行的行索引。 |
ja |
主机 |
输入 |
sub(A) 第一列的列索引。 |
descA |
主机 |
输入 |
与全局矩阵 A 关联的矩阵描述符。 |
beta |
主机 |
输入 |
<type> scalar used for multiplication. |
c |
设备 |
输入/输出 |
指向全局矩阵 C 的局部部分的第一个条目的指针。 |
ic |
主机 |
输入 |
sub(C) 第一行的行索引。 |
jc |
主机 |
输入 |
sub(C) 第一列的列索引。 |
descC |
主机 |
输入 |
与全局矩阵 C 关联的矩阵描述符。 |
d_work |
设备 |
输出 |
大小为 |
workspaceInBytesOnDevice |
主机 |
输入 |
例程所需的本地设备工作空间大小(以字节为单位),由 cublasMpTradd_bufferSize() 提供。 |
h_work |
主机 |
输出 |
大小为 |
workspaceInBytesOnHost |
主机 |
输入 |
例程所需的本地主机工作空间大小(以字节为单位),由 cublasMpTradd_bufferSize() 提供。 |
A 的数据类型 |
computeType |
输出数据类型 |
---|---|---|
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_64F |
CUDA_C_64F |
CUDA_C_64F |
cublasMpTradd_bufferSize
#
cublasMpStatus_t cublasMpTradd_bufferSize(
cublasMpHandle_t handle,
cublasFillMode_t uplo,
cublasOperation_t trans,
int64_t m,
int64_t n,
const void* alpha,
const void* a,
int64_t ia,
int64_t ja,
cublasMpMatrixDescriptor_t descA,
const void* beta,
void* c,
int64_t ic,
int64_t jc,
cublasMpMatrixDescriptor_t descC,
size_t* workspaceSizeInBytesOnDevice,
size_t* workspaceSizeInBytesOnHost);
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
handle |
主机 |
输入 |
cuBLASMp 库句柄。 |
uplo |
主机 |
输入 |
指示矩阵 C 存储的是下半部分还是上半部分,另一部分不被引用,并从存储的元素中推断出来。 |
trans |
主机 |
输入 |
非转置或(共轭)转置的运算 op(A)。 |
m |
主机 |
输入 |
sub(A) 和 sub(C) 的行数。 |
n |
主机 |
输入 |
sub(A) 和 sub(C) 的列数。 |
alpha |
主机 |
输入 |
<type> scalar used for multiplication. |
a |
设备 |
输入 |
指向全局矩阵 A 的局部部分的第一个条目的指针。 |
ia |
主机 |
输入 |
sub(A) 第一行的行索引。 |
ja |
主机 |
输入 |
sub(A) 第一列的列索引。 |
descA |
主机 |
输入 |
与全局矩阵 A 关联的矩阵描述符。 |
beta |
主机 |
输入 |
<type> scalar used for multiplication. |
c |
设备 |
输入 |
指向全局矩阵 C 的局部部分的第一个条目的指针。 |
ic |
主机 |
输入 |
sub(C) 第一行的行索引。 |
jc |
主机 |
输入 |
sub(C) 第一列的列索引。 |
descC |
主机 |
输入 |
与全局矩阵 C 关联的矩阵描述符。 |
workspaceInBytesOnDevice |
主机 |
输出 |
输出时,包含 cublasMpTradd() 所需的本地设备工作空间大小(以字节为单位)。 |
workspaceInBytesOnHost |
主机 |
输出 |
输出时,包含 cublasMpTradd() 所需的本地主机工作空间大小(以字节为单位)。 |
A 的数据类型 |
computeType |
输出数据类型 |
---|---|---|
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_32F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_R_64F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_32F |
CUDA_C_64F |
CUDA_C_64F |
CUDA_C_64F |