相关疑难解决方法(0)

优化我的Backprop ANN

分析我的反向传播算法后,我了解到它负责占用我60%的计算时间.在我开始研究并行替代方案之前,我想看看我能做些什么.

activate(const double input[])功能仅被占用约5%的时间.该gradient(const double input)功能实现如下:

inline double gradient(const double input) { return (1 - (input * input)); }
Run Code Online (Sandbox Code Playgroud)

有问题的培训功能:

void train(const vector<double>& data, const vector<double>& desired, const double learn_rate, const double momentum) {
        this->activate(data);
        this->calculate_error(desired);

        // adjust weights for layers
        const auto n_layers = this->config.size();
        const auto adjustment = (1 - momentum) * learn_rate;

        for (size_t i = 1; i < n_layers; ++i) {
            const auto& inputs = i - 1 > 0 …
Run Code Online (Sandbox Code Playgroud)

c++ optimization const

15
推荐指数
1
解决办法
722
查看次数

是可以用比特而不是字节来做memcpy吗?

我想知道是否可以按位而不是字节进行memcpy

我正在为带有VLAN标记的以太网帧编写C代码,其中我需要填写VLAN标头属性(PCP-3bits,DEI-1bit,VID-12bits)的不同值.

如何对这些位执行memcpy,或者以位为单位向这些属性填充值的任何其他可能性.

提前致谢 !

c ethernet memcpy

5
推荐指数
2
解决办法
5622
查看次数

"memcpy"式功能,支持各个位的偏移量?

我正在考虑解决这个问题,但它看起来是一项相当艰巨的任务.如果我自己拿这个,我可能会用几种不同的方式写出并选择最好的,所以我想我会问这个问题,看看是否有一个很好的图书馆可以解决这个问题,或者是否有人有想法/建议.

void OffsetMemCpy(u8* pDest, u8* pSrc, u8 srcBitOffset, size size)
{
    // Or something along these lines. srcBitOffset is 0-7, so the pSrc buffer 
    // needs to be up to one byte longer than it would need to be in memcpy.
    // Maybe explicitly providing the end of the buffer is best.
    // Also note that pSrc has NO alignment assumptions at all.
}
Run Code Online (Sandbox Code Playgroud)

我的应用程序是时间关键的,所以我想以最小的开销来确定这一点.这是困难/复杂性的根源.在我的情况下,块可能非常小,可能是4-12个字节,因此大规模的memcpy东西(例如预取)并不重要.对于随机未对齐的src缓冲区,最好的结果是对于常量'大小'输入最快的长度,在4到12之间.

  • 应尽可能将内存移动到字大小的块中
  • 这些字大小的块的对齐很重要.pSrc是未对齐的,因此我们可能需要从前面读取几个字节,直到它对齐为止.

任何人拥有或知道类似实施的东西?或者有人想要写这篇文章,让它尽可能干净和高效吗?

编辑:似乎人们对"过于宽泛"的投票表示"接近".一些缩小的细节将是AMD64的首选架构,所以我们假设.这意味着小端等等.实现有望完全符合答案的大小,所以我不认为这太宽泛了.即使有一些方法,我也会一次要求单个实现的答案.

c c++ optimization bit-manipulation memcpy

4
推荐指数
1
解决办法
687
查看次数

标签 统计

c ×2

c++ ×2

memcpy ×2

optimization ×2

bit-manipulation ×1

const ×1

ethernet ×1