由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - which is faster and why ? (答对有包子)
相关主题
谁有这本书的电子版? (转载)Sun当年设计Java的败笔
专业c++程序员都用什么ide (转载)现在还有哪些大公司用c++比较多
问一个volatile和memcpy一起用的问题现在学LLVM有没有前途
牛人们来看看这个Dao语言怎么样哪种脚本语言适合做代码的文本分析?
C++11 support is now feature-complete in clang.请不要盲目崇拜FP语言
转贴:[圣战] python 是个讨厌的语言玩具语言其实很容易实现的
javascript是要统一江湖的被苹果给惊呆了!! (转载)
C++ 11问题:emplace_back()感觉python的前途堪忧 (转载)
相关话题的讨论汇总
话题: 1024话题: rdi话题: p2align话题: void话题: rax
进入Programming版参与讨论
1 (共1页)
d****n
发帖数: 1637
1
void zeroarray1(double * A)
{
int i, j;
for (i = 0; i < 1024; i++)
for (j = 0; j < 1024; j++)
A[i * 1024 + j] = 0.0;
}
void zeroarray2(double * A)
{
int i, j;
for (j = 0; j < 1024; j++)
for (i = 0; i < 1024; i++)
A[i * 1024 + j] = 0.0;
}
c*******y
发帖数: 1630
2
一个月前刚讨论过吧。
d****n
发帖数: 1637
3
那你就当路过

【在 c*******y 的大作中提到】
: 一个月前刚讨论过吧。
t****t
发帖数: 6806
4
有合适的编译开关, 这两一模一样. gcc 4.4开始, 有-floop-interchange.

【在 d****n 的大作中提到】
: void zeroarray1(double * A)
: {
: int i, j;
: for (i = 0; i < 1024; i++)
: for (j = 0; j < 1024; j++)
: A[i * 1024 + j] = 0.0;
: }
: void zeroarray2(double * A)
: {
: int i, j;

d****n
发帖数: 1637
5
包子still available if answered.
J7
发帖数: 38
6
first one?
CPU cache line?

【在 d****n 的大作中提到】
: void zeroarray1(double * A)
: {
: int i, j;
: for (i = 0; i < 1024; i++)
: for (j = 0; j < 1024; j++)
: A[i * 1024 + j] = 0.0;
: }
: void zeroarray2(double * A)
: {
: int i, j;

d****n
发帖数: 1637
7
dryden,您好:
您转给 J7,现金(伪币):10,收取手续费:0.1
同时附加了如下留言给 J7.
first one is faster
站务
J7
发帖数: 38
8
thanks
我很奇怪Fortran据说列存储的,这个和C/C++等不同啊

【在 d****n 的大作中提到】
: dryden,您好:
: 您转给 J7,现金(伪币):10,收取手续费:0.1
: 同时附加了如下留言给 J7.
: first one is faster
: 站务

d****n
发帖数: 1637
9
不懂fortran,愿意学习

【在 J7 的大作中提到】
: thanks
: 我很奇怪Fortran据说列存储的,这个和C/C++等不同啊

w***g
发帖数: 5958
10
行优先和列优先是针对二维数组而言的。楼主那个是一维数组操作(手工算矩阵元素的
地址),对fortran和C/C++结论相同。A[i*1024+j]这个元素如果用二维数组表示的话,
C/C++里是A[i][j],fortran里是A(j,i)。

【在 J7 的大作中提到】
: thanks
: 我很奇怪Fortran据说列存储的,这个和C/C++等不同啊

c***r
发帖数: 4631
11
LLVM吧第一个整成一个memset就完事了。
pushq %rax
.Ltmp2:
xorl %esi, %esi
movl $8388608, %edx # imm = 0x800000
callq memset
popq %rax
ret
第二个叽叽咕咕折腾半天。
为什么呢?

【在 t****t 的大作中提到】
: 有合适的编译开关, 这两一模一样. gcc 4.4开始, 有-floop-interchange.
t****t
发帖数: 6806
12
没用过llvm, 两年前好象是没有graphite的, 现在不知道有没有. gcc肯定有.
这是gcc -S -O2 -floop-interchange的结果, 你可以看到两个一模一样. 我用的gcc 4
.7.2, 但是4.4就有了.
.globl _Z10zeroarray1Pd
.type _Z10zeroarray1Pd, @function
_Z10zeroarray1Pd:
.LFB0:
.cfi_startproc
leaq 8388608(%rdi), %rdx
.p2align 4,,10
.p2align 3
.L2:
leaq 8192(%rdi), %rax
.p2align 4,,10
.p2align 3
.L3:
movq $0, (%rdi)
addq $8, %rdi
cmpq %rax, %rdi
jne .L3
cmpq %rdi, %rdx
jne .L2
rep
ret
.cfi_endproc
.LFE0:
.size _Z10zeroarray1Pd, .-_Z10zeroarray1Pd
.p2align 4,,15
.globl _Z10zeroarray2Pd
.type _Z10zeroarray2Pd, @function
_Z10zeroarray2Pd:
.LFB1:
.cfi_startproc
leaq 8388608(%rdi), %rdx
.L9:
leaq 8192(%rdi), %rax
.p2align 4,,10
.p2align 3
.L8:
movq $0, (%rdi)
addq $8, %rdi
cmpq %rax, %rdi
jne .L8
cmpq %rdx, %rdi
jne .L9
rep
ret
.cfi_endproc
.LFE1:
.size _Z10zeroarray2Pd, .-_Z10zeroarray2Pd

【在 c***r 的大作中提到】
: LLVM吧第一个整成一个memset就完事了。
: pushq %rax
: .Ltmp2:
: xorl %esi, %esi
: movl $8388608, %edx # imm = 0x800000
: callq memset
: popq %rax
: ret
: 第二个叽叽咕咕折腾半天。
: 为什么呢?

c***r
发帖数: 4631
13
我主要是纳闷为什么第二个不整成memset呢?

4

【在 t****t 的大作中提到】
: 没用过llvm, 两年前好象是没有graphite的, 现在不知道有没有. gcc肯定有.
: 这是gcc -S -O2 -floop-interchange的结果, 你可以看到两个一模一样. 我用的gcc 4
: .7.2, 但是4.4就有了.
: .globl _Z10zeroarray1Pd
: .type _Z10zeroarray1Pd, @function
: _Z10zeroarray1Pd:
: .LFB0:
: .cfi_startproc
: leaq 8388608(%rdi), %rdx
: .p2align 4,,10

n******t
发帖数: 4406
14


【在 d****n 的大作中提到】
: void zeroarray1(double * A)
: {
: int i, j;
: for (i = 0; i < 1024; i++)
: for (j = 0; j < 1024; j++)
: A[i * 1024 + j] = 0.0;
: }
: void zeroarray2(double * A)
: {
: int i, j;

1 (共1页)
进入Programming版参与讨论
相关主题
感觉python的前途堪忧 (转载)C++11 support is now feature-complete in clang.
现在哪个C++ IDE比较好?转贴:[圣战] python 是个讨厌的语言
[bssd]汇报一下Julia进展javascript是要统一江湖的
忙起来了C++ 11问题:emplace_back()
谁有这本书的电子版? (转载)Sun当年设计Java的败笔
专业c++程序员都用什么ide (转载)现在还有哪些大公司用c++比较多
问一个volatile和memcpy一起用的问题现在学LLVM有没有前途
牛人们来看看这个Dao语言怎么样哪种脚本语言适合做代码的文本分析?
相关话题的讨论汇总
话题: 1024话题: rdi话题: p2align话题: void话题: rax