小编chu*_*hus的帖子

什么是"git remote add ..."和"git push origin master"?

很多时候,Git和Rails看起来像魔术......比如在Rails 3 Tutorial一书第一章中,它讨论了Git:

git remote add origin git@github.com:peter/first_app.git
git push origin master
Run Code Online (Sandbox Code Playgroud)

并且它几乎说"它只是有效"而没有说太多关于它们是什么并且开始谈论分支.在网上搜索显示git remote add添加"短名称",例如origin,它也可以是任何名称,这就像URL的别名.并且origin是远程回购所指向的通常路径.(在"添加远程存储库"下的http://git-scm.com/book/en/Git-Basics-Working-with-Remotes中)

那么为什么URL不是 git://git@github.com/peter/first_app.git在其他语法中 - 它是什么语法?为什么一定要结束.git?我尝试不使用.git最终,它也有效.如果没有.git,还有什么呢?在gitgit@github.com似乎是git的服务器上的用户帐户?

另外,为什么它需要如此冗长才能使用git push origin master?默认不能是origin和master吗?我发现第一次,origin master需要,但经过一个小的编辑和提交,然后git push就是它所需要的(没有必要origin master).知道发生了什么的人可以提供一些细节吗?

有时候感觉就像没有任何解释的魔法......有时使用它的人是如此自信,当被问到为什么时,无法解释它,并回答"就像它的方式".有时非常务实和务实.实践并不坏,但可能不实际到不知道发生了什么.

git github

276
推荐指数
4
解决办法
30万
查看次数

Firefox扩展和插件有什么区别?

在Firefox中有插件和扩展.你能解释一下为什么这些插件有不同的名称和标签吗?它们之间是否存在差异所以它们需要不同的名称?我觉得区分这些东西有点不自然,扩展有如此多的功能,他们缺少与插件相比的东西?

firefox firefox-addon browser-plugin browser-addons

22
推荐指数
3
解决办法
2万
查看次数

缓存如何被打败?

本周我的任务中有这个问题,我不明白缓存是如何被打败的,或者我如何用汇编程序来展示它.有人能指出我正确的方向吗?

使用汇编程序示例显示如何消除两个不同的缓存(关联和直接映射).解释为什么会发生这种情况以及如何解决这个问题.用于击败缓存的相同程序是否相同?

注意:这是作业.不要只为我回答这个问题,它不会帮助我理解这些材料.

assembly caching cpu-cache

18
推荐指数
1
解决办法
682
查看次数

如何生成一个sse4.2 popcnt机器指令

使用c程序:

int main(int argc , char** argv)
{

  return  __builtin_popcountll(0xf0f0f0f0f0f0f0f0);

}
Run Code Online (Sandbox Code Playgroud)

和编译器行(gcc 4.4 - Intel Xeon L3426):

gcc -msse4.2 poptest.c -o poptest
Run Code Online (Sandbox Code Playgroud)

我没有得到内置的popcnt insruction,而是编译器生成一个查找表并以这种方式计算popcount.生成的二进制文件超过8000个字节.(东旭!)

非常感谢您的帮助.

optimization gcc bit-manipulation hammingweight

14
推荐指数
2
解决办法
1万
查看次数

Fast popcount on Intel Xeon Phi

I'm implementing an ultra fast popcount on Intel Xeon® Phi®, as it's a performance hotspot of various bioinformatics software.

I've implemented five pieces of code,

#if defined(__MIC__)
#include <zmmintrin.h>
__attribute__((align(64))) static const uint32_t POPCOUNT_4bit[16] = {0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4};
__attribute__((align(64))) static const uint32_t MASK_4bit[16] = {0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF};
inline uint64_t vpu_popcount1(uint64_t* buf, size_t n)  { …
Run Code Online (Sandbox Code Playgroud)

c vectorization hammingweight intel-mic xeon-phi

9
推荐指数
1
解决办法
1749
查看次数

如何使用OpenMP创建中间所有线程的同步(`barrier`)的`omp parallel for`

我有两个功能,do_step_one(i)并且do_step_two(i),i从... 0N-1.

目前,我有这个(顺序)代码:

for(unsigned int i=0; i<N; i++) {
     do_step_one(i);
}

for(unsigned int i=0; i<N; i++) {
     do_step_two(i);
}
Run Code Online (Sandbox Code Playgroud)

的每次调用do_step_one(),并do_step2()可以以任何顺序和并行执行,但任何do_step_two()需要的全部结束do_step_one(),开始(使用它do_step_one()的结果).

我尝试了以下方法:

#omp parallel for
for(unsigned int i=0; i<N; i++) {
    do_step_one(i);

#omp barrier

    do_step_two(i);
}
Run Code Online (Sandbox Code Playgroud)

但是gcc抱怨道

convolve_slices.c:21:警告:屏障区域可能不会紧密嵌套在工作共享,关键,有序,主要或显式任务区域内.

我有什么误解?如何解决这个问题?

openmp

6
推荐指数
2
解决办法
7313
查看次数

gcc内联汇编错误"mov的操作数类型不匹配"

//quick inline asm statements performing the swap_byte for key_scheduling
inline void swap_byte(unsigned char *x, unsigned char *y)
{
 unsigned char t;
 asm("movl %1, %%eax;"
     "movl %%eax, %0;"
     :"=r"(t)
     :"r"(*x)
     :"%eax");
 asm("movl %1, %%eax;"
     "movl %%eax, %0;"
     :"=r"(*x)
     :"r"(*y)
     :"%eax");
 asm("movl %1, %%eax;"
     "movl %%eax, %0;"
     :"=r"(*y)
     :"r"(t)
     :"%eax");       
}
Run Code Online (Sandbox Code Playgroud)

在这里,我想从交换焦炭x和存储y,与同为yx.我已经通过更改movl来编译这些指令mov但没有成功.编译/链接的问题在哪里?

这是cygwin中编译的输出:

$ gcc rc4_main.c -o rc4ex
/tmp/ccy0wo6H.s: Assembler messages:
/tmp/ccy0wo6H.s:18: Error: operand type mismatch for `mov'
/tmp/ccy0wo6H.s:18: Error: …
Run Code Online (Sandbox Code Playgroud)

c assembly gcc inline-assembly

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