nvGRAPH API参考分析(一)
本文通过描述nvGRAPH库函数的输入/输出参数,数据类型和错误代码来指定其行为。
除以下内容外,所有nvGRAPH库返回值 NVGRAPH_STATUS_SUCCESS表示当前的API调用失败,用户应重新配置以更正该问题。可能的返回值定义如下:
返回值
2. nvGRAPH图拓扑类型
nvGRAPH将图形的拓扑(连接性)与值分开。为了简化拓扑的指定,nvGRAPH支持三种拓扑类型。每种拓扑类型都定义了自己的存储格式,这种存储格式对某些操作有好处,但对其它操作却不利。某些算法只能与特定的拓扑类型一起使用,参阅算法说明以获取支持的拓扑列表。
Typedef枚举
{
NVGRAPH_CSR_32 = 0,
NVGRAPH_CSC_32 = 1,
NVGRAPH_COO_32 = 2
} nvgraphTopologyType_t;
拓扑类型
图形拓扑结构用于设置或检索拓扑数据。用户应使用与所选拓扑类型相对应的结构。
用于 NVGRAPH_CSC_32 拓扑类型
struct nvgraphCSCTopology32I_st { int nvertices; int nedges; int *destination_offsets; int *source_indices; }; typedef struct nvgraphCSCTopology32I_st *nvgraphCSCTopology32I_t;
结构领域
4. nvgraphCSRTopology32I_t
用于 NVGRAPH_CSR_32 拓扑类型
struct nvgraphCSRTopology32I_st { int nvertices; int nedges; int *source_offsets; int *destination_indices; }; typedef struct nvgraphCSRTopology32I_st *nvgraphCSRTopology32I_t;
用于 NVGRAPH_COO_32 拓扑类型
struct nvgraphCOOTopology32I_st { int nvertices; int nedges; int *source_indices; int *destination_indices; nvgraphTag_t tag; }; typedef struct nvgraphCOOTopology32I_st *nvgraphCOOTopology32I_t;
6. Function nvgraphGetProperty()
nvgraphStatus_t nvgraphGetProperty(libraryPropertyType type, int *value);
返回库的属性值,例如版本号。
nvgraphStatus_t
nvgraphCreate(nvgraphHandle_t * handle);
仅创建一个不透明的句柄,并在主机上分配小型数据结构。所有nvGRAPH函数都使用此句柄,因此应先调用此函数,然后再对库进行任何其它调用。
nvgraphStatus_t
nvgraphDestroy(nvgraphHandle_t handle);
销毁使用创建的手柄 nvgraphCreate()。这将自动释放使用此句柄创建的所有已分配内存对象,例如任何图形及其顶点和边的数据。在调用nvgraphDestroy()之后,此句柄的任何后续用法将无效。在调用nvgraphDestroy()之后,对nvGRAPH API的任何调用都会返回“ NVGRAPH_UNINITIALIZED”错误。
9. Function nvgraphCreateGraphDescr()
nvgraphStatus_t
nvgraphCreateGraphDescr(nvgraphHandle_t handle, nvgraphGraphDescr_t *descrG);
为图形结构创建不透明的句柄。图形上的任何操作都需要此句柄。
10. Function nvgraphDestroyGraphDescr()
nvgraphStatus_t
nvgraphDestroyGraphDescr(nvgraphHandle_t handle, nvgraphGraphDescr_t descrG);
销毁使用nvgraphCreateGraphDescr()创建的图形句柄。在销毁nvGRAPH库句柄之前,不会释放为此图形分配的任何内存。调用销毁图表的算子将返回NVGRAPH_STATUS_INVALID_VALUE。
11. Function nvgraphSetGraphStructure()
nvgraphStatus_t
nvgraphSetGraphStructure( nvgraphHandle_t handle, nvgraphGraphDescr_t descrG,
void* topologyData, nvgraphTopologyType_t TType);
此调用为给定的图形描述符设置拓扑数据和拓扑类型。图拓扑仅应设置一次。用户应选择一种受支持的拓扑,为图结构初始化填写相应的结构,并提供指向该结构的指针。拓扑数据和类型在参数中给出拓扑数据 和 类型。通常,图拓扑数据包括多个顶点,多个边和连接性信息。有关详细信息,请参见相应拓扑结构的描述。