This summer an intern with the FreeBSD Foundation worked on porting AMD ROCm to FreeBSD. The internship is concluding while the FreeBSD ROCm code is almost to the stage of being able to perform simple vector addition workloads. The FreeBSD Foundation published a blog post this week summarizing the work done by student developer Sourojeet Adhikari as an intern working on porting AMD's open-source ROCm compute stack from Linux to FreeBSD. While FreeBSD has an AMDGPU driver ported over from the Linux kernel DRM and there is the LinuxKPI compatibility layer to help translate Linux kernel interfaces for the FreeBSD world, it's still a significant undertaking in getting ROCm on FreeBSD. The work was not limited to kernel changes but also patching AMD's downstream LLVM code used by ROCm, adjusting the ROCm GPU runtimes, and the drm-kmod module changes. There were also bugs/differences uncovered in the FreeBSD LinuxKPI compatibility interface. While the internship is over with the end of summer, Sourojeet plans to continue working on ROCm and FreeBSD. As for the current state: "The project is already approaching an important milestone: running a simple vector addition workload. The driver can link, load, and run, although there are still issues to resolve in userspace. From there, Sourojeet expects to spend more time exploring FreeBSD’s memory management systems, particularly the work required to support Heterogeneous Memory Management (HMM)." So ROCm on FreeBSD isn't in a state yet that's usable for end-users but will be interesting to see how it evolves moving forward. Those wanting to learn more can read about the initiative on the FreeBSD Foundation Blog. The changes can be found on the GitHub repositories noted via this status report.
The Challenges In Bringing AMD ROCm To FreeBSD
Full Article
Original Source
Read the full article at Phoronix →KhanList aggregates and links to publicly available news content. We do not host full articles from third-party sources. Always verify important information with original sources.