1. 概述
本文档包含了曦云® C500、C500-P、C500X、C550 OAM1.5、C550 OAM2.0和曦思® N260的数据加速平台交付软件的特性、已知问题和使用限制等。
下表列出了mcPy/mcDF/mcFaiss/MX-DCM的软件包版本与兼容的MXMACA软件包版本。
组件名称 |
版本号 |
兼容的MXMACA软件包最新版本 |
兼容的MXMACA软件包最低版本 |
|---|---|---|---|
mcPy |
2.32.0.3 |
SDK:2.32.0.6 Driver:2.32.0.6 |
SDK:2.25.2.9 Driver:2.25.2.8 |
mcDF |
2.32.0.3 |
SDK:2.32.0.6 Driver:2.32.0.6 |
SDK:2.24.0.12 Driver:2.24.0.10 |
mcFaiss |
2.32.0.3 |
SDK:2.32.0.6 Driver:2.32.0.6 |
SDK:2.24.0.12 Driver:2.24.0.10 |
MX-DCM |
2.32.0.3 |
SDK:2.32.0.6 Driver:2.32.0.6 |
SDK:2.29.0.19 Driver:2.29.0.13 |
mcPy/mcDF/mcFaiss/MX-DCM软件包名称的详细信息,参见对应的使用手册文档。
1.1. 交付内容
此次发布包含以下内容:
mcPy软件安装包
mcDF软件安装包
mcFaiss软件安装包
MX-DCM软件安装包
《曦云®系列通用计算GPU mcPy使用手册》
《曦云®系列通用计算GPU mcDF使用手册》
《曦云®系列通用计算GPU mcFaiss使用手册》
《曦云®系列通用计算GPU MX-DCM使用手册》
2. 新增特性及变更
本章列出历次发布的新增特性及变更。
2.1. V2.32.0.3
2.1.1. mcPy v2.32.0.3
新增支持MCCL功能,修复了reported bug。
2.1.2. mcDF v2.32.0.3
无新增和变更特性,修复了reported bug。
2.1.3. mcFaiss v2.32.0.3
无新增和变更特性,修复了reported bug。
2.1.4. MX-DCM v2.32.0.3
新增了MCCL压力测试和NIC网卡诊断功能。
2.2. V2.31.0.4
2.2.1. mcPy v2.31.0.4
无新增和变更特性,修复了reported bug。
2.2.2. mcDF v2.31.0.4
Dask-mcDF wheel包集成到mcDF软件包,修复了reported bug。
2.2.3. mcFaiss v2.31.0.4
无新增和变更特性,修复了reported bug。
2.3. V2.1.8.5+b2.29.0.15,v2.8.0.9+b2.29.0.15,2.1.12.1-2.29.0.3
2.3.1. mcPy v2.1.8.5+b2.29.0.15
无新增和变更特性,修复了reported bug。
2.3.2. mcDF v2.1.8.5+b2.29.0.15
新增支持Python3.10,修复了reported bug。
2.3.3. Dask-mcDF v2.1.8.5+b2.29.0.15
新增支持Python3.10,修复了reported bug。
2.3.4. mcFaiss v2.8.0.9+b2.29.0.15
新增支持Python3.10,修复了reported bug。
2.3.5. MX-DCM 2.1.12.1-2.29.0.3
新增支持MX-DCM工具。
2.4. V2.1.8.2+b2.27.0.11和v2.8.0.7+b2.27.0.11
2.4.1. mcPy v2.1.8.2+b2.27.0.11
新增支持Python3.10,修复了reported bug。
2.4.2. mcDF v2.1.8.2+b2.27.0.11
无新增和变更特性,修复了reported bug。
2.4.3. Dask-mcDF v2.1.8.2+b2.27.0.11
无新增和变更特性,修复了reported bug。
2.4.4. mcFaiss v2.8.0.7+b2.27.0.11
无新增和变更特性,修复了reported bug。
2.5. V2.1.7.9+b2.25.2.9和v2.8.0.5+b2.25.2.9
2.5.1. mcPy v2.1.7.9+b2.25.2.9
无新增和变更特性,修复了reported bug。
2.5.2. mcDF v2.1.7.9+b2.25.2.9
无新增和变更特性,修复了reported bug。
2.5.3. Dask-mcDF v2.1.7.9+b2.25.2.9
无新增和变更特性,修复了reported bug。
2.5.4. mcFaiss v2.8.0.5+b2.25.2.9
无新增和变更特性,修复了reported bug。
2.6. V2.1.7.2+b2.24.0.11和v2.8.0.3+b2.24.0.11
2.6.1. mcPy v2.1.7.2+b2.24.0.11
无新增和变更特性,修复了reported bug。
2.6.2. mcDF v2.1.7.2+b2.24.0.11
无新增和变更特性,修复了reported bug。
2.6.3. Dask-mcDF v2.1.7.2+b2.24.0.11
无新增和变更特性,修复了reported bug。
2.6.4. mcFaiss v2.8.0.3+b2.24.0.11
同步Faiss 1.8.0的版本改动,修复了reported bug。
2.6.5. spark-mxmap v2.1.7.2+b2.24.0.11
新增功能,首次发布。spark-mxmap 提供Spark on GPU插件。主要支持Spark SQL on GPU的执行;支持Spark XGBoost机器学习框架在GPU上的模型训练等,并在用户手册上进行了示例说明。
2.7. v2.1.6.4+b2.23.0.20和v2.7.4.3+b2.23.0.18
2.7.1. mcPy v2.1.6.4+b2.23.0.20
无新增和变更特性,修复了reported bug。
2.7.2. mcDF v2.1.6.4+b2.23.0.20
无新增和变更特性,修复了reported bug。
2.7.3. Dask-mcDF v2.1.6.4+b2.23.0.20
新增功能,首次发布。
2.7.4. mcFaiss v2.7.4.3+b2.23.0.18
无新增和变更特性,修复了reported bug。
2.8. V2.1.6.1+b2.22.0.5
无新增和变更特性,修复了reported bug。
2.9. V2.1.5.6
无新增和变更特性,修复了reported bug。
2.10. V2.1.3.9
2.10.1. mcPy
优化部分算子性能,修复reported bug。
2.10.2. mcDF
无新增和变更特性,修复reported bug。
2.11. V2.1.2.4
2.11.1. mcPy
优化部分算子性能,修复reported bug。
2.11.2. mcDF
优化IO性能,修复reported bug。
2.12. V2.1.1.4
无新增和变更特性,修复reported bug。
2.13. V2.1.1.1
无新增和变更特性,修复reported bug。
2.14. V2.0.12.3
2.14.1. mcDF
新增支持IO压缩和解压缩功能如下:
模块 |
Reader(解压缩算法) |
Writer(压缩算法) |
|---|---|---|
CSV |
AUTO |
NA |
GZIP |
||
ZIP |
||
BZIP2 |
||
JSON |
AUTO |
NA |
GZIP |
||
ZIP |
||
BZIP2 |
||
ORC |
ZLIB |
SNAPPY |
SNAPPY |
||
Parquet |
GZIP |
SNAPPY |
SNAPPY |
||
BROTLI |
||
AVRO |
DEFLATE |
NA |
SNAPPY |
2.15. V2.0.11.1
2.15.1. mcPy
mcpy.fft.irfft、mcpy.fft.hfft、mcpy.fft.irfftn、mcpy.fft.irfft2接口功能已修复正常。
在compute type 为
COMPUTE_TYPE_TF32时的mcpy.matmul接口功能已修复正常。
2.16. V2.0.10.1
2.16.1. mcPy
mcPy支持ndarray数据对象并提供相关的API接口,这些API接口与对应的NumPy API兼容。mcPy支持:
N维数组(ndarray):
mcpy.ndarray数据类型(dtypes):boolean(
bool_)、integer(int8,int16,int32,int64,uint8,uint16,uint32,uint64)、float(float16,float32,float64)和complex(complex64)支持与
numpy.ndarray相同的编程方式,包括基础索引、高级索引和广播NumPy例程
模块级函数:
mcpy.*线性代数函数:
mcpy.linalg.*快速傅里叶变换:
mcpy.fft.*随机数生成器:
mcpy.random.*
2.16.2. mcDF
mcDF支持包括loading、joining、aggregating、filtering以及其他数据操作接口。提供的API接口类似pandas对应功能的API接口。
2.16.3. mcFaiss
mcFaiss提供了Faiss的所有功能。支持多种向量搜索算法,包括IVF,LSH,PQ,HNSW等。支持多种语言的接口,包括Python,C++等。支持多种向量数据的应用,包括图像检索,文本检索,语音等。
3. 已知问题
模块 |
问题说明 |
|---|---|
mcDF |
不支持complex128和decimal128数据类型 |
暂时不支持读取带时间戳的orc文件 |
|
与之前版本相比,在C500上mcDF性能会下降5%左右 |
|
mcFaiss |
CPU上LSH相关索引的精度在特殊软件环境下表现不一致。受此影响,部分特殊环境下CPU索引的测试代码会失败。对于配合C500使用的GPU索引,没有影响 |
OpenBLAS默认最大核数限制为50,如果mcFaiss的运行环境中CPU核数超过512,运行mcFaiss有一定概率会导致coredump。 如果运行异常信息中含有如下提示信息
|
|
与之前版本相比,在C550上使用IVFPQ基于某些数据集进行索引时,性能会下降10%以上 |
|
Docker环境mcFaiss Performance整体比Host降低10%以上 |
|
mcPy |
与之前版本相比,在C500上mcPy性能会下降10%以上 |
4. 使用限制
4.1. mcPy使用限制
1维数组的size不能超过2^32
受限于底层硬件设计的限制以及mcPy的软件实现,在mcPy中参与计算的1维数组的size 不能超过2^32。如果超出该限制,可能会导致计算错误或者抛出Runtime Error异常。
不支持单机多卡和多机多卡
当前版本mcPy不支持单机多卡和多机多卡参与同一个API调用。但在单机多卡和多机多卡运行环境中,可以选择单个GPU卡运行mcPy。
RawKernel()不支持enable_cooperative_group=True
当前版本mcPy不支持 mcpy.RawKernel() 接口参数中设置 enable_cooperative_group=True。若设置,会导致kernel编译失败。
融合内核中不支持grid synchronization
当前版本mcPy不支持在融合算子中使能grid synchronization。若使能grid synchronization,将导致算子融合失败。
RawKernel代码中不支持动态并行
当前版本中,如果kernel代码中使用了动态并行(dynamic parallelism)特性,在调用mcrtc进行编译时将会报错。
RawKernel中不支持模板特化
当前版本中,如果kernel代码中使用了模板特化(template specializations)特性,在进行运行时编译时将会报错。
不支持图模式
当前版本mcPy不支持使用图模式编程。
thrust.count()不支持共享内存
当前版本mcPy不支持向 cupyx.jit.thrust.count() 传递共享内存参数,即函数的 first 和 last 两个参数不能是共享内存对象,否则会产生运行时非法地址错误。
4.2. mcDF使用限制
不支持Decimal128数据类型
当前版本受限于底层软件层限制,mcDF在所有API接口中不支持Decimal128数据类型。
不支持Python层用户自定义函数
当前版本mcDF/Dask-mcDF不支持在Python层使用用户自定义函数。受此功能影响,将导致如下结果:
API |
限制说明 |
|---|---|
Series.apply |
功能无法正常执行 |
Series.map |
不支持map lamba函数功能 |
DataFrame.apply |
功能无法正常执行 |
DataFrame.applymap |
功能无法正常执行 |
DataFrame.apply_chunks |
将apply函数转移到CPU上执行,无法通过GPU加速 |
DataFrame.apply_rows |
将apply函数转移到CPU上执行,无法通过GPU加速 |
Rolling.apply |
功能无法正常执行 |
GroupBy.apply |
将apply函数转移到CPU上执行,无法通过GPU加速 |
GroupBy.agg |
将apply函数转移到CPU上执行,无法通过GPU加速 |
GroupBy. apply_grouped |
将apply函数转移到CPU上执行,无法通过GPU加速 |
SeriesGroupBy.aggregate |
将apply函数转移到CPU上执行,无法通过GPU加速 |
DataFrameGroupBy.aggregate |
将apply函数转移到CPU上执行,无法通过GPU加速 |
DataFrameGroupBy.transform |
将apply函数转移到CPU上执行,无法通过GPU加速 |
GroupBy.pipe |
将apply函数转移到CPU上执行,无法通过GPU加速 |
mcDF-c对mcDF的影响
在安装mcDF-c后,由于配置受到影响,mcDF不能正常加载组件。建议在使用mcDF时,不要同时安装mcDF-c。
4.3. mcFaiss使用限制
不支持NumPy>=2和SciPy>=2的版本
当前版本受限于底层软件层,mcFaiss whl package依赖的NumPy和SciPy版本都要小于2,否则会报错误信息“All ufuncs must have type ‘numpy.ufunc’”。
4.4. MX-DCM使用限制
NIC网卡诊断跨机器测试,
--test-mode2指定server时可能会遇到产生的socket address乱码MCCL压力测试,
-j查看job信息显示测试时间与设置压力测试时间不一致nic 命令
--gpu-id异常值处理有问题,以及使用Ctrl+C之后端口号监听未停止,会一直占用