NNSmith:深度学习框架与编译器的自动化验证利器
项目介绍
🌟 NNSmith 🌟 是一个随机深度神经网络(DNN)生成器和模糊测试基础设施,专为自动验证深度学习框架和编译器而设计。通过生成多样化的DNN模型,NNSmith能够帮助开发者发现和修复框架及编译器中的潜在问题,从而提升系统的稳定性和可靠性。
项目技术分析
NNSmith的核心技术包括:
- 随机DNN生成:NNSmith能够生成多种类型的DNN模型,涵盖不同的深度学习框架和编译器。
- 模糊测试:通过生成大量的随机模型,NNSmith能够对目标框架和编译器进行全面的测试,发现潜在的错误和漏洞。
- 多框架支持:NNSmith支持多种主流深度学习框架和编译器,包括TensorFlow、PyTorch、ONNX、TensorRT等。
- 配置管理:使用Hydra进行配置管理,方便用户自定义测试参数和环境。
项目及技术应用场景
NNSmith适用于以下场景:
- 深度学习框架开发:开发者可以使用NNSmith对新开发的深度学习框架进行全面测试,确保其稳定性和兼容性。
- 编译器验证:对于深度学习编译器的开发者,NNSmith能够生成多样化的DNN模型,帮助发现编译器中的潜在问题。
- 自动化测试:在持续集成(CI)环境中,NNSmith可以作为自动化测试工具,定期对深度学习框架和编译器进行测试,确保其长期稳定运行。
项目特点
- 多样化的模型生成:NNSmith能够生成多种类型的DNN模型,涵盖不同的网络结构和参数配置,确保测试的全面性。
- 多框架支持:支持多种主流深度学习框架和编译器,方便用户在不同环境中进行测试。
- 自动化测试:通过生成大量的随机模型,NNSmith能够自动化地对目标框架和编译器进行测试,节省开发者的时间和精力。
- 易于集成:NNSmith提供了简单的安装和使用方式,可以轻松集成到现有的开发和测试流程中。
快速开始
安装最新代码(GitHub HEAD)
pip install pip --upgrade
pip install "nnsmith[torch,onnx] @ git+https://github.com/ise-uiuc/nnsmith@main" --upgrade
生成随机模型
# 生成一个随机模型并保存到 "nnsmith_outputs/*"
nnsmith.model_gen model.type=onnx debug.viz=true
了解更多
相关论文
- 📜 NeuRI: Diversifying DNN Generation via Inductive Rule Inference
- 📜 NNSmith: Generating Diverse and Valid Test Cases for Deep Learning Compilers
NNSmith是一个强大的工具,能够帮助深度学习框架和编译器的开发者提升系统的稳定性和可靠性。无论你是框架开发者还是编译器开发者,NNSmith都能为你提供有力的支持。快来尝试吧!