7个版本
0.1.2 | 2023年6月23日 |
---|---|
0.1.2-rc3 | 2023年2月24日 |
0.1.1 | 2022年4月2日 |
#349 in 科学
每月75次下载
用于 2 包
1MB
22K SLoC
包含(神秘的autoconf代码,9KB)mcl/deps/libatomic_ops/configure.ac,(神秘的autoconf代码,6KB)mcl/configure.ac
libmcl-sys
此系统包通过使用Bindgen提供对Minos计算库(MCL)的Rust语言绑定。强烈建议您不要直接使用libmcl-sys,而是使用更高层(且更安全)的mcl-rs包
构建需求
- Rust
- Cargo
- Clang
- OpenCL
- Autotools
- MCL(手动安装或通过
cargo install mcl_sched
安装)
如何构建(在Linux上测试)且没有先构建MCL
-
将环境变量
OCL_PATH_INC
和OCL_PATH_LIB
设置为OpenCL的include
和lib
(或lib64
)目录的路径。注意:如果OpenCL在系统目录中,这可能不需要 -
安装mcl_sched
cargo install mcl_sched
-
使用Cargo构建
cargo build --release
如何构建(在Linux上测试)且手动构建了MCL
-
将环境变量
MCL_PATH
设置为MCL安装目录的路径。例如,在bash中使用export MCL_PATH=/path/to/mcl/install/
Cargo将根据该路径尝试找到
lib/
和include/
目录。 -
将环境变量
OCL_PATH_INC
和OCL_PATH_LIB
设置为OpenCL的include
和lib
(或lib64
)目录的路径。注意:如果OpenCL在系统目录中,这可能不需要
-
使用Cargo构建
cargo build --release
这将在
target/release/
目录中产生一个.rlib
文件。
如何测试
libmcl-sys附带一组单元测试,可以通过运行来执行
cargo test --release
提醒:在执行测试时,应运行MCL调度程序。如果您通过cargo安装了mcl_sched,则可以直接调用。
mcl_sched
如果您手动构建了mcl,可能需要指定mcl_sched二进制文件的路径。
功能标志
我们公开了三个功能标志,大致对应于底层MCL C库的配置选项。
- mcl_debug - 启用底层C库的调试日志输出
- shared_mem - 启用进程间主机共享内存缓冲区
- pocl_extensions - 启用基于设备的进程间共享内存缓冲区,需要已成功安装修补版的POCL 1.8(请参阅https://github.com/pnnl/mcl/tree/dev#using-custom-pocl-extensions以获取更多信息)
状态
MCL(以及libmcl-sys)是一个研究原型,仍在开发中,因此并非所有预期的功能都已实现。
联系方式
如果您有任何关于MCL的问题,请联系PNNL的Roberto Gioiosa([email protected])。有关Rust相关问题的咨询,请联系PNNL的Ryan Friese([email protected])
MCL-Rust团队
Roberto Gioiosa
Ryan Friese
Polykarpos Thomadakis
许可证
本项目受BSD许可证的许可 - 请参阅LICENSE文件以获取详细信息。
参考文献
如果您想引用MCL,请使用以下参考文献
- Roberto Gioiosa,Burcu O. Mutlu,Seyong Lee,Jeffrey S. Vetter,Giulio Picierro,和Marco Cesati. 2020. The Minos Computing Library:针对极端异构系统的有效并行编程。在13届年度通用图形处理单元(GPGPU '20)研讨会论文集中。纽约,纽约,美国,ACM计算机协会,第1-10页。DOI:https://doi.org/10.1145/3366428.3380770
其他利用或描述MCL其他功能的成果
- A. V. Kamatar,R. D. Friese和R. Gioiosa,“针对可扩展异构环境的局部性感知调度”,2020年IEEE/ACM国际超级计算机运行时和操作系统研讨会(ROSS),2020年,第50-58页,doi:10.1109/ROSS51935.2020.00011。
- Rizwan Ashraf和Roberto Gioiosa,“探索在科学应用中使用新型空间加速器的用途”,2022年ACM/SPEC国际性能工程会议(ICPE),2022年。
无运行时依赖
~0–2MB
~37K SLoC