Advanced Micro Devices选择CMake改进AMD Radeon™软件

2022年4月26日
AMD软件:肾上腺素版

Advanced Micro Devices,Inc.(AMD)专注于现代计算,提供领先的高性能和自适应处理器技术。AMD结合了CPU、GPU、FPGA、自适应SoC和深入的软件专业知识,为云、边缘和终端设备提供领先的计算平台。

AMD软件:肾上腺素版是DirectX®、Vulkan®和OpenGL®在Radeon™GPU上运行的原因。现代3D GPU驱动程序堆栈非常庞大。每当问题提交给AMD的驱动程序工程师时,他们必须进行故障排除,以发现驱动程序堆栈中的错误所在。考虑到现代GPU和API的复杂性,必须具备调试方面的专业知识。

AMD Software:Adrenalin Edition堆栈自AMD的ATI时代就已经存在。代码库非常庞大,历史悠久。它也有自己的构建系统。处理专有构建系统是一个巨大的负担。最大的压力之一是Vulkan驱动程序,它迫使开发人员为内部和开源版本维护构建系统。这导致重复工作、CI时间过长、入职痛苦,并产生难以发现的错误。因此,AMD决定将DirectX和Khronos UMD(用户模式驱动程序)完全转换为CMake。

“这不仅仅是一项技术生活质量功能;CMake有助于您的业务。”

Juan Ramos,Advanced Micro Devices,Inc.高级软件开发工程师。

AMD软件:基于CMake的肾上腺素版

AMD的新项目默认使用CMake编写。CMake是C/C++的实际构建系统。你可以合理地期望工程师在进入你的公司之前就已经知道这一点,从而为你节省宝贵的资源。它可以灵活地生成Ninja和Visual Studio解决方案,这使得它成为Windows开发人员的最爱,无论是本地开发人员还是CI开发人员,在CI中,Ninjia都是一个简单的选择。CMake还使与客户共享代码变得非常容易。这两者都是AMD商业和哲学的核心部分。因此,AMD早就意识到CMake的强大功能,并为有机会转换DirectX和Khronos UMD而感到兴奋。

对开发人员工作流程的一个重大改进是CMake能够生成Ninja、Visual Studio、Makefile等。让您根据自己的环境或情况选择最适合工作的工具。另一个巨大的好处是在Visual Studio解决方案中使用IntelliSense。许多项目只是手动管理VisualStudio解决方案。这是不可能实现的,很容易成为CMake提供的最大生活质量改善。这还允许希望使用Visual Studio、Vim、VsCode和CLion的用户使用他们熟悉的工具。 

通过切换到CMake,AMD可以快速为客户提供新平台。任何熟悉Windows 11的人都可能知道WSA(Android的Windows子系统)。突然,DirectX®12 UMD不得不支持Android。如果AMD没有切换到CMake,我们的DX12驱动程序将慢得多,使我们的交付,并招致巨大的技术债务。它表明,甚至像DirectX驱动程序这样的软件也需要为跨平台开发做好准备。

收藏夹CMake功能

CMake为用户提供的最重要的工具之一是工具链文件。他们为AMD提供了与旧构建系统兼容所需的确切机制。这甚至没有提到CMake和Visual Studio带来的高质量生活功能。CMake的另一个关键特性是它能够生成代码并提供自定义构建目标。软件堆栈中的多个项目使用此功能来减少代码重复,改进工作流,并实现其他方式无法实现的功能。虽然总是有改进的余地,但令人惊讶的是,这个工具已经有多么强大了,这一描述甚至还没有达到应有的效果。

“我强烈建议您使用Kitware。如果您的组织需要迁移到CMake的帮助,这是一个显而易见的选择。”

Juan Ramos,Advanced Micro Devices,Inc.高级软件开发工程师。

外卖

AMD强烈建议使用Kitware。如果您的组织需要帮助迁移到CMake,这是一个显而易见的选择。在过渡期间,AMD实现了CMake的强大功能和灵活性。AMD想感谢CMake开发者和社区为该项目取得成功所做的贡献。CPPCON的谈话、博客帖子和高质量的文档只是锦上添花。AMD还想感谢AMD的Caixa Jiang、Rodney Andre和Allen Gallotta看到了转向CMake的成本节约效益。并非所有公司/经理都会因为看不到直接利润而允许这项工作。然而,AMD之所以转型,是因为它强调节约成本、降低风险和改进工作流程。

希望在未来,所有AMD Software:Adrenalin Edition都将使用CMake构建。基础已经奠定,人们渴望改变,但改变是困难的。驱动程序需要不断发布,你需要妥协,你需要教会开发人员,你不能破坏CI,你不能打破兼容性等等。但这是值得的。这不仅仅是一个技术生活质量特性;CMake有助于您的业务。

有关我们如何帮助将CMake集成到您的构建系统中的信息,请发送消息至kitware@kitware.com.

留下回复