返回顶部
本 DLL 提供与 SSPU 的通信连接功能以及 Sloppy Sigmoid/Tanh/SiLU 运算处理功能。
| 支持的 OS | Windows 64bit |
| 支持的架构 | x64 |
| 框架 | .NET 8.0 |
| 所需权限 | 管理员权限 |
| 依赖库 | System.Management.dll |
函数名 |
Connect |
| 功能 | SSPU 的搜索与通信连接 |
| 声明 | int Connect() |
| 参数 | 无 |
| 返回值 | 类型: int |
| 说明:0: 存在目标,-1: 无目标 | |
| 注意事项 |
・如果从非管理员权限启动的项目调用执行,将发生异常,因此请务必在管理员权限下运行。 ・如果从未添加 System.Management 引用的项目调用执行,将发生异常,请务必确认已添加 System.Management 的引用。 |
函数名 |
SloppySigmoid |
||
| 功能 | 执行 SloppySigmoid 运算处理 | ||
| 声明 | int SloppySigmoid(byte[] inBuffer, byte[] outBuffer, byte param_n, byte param_r, byte param_p) | ||
| 参数 | 类型 | 参数名 | 说明 |
| byte[] | inBuffer | 输入数据数组 | |
| byte[] | outBuffer | 输出数据数组 | |
| byte | param_n | N 参数 | |
| byte | param_r | R 参数 | |
| byte | param_p | P 参数 | |
| 返回值 | 类型 | 说明 | 说明 |
| int | 0: 成功;-1: 失败 | 0: 成功;-1: 失败 | |
| 注意事项 |
・关于 inBuffer 的数据,请参考 5.1 输入数据。 ・关于 outBuffer 的数据,请参考 5.2 输出数据。 ・预计通过 await Task.Run (…) 进行异步执行。 (实现示例) var Ret = await Task.Run(() => sspu.SloppySigmoid(inData, outData, param_n, param_r, param_p)).ConfigureAwait(false); |
||
函数名 |
SloppyTanh |
||
| 功能 | 执行 SloppyTanh 运算处理 | ||
| 声明 | int SloppyTanh(byte[] inBuffer, byte[] outBuffer, byte param_n, byte param_r, byte param_p) | ||
| 参数 | 类型 | 参数名 | 说明 |
| byte[] | inBuffer | 输入数据数组 | |
| byte[] | outBuffer | 输出数据数组 | |
| byte | param_n | N 参数 | |
| byte | param_r | R 参数 | |
| byte | param_p | P 参数 | |
| 返回值 | 类型 | 说明 | 说明 |
| int | 0: 成功;-1: 失败 | 0: 成功;-1: 失败 | |
| 注意事项 |
・关于 inBuffer 的数据,请参考 5.1 输入数据。 ・关于 outBuffer 的数据,请参考 5.2输出数据。 ・预计通过 await Task.Run (…) 进行异步执行。 (实现示例) var Ret = await Task.Run(() => sspu.SloppyTanh(inData, outData, param_n, param_r, param_p)).ConfigureAwait(false); |
||
函数名 |
SloppySiLU |
||
| 功能 | 执行 SloppySiLU 运算处理 | ||
| 声明 | int SloppySiLU(byte[] inBuffer, byte[] outBuffer, byte param_n, byte param_b) | ||
| 参数 | 类型 | 参数名 | 说明 |
| byte[] | inBuffer | 输入数据数组 | |
| byte[] | outBuffer | 输出数据数组 | |
| byte | param_n | N 参数 | |
| byte | param_b | B 参数 | |
| 返回值 | 类型 | 说明 | 说明 |
| int | 0: 成功;-1: 失败 | 0: 成功;-1: 失败 | |
| 注意事项 |
・关于 inBuffer 的数据,请参考 5.1 输入数据。 ・关于 outBuffer 的数据,请参考 5.2 输出数据。 ・预计通过 await Task.Run (…) 进行异步执行。 (实现示例) var Ret = await Task.Run(() => sspu.SloppySiLU(inData, outData, param_n, param_b)).ConfigureAwait(false); |
||
| 术语 | 说明 |
| n |
Sigmoid/Tanh 发送时单个数据的位宽(例:22bit),SiLU 发送接收时单个数据的位宽
|
| p | Sigmoid/Tanh 接收时单个数据的位宽(例:10bit) |
| 单个数据 |
param_n 位宽的有符号整数,(例:n=10→-512~511)
|
| bytesPerData |
每个数据的字节数,发送时(例:22bit):(n+7)/8→3 字节,接收时(例:10bit):(p+7)/8→2 字节
|
| LSB 优先 | 从 bit0(最低有效位)开始依次存储 |
示例:n=22
|
|
MSB ← → LSB |
|||||||
|
Byte0 |
bit 7 |
bit 6 |
bit 5 |
bit 4 |
bit 3 |
bit 2 |
bit1 |
bit0 |
|
Byte1 |
bit 15 |
bit 14 |
bit 13 |
bit 12 |
bit 11 |
bit 10 |
bit 9 |
bit 8 |
|
Byte2 |
– |
– |
bit 21 |
bit 20 |
bit 19 |
bit 18 |
bit 17 |
bit 16 |
{45, -73}(n=22 的情况)
|
|
MSB ← →LSB |
字节值 |
|||||||
|
Byte0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0x2D |
|
Byte1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0x00 |
|
Byte2 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0x00 |
|
|
MSB ← →LSB |
字节值 |
|||||||
|
Byte3 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0xB7 |
|
Byte4 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0xFF |
|
Byte5 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0x3F |
示例:p=10
|
|
MSB ← → LSB |
|||||||
|
Byte0 |
bit 7 |
bit 6 |
bit 5 |
bit 4 |
bit 3 |
bit 2 |
bit1 |
bit0 |
|
Byte1 |
– |
– |
– |
– |
– |
– |
bit 9 |
bit 8 |
|
|
MSB ← → LSB |
zi'jie |
|||||||
|
Byte0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0x0D |
|
Byte1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0x00 |
|
|
MSB ← → LSB |
字节值 |
|||||||
|
Byte2 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0xDB |
|
Byte3 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0x03 |