61、加速低端边缘计算:edgeBoost技术解析

加速低端边缘计算:edgeBoost技术解析

在当今的计算领域,低端边缘设备的计算能力往往有限,而边缘计算技术的出现为解决这一问题提供了新的思路。edgeBoost作为一种加速低端边缘计算的技术,通过功能抽象、跨设备IPC和网络安全保护等手段,有效提升了系统性能。本文将详细介绍edgeBoost的工作原理、实验评估以及相关技术。

1. edgeBoost核心设计
1.1 目标内核代码选择

为了实现功能抽象,edgeBoost需要选择合适的目标内核代码。其避免了目标内核代码选择的难题,通过程序员指定或发送(1)包含C内核特征的热点(计算密集型)函数以及(2)其引用的应用程序或系统库的抽象到服务器,让服务器实例化这些功能抽象并从开始执行整个C内核功能。具体选择算法如下:

Input: 
(1) a ranked linked list F of hot functions based on hotness, i.e. execution time;
(2) a DCG graph G = (V,E)
Output: a final target set S of selected abstracting code regions
1 S ← φ
2 f ← HEAD(F)
3 while f ≠ NULL do
    4 // Step 1
    5 if f ∉ S and f is not called within the execution of any functions in S then
        6 // Step 2
        7 Tf ← total execution time of f
        8 If ← total data size of I/O in f
        9 if If / Tf < M then
            10 S ← S + {f}
            11 // Step 3
            12 foreach v ∈ V do
                13 if e : v p−→f ∈ E or e : f p−→v ∈ E then
                    14 if p > P and v ∉ S and v is not called within the execution of any functions in S then
                        15 Tv ← total execution time of v
                        16 Iv ← total data size of I/O in v
                        17 if Iv / Tv < M then
                            18 S ← S + {v}
    19 f ← f → next
20 return S

该算法的步骤如下:
1. 第一步 :检查函数是否已在目标集合S中,或是否在S中任何函数的执行过程中被调用。如果是,则跳过该函数,否则进入第二步。
2. 第二步 :检查函数中的I/O操作是否超过预设阈值M。如果未超过,则将该函数加入集合S,并进入第三步。
3. 第三步 :遍历与该函数相连的节点v,如果内存页面数p大于可用内存空间P,且v的I/O操作也符合条件,则将v加入集合S。

流程图如下:

graph TD;
    A[开始] --> B[选择函数f];
    B --> C{f是否在S中或被S中函数调用};
    C -- 是 --> D[选择下一个函数];
    C -- 否 --> E{I/O操作是否超过阈值M};
    E -- 是 --> D;
    E -- 否 --> F[f加入S];
    F --> G[遍历相连节点v];
    G --> H{p是否大于P且v符合条件};
    H -- 是 --> I[v加入S];
    H -- 否 --> D;
    D --> J{f是否为NULL};
    J -- 否 --> B;
    J -- 是 --> K[结束];
1.2 跨设备Binder IPC

edgeBoost需要创建跨设备IPC通道,关键在于确定正确的接口来拦截数据包。它使用一个数据包经过多个Binder层,接口层设计用于覆盖相同的函数接口并提供C抽象API,但在接口层拦截数据包需要重新编译修改C内核应用程序的函数接口,这不是edgeBoost的目标。因此,它选择在OS运行时层拦截数据包,当前实现中,利用BpBinder(在Android环境中)作为数据包拦截点,以及第三方Binder(binder - for - linux)用于本地IPC层的Linux对象。

1.3 网络安全保护

跨内核RPC通过网络连接直接进行Binder IPC会带来安全问题。edgeBoost考虑了以下潜在漏洞:
1. 不可信客户端 :可能对数据包进行任意操作。
2. 恶意函数 :可能返回篡改的推理结果。
3. 不安全的通信通道 :容易受到网络安全威胁。

为了解决这些问题,edgeBoost采用了一系列轻量级机制:
- 客户端设备通过证书进行身份验证和授权。
- 当授权边缘设备请求跨内核执行时,为其代理提供一对与客户端设备身份关联的密钥(公钥和私钥),使用高效签名方案(如HORS)验证抽象。
- 采用SSL传输协议确保网络流量的完整性和机密性。

2. 实际应用案例

以NVIDIA matrixMul为例,edgeBoost首先识别出超过90%的执行时间花费在内核函数matrixMulCUDA()中,将其选为抽象目标。然后将其重写为功能抽象,使用grid和threads作为参数进行跨设备Binder IPC和RPC调用,执行跳转到跳转存根。当执行到matrixMulCUDA()的尾部时,跳转存根执行并从服务器发送返回请求,客户端获取结果并结束整个过程。

3. 实验评估
3.1 实验设置

大部分实验在树莓派3(Model B)作为低端边缘客户端上进行,其拥有Broadcom BCM2837 SoC和1GB内存,运行Raspbian Linux OS,内置GPU为Broadcom VideoCore 4,默认以串行方式进行计算。服务器配备GTX 1080 Ti GPU和8GB RAM,运行Ubuntu 14.04 LTS。所有设备通过802.11n Wi - Fi连接到LinkSys AC1900接入点。使用UT658 USB Tester记录客户端的电压和电流,以评估能量消耗。采用10个具有代表性的CUDA应用程序进行测试。

3.2 性能优化

实验结果表明,edgeBoost在多个方面表现出色:
| NVIDIA CUDA应用示例 | 延迟(基线) | 内存(基线) | 能量(基线) | 延迟节省(%) | 内存节省(%) | 能量节省(%) |
| — | — | — | — | — | — | — |
| FFT-based 2D convolution | 11620 ms | 31.6 MB | 38.8 J | 78.3% | 39.2% | 86.1% |
| Recursive gaussian filter | 8714 ms | 187.0 MB | 30.0 J | 82.1% | 84.7% | 85.1% |
| Sobel Filter | 4842 ms | 24.5 MB | 15.9 J | 67.0% | 29.0% | 74.9% |
| Matrix multiplication | 85377 ms | 93.7 MB | 243.6 J | 88.5% | 70.4% | 87.6% |
| Vector addition | 5275 ms | 384.4 MB | 17.8 J | 32.8% | 92.7% | 32.1% |
| Monte Carlo estimation of Pi | 10507 ms | 21.5 MB | 29.1 J | 91.3% | 66.3% | 90.4% |
| DCT8x8 | 9727 ms | 14.3 MB | 30.6 J | 83.5% | 3.9% | 82.2% |
| Merge sort | 4241 ms | 32.9 MB | 13.3 J | 68.2% | 50.1% | 69.3% |
| Bilateral filter | 1007 ms | 1.1 MB | 3.3 J | 86.3% | 4.9% | 85.5% |
| Haar wavelet decomposition | 1699 ms | 7.6 MB | 5.7 J | 86.9% | 87.0% | 89.3% |
| 平均节省 | - | - | - | 76.5% | 52.8% | 78.3% |

平均而言,edgeBoost可将功能执行时间减少76.5%,内存使用减少52.8%,能量消耗节省78.3%。

3.3 edgeBoost与云卸载比较

与线程级代码卸载方法相比,edgeBoost在大多数情况下能提供更好的时间效率、内存使用和能量节省。例如,在四个测试用例中,使用edgeBoost自动选择热点代码区域,平均可节省25.1%的能量;手动选择热点代码时,平均可将时间消耗减少35.2%,同时在能量和内存使用方面也有类似的节省效果。

3.4 安全开销

使用SSL协议建立安全网络连接会带来时间开销,在实验中,SSL连接增加的时间消耗范围从1ms(蒙特卡罗模拟)到778ms(归并排序),平均增加246ms。

3.5 局限性

edgeBoost存在一些局限性:
- 低传输带宽可能限制其性能,例如在100Mbps环境中,延迟比433Mbps环境增加2.1倍。
- 目前主要在树莓派单板计算机上开发、测试,不确定在其他商业边缘设备上的效果。
- 虽然内核功能抽象方案常用于Android和Linux OS,但在更多操作系统和编程语言上的实现和测试还需要更多努力。
- 虽然能提升系统性能,但在功能抽象/实例化和跨设备Binder IPC方面,还需要寻找更简单的方法以减少不必要的工程工作量。

4. 相关技术回顾
4.1 边缘计算

边缘计算是一种有前途的技术,允许在网络边缘进行计算,处理下游数据代表云服务,处理上游数据代表边缘/物联网服务。“边缘”可以是数据源和云数据中心之间路径上的任何计算和网络资源,如智能手机、智能家居网关、微数据中心和云节点等。

4.2 云卸载

为了克服边缘设备的资源限制,研究人员提出了云卸载的方法。例如MAUI使用托管语言运行时的特性,根据分区的能量和性能收益的运行时预测自动划分程序。但这些系统大多适用于CPU工作负载,对于依赖GPU的任务不太合适。随着移动平台上通用GPU计算的普及,研究人员提出了不同的解决方案,将繁重的工作负载从低功耗设备卸载到更强大的机器上。

综上所述,edgeBoost通过功能抽象、跨设备IPC和网络安全保护等技术,在低端边缘计算中取得了显著的性能提升。虽然存在一些局限性,但为未来的边缘计算技术发展提供了有价值的参考。

加速低端边缘计算:edgeBoost技术解析

5. 深入剖析edgeBoost的优势与挑战
5.1 优势总结
  • 性能提升显著 :从实验数据可以清晰看出,在多个CUDA应用测试中,edgeBoost在时间效率、内存使用和能量消耗方面都有大幅优化。例如,在平均情况下,能将功能执行时间减少76.5%,内存使用减少52.8%,能量消耗节省78.3%。这对于资源有限的低端边缘设备来说,是一个巨大的提升,能够让这些设备在处理复杂任务时更加高效。
  • 功能抽象灵活 :采用功能抽象的方式,通过自动或手动选择热点代码,将C内核抽象并在服务器端实例化,这种方式不仅能够充分利用服务器的强大计算能力,还能根据不同的应用场景和需求进行灵活调整。
  • 安全机制可靠 :针对网络安全问题,edgeBoost采用了一系列轻量级机制,如客户端身份验证、密钥签名和SSL传输协议等,有效保护了数据传输的安全性和完整性,降低了恶意攻击的风险。
5.2 挑战分析
  • 带宽依赖问题 :低传输带宽会严重影响edgeBoost的性能,在100Mbps环境中,延迟比433Mbps环境增加2.1倍。这意味着在网络条件不佳的情况下,edgeBoost可能无法充分发挥其优势,甚至可能导致性能下降。
  • 设备兼容性问题 :目前edgeBoost主要在树莓派单板计算机上进行开发和测试,对于其他商业边缘设备的适用性还不确定。不同的设备可能具有不同的硬件架构和操作系统,需要进行大量的适配工作才能保证edgeBoost的正常运行。
  • 技术实现复杂性 :虽然edgeBoost能够提升系统性能,但在功能抽象、实例化和跨设备Binder IPC等方面的实现较为复杂,需要大量的工程工作量。这对于开发者来说是一个挑战,也限制了edgeBoost的广泛应用。
6. 未来发展方向
6.1 优化带宽适应性
  • 智能带宽管理 :开发智能的带宽管理算法,根据当前网络带宽情况动态调整数据传输策略,优先传输关键数据,减少不必要的数据传输,从而降低带宽依赖。
  • 数据压缩技术 :采用高效的数据压缩技术,在不影响数据准确性的前提下,减少数据传输量,提高数据传输效率。
6.2 拓展设备兼容性
  • 多设备适配框架 :建立多设备适配框架,通过抽象设备硬件和操作系统的差异,提供统一的接口和开发环境,使得edgeBoost能够更容易地在不同类型的商业边缘设备上运行。
  • 社区支持与合作 :积极参与开源社区,与其他开发者合作,共同推进edgeBoost在更多设备上的适配和优化,扩大其应用范围。
6.3 简化技术实现
  • 自动化工具开发 :开发自动化工具,简化功能抽象、实例化和跨设备Binder IPC等过程,减少开发者的工作量。例如,提供可视化界面,让开发者能够更直观地进行配置和管理。
  • 标准规范制定 :制定统一的标准规范,使得不同的开发者和厂商能够按照相同的标准进行开发和集成,提高edgeBoost的可维护性和扩展性。
7. 总结与展望

edgeBoost作为一种加速低端边缘计算的技术,通过功能抽象、跨设备IPC和网络安全保护等手段,在提升系统性能方面取得了显著的成果。它能够有效利用服务器的计算资源,为低端边缘设备提供更强大的计算能力,同时保障数据传输的安全性。

然而,edgeBoost也面临着一些挑战,如带宽依赖、设备兼容性和技术实现复杂性等问题。未来,需要通过不断的技术创新和优化,解决这些挑战,进一步拓展edgeBoost的应用范围和性能。相信在未来的边缘计算领域,edgeBoost将发挥更加重要的作用,为智能物联网、工业互联网等领域的发展提供有力支持。

以下是edgeBoost未来发展方向的列表总结:
1. 优化带宽适应性 :智能带宽管理、数据压缩技术。
2. 拓展设备兼容性 :多设备适配框架、社区支持与合作。
3. 简化技术实现 :自动化工具开发、标准规范制定。

为了更直观地展示edgeBoost的发展路径,我们可以用mermaid流程图表示:

graph LR;
    A[当前edgeBoost] --> B[优化带宽适应性];
    A --> C[拓展设备兼容性];
    A --> D[简化技术实现];
    B --> E[智能带宽管理];
    B --> F[数据压缩技术];
    C --> G[多设备适配框架];
    C --> H[社区支持与合作];
    D --> I[自动化工具开发];
    D --> J[标准规范制定];
    E --> K[未来高性能edgeBoost];
    F --> K;
    G --> K;
    H --> K;
    I --> K;
    J --> K;

通过以上的总结和展望,我们可以看到edgeBoost在低端边缘计算领域具有广阔的发展前景,但也需要不断地进行改进和完善,以适应不断变化的市场需求和技术发展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值