1. 概述

本文档主要用于指导用户在使用曦云® 系列GPU时,如何安装部署和应用mcDF。

1.1. mcDF介绍

mcDF是一个基于曦云系列GPU,运算、处理DataFrame数据对象的Python计算库。 mcDF提供包括加载、连接、聚合、筛选以及其他数据操作接口,提供的API接口类似pandas对应功能的API接口,熟悉pandas库的数据工程师可以轻松地将基于pandas的Python应用迁移到mcDF上。

mcDF-c是mcDF的C++版本,包含一系列动态链接库,覆盖mcDF大部分的功能和操作接口。

Dask-mcDF允许在分布式GPU环境中进行高性能的数据处理。

1.2. 软件包

1.2.1. 软件包信息

mcDF提供了 maca-mcdf-<VERSION>-linux-x86_64.tar.xz,可以使用命令 tar -xJf 进行解压,解压后可获得依赖的mcPy二进制软件包和mcDF二进制软件包。

mcPy二进制软件包的说明,参见《曦云® 系列通用GPU mcPy使用手册》。mcDF二进制软件包的信息说明,参见表 1.1

表 1.1 软件包

软件包类型

文件名示例

说明

Python wheel包

mcdf-x.y.z.n-cp38-cp38-linux_86_64.whl

适用于Python 3.8的mcDF Python二进制扩展包

Python wheel包

mcdf-x.y.z.n-cp310-cp310-linux_86_64.whl

适用于Python 3.10的mcDF Python二进制扩展包

Python wheel包

mcpy-x.y.z.n-cp38-cp38-linux_86_64.whl

适用于Python 3.8的mcPy Python二进制扩展包

Python wheel包

mcpy-x.y.z.n-cp310-cp310-linux_86_64.whl

适用于Python 3.10的mcPy Python二进制扩展包

Python wheel包

numbax-x.y.z.n-cp38-cp38-linux_86_64.whl

适用于Python 3.8的numbax Python二进制扩展包

Python wheel包

numbax-x.y.z.n-cp310-cp310-linux_86_64.whl

适用于Python 3.10的numbax Python二进制扩展包

Python wheel包

rmmx-x.y.z.n-cp38-cp38-linux_86_64.whl

适用于Python 3.8的rmmx Python二进制扩展包

Python wheel包

rmmx-x.y.z.n-cp310-cp310-linux_86_64.whl

适用于Python 3.10的rmmx Python二进制扩展包

Python wheel包

dask_mcdf-x.y.z.n-py3-none-any.whl

适用于Python 3.8或3.10的Dask-mcDF Python二进制扩展包

Python wheel包

dask_maca-x.y.z.n-py3-none-any.whl

适用于Python 3.8或3.10的Dask-MACA Python二进制扩展包

deb二进制发布包

mcdf-x.y.z.n-linux.x86_64.deb

适用于Ubuntu等使用deb包管理的系统

rpm二进制发布包

mcdf-x.y.z.n-linux.x86_64.rpm

适用于CentOS等使用rpm包管理的系统

备注

  • x.y.z.n表示对应包的软件发布版本。

  • mcDF运行中依赖mcPy、numbax和rmmx。

  • 当前支持x86_64平台的Python 3.8和3.10,请选取适配具体Python版本的软件包。

1.2.2. 软件包内容

mcDF C++二进制软件包将会在 /opt/mxmap 路径下安装相关的二进制开发库及头文件,以 /opt/mxmap 为起始路径,可以得到如下的文件内容:

.
├── include
│     ├── cudf
│     │     ├── aggregation.hpp
│     │     ├── ast
│     │     ├── ......
│     │     └── unary.hpp
│     ├── cudf_jni
│     │     ├── ColumnViewJni.hpp
│     │     └── ......
│     └── ......
└── lib
      ├── cmake
      │     └── cudf
      │           ├── cudf-config.cmake
      │           ├── cudf-targets.cmake
      │           └── ......
      ├── libcudf.a
      ├── libcudf.so
      └── ......
  • include/cudf/ 目录包含了mcDF所有的头文件,include/cudf_jni 是mcDF的JNI头文件

  • lib/libcudf.a 文件是静态库,lib/libcudf.so 文件是动态链接库

  • lib/cmake/cudf 目录中的 cudf-config.cmakecudf-targets.cmake 等是使用CMake配置mcDF的配置文件,在 CMakelists.txt 中可以直接使用 find_package 引入mcDF动态库以及头文件