愚头的博客

一位图形学爱好者的唠叨

个人笔记 - 2020.11.08

SYCL

About SYCL

这是一个针对高性能计算的抽象层,基于标准的C++语言,规范了并行计算的C++接口,在编译阶段针对不同设备进行并行加速。 例如,对于CPU使用OpenMP进行加速,对NVIDIA的GPU利用CUDA或OpenCL+SPIR进行加速,对AMD的GPU则利用ROCm或OpenCL+SPIR进行加速。 这样最明显的好处是同一套代码,可以充分利用不同的设备来实现高性能计算。

对于最近几年大热的机器学习和光线追踪来讲,完全可以利用这个技术写一套代码来实现跨设备和平台😄(是真的吗?)。

Backends of SYCL

实现 介绍
oneAPI DPC++ Intel实现的SYCL,基于LLVM并且是开源的。如果不愿意自己编译可以注册申请Intel的DevCloud直接使用(这年头大厂没有个开发云都不能算大厂啊😏)。
ComputeCPP 这是一个实现最完善的SYCL,由Codeplay Software Ltd.开发,并且已经商用。
triSYCL 开源项目,由Xilinx开发,就是最近被AMD收购的那家公司。
hipSYCL 开源项目,由德国Heidelberg大学的HPC技术专家Alpay Aksel主导开发。

相关文章和项目

OpenCASCADE发布新版7.5

从新版介绍来看,此次更新变化较多,有超过400个改进和修正。 另外,有一段时间没有访问官网,发现有了很大变化,变得更靓丽了。

有如下关键更新(仅列出个人认为的重点):

关键点 个人评价
基础:
为了并行计算重新设计了处理接口 终于可以通过并行计算加速了👍
支持WebAssembly 开始支持浏览器端,浏览器端是不可忽视的
模型:
BRepMesh支持过程化处理 对于用户来讲是非常友好的,可以看到模型的处理进度
更新二维面片的三角化处理
可视化:
渲染使用sRGB色彩 有助于提升色彩的准确性
支持PBR光照模型材质 似乎PBR已经是行业规范了
支持法线贴图
数据:
支持导出glTF 2.0格式
应用框架:
利用多线程处理多个文档 每个线程一个文档
优化大型修改后的处理
范例:
统一鼠标操作
新增WebGL范例
更新JNI范例
全新的Qt版OCCT概览
文档:
重构文档并且对用户更友好