New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
建议RS码默认使用柯西矩阵 #163
Comments
柯西矩阵只是启动稍微快一点点,传输速度没有差别, |
柯西矩阵不是降低解码复杂度用的么? |
在这个量级,速度没有差别,范德蒙矩阵也能到1GB/s 以上 |
解码复杂度降了应该能节约点功耗吧。无源设备(靠电池供电)的都得几毫安几毫安的降功耗。 |
另外看这个实现上把速度提升到 15GB/s per core 了,没计划试试? |
几乎没有差别,对于<100MB/s的网速 |
有空了可以加来试试 |
柯西矩阵求逆确实有复杂度更低的算法,但 decode matrix 并不只是一个柯西矩阵。 Cauchy Reed Solomon(CRS) 所用的算法并不同于利用 SIMD 加速有限域的算法,CRS 的提出在此之前,且性能不如 SIMD,现已不用了。 目前 Cauchy matrix 的优势在于初始化简单,由 Cauchy matrix 和单位矩阵构成的 encoding matrix 任意子矩阵可逆,证明可见: https://github.com/templexxx/reedsolomon/blob/master/invertible.jpg |
谢谢,学习了。虽然看不太懂。 |
LDPC 有打算找时间实现一个试试,原理上确实比 RS 效率更高。暂未排期,估计还得很久 :D |
纠删码和纠错码应该是两回事吧,能convert? |
@xtaci 是两回事,逻辑得变,如果用 LDPC |
请问RS纠删码和RS纠错码在实现上具体有什么区别吗 |
@xygdys 一个可以发现错误并纠正,一个你得告诉它哪里错了然后纠正(纠删码),纠删码恢复的数据更多 |
|
按道理你能问这些问题应该对纠删码,纠错码是有一定了解了。我这里简单说一下你应该就明白了,或者该知道去查阅什么资料了:
|
@templexxx 太感谢了 |
//reedsolomon里面支持柯西矩阵了,加个参数应该就可以
codec, err := reedsolomon.New(dataShards, parityShards, reedsolomon.WithCauchyMatrix())
if err != nil {
return nil
}
//看minio里面,还用了WithAutoGoroutines,不知道能有多大效果
e.encoder, err = reedsolomon.New(dataBlocks, parityBlocks, reedsolomon.WithAutoGoroutines(int(e.ShardSize())))
if err != nil {
logger.LogIf(ctx, err)
return e, err
}
return
The text was updated successfully, but these errors were encountered: