小编Mar*_*ark的帖子

按列名称将表转换为矩阵

我的数据框如下所示

       models cores     time
1       4     1 0.000365
2       4     2 0.000259
3       4     3 0.000239
4       4     4 0.000220
5       8     1 0.000259
6       8     2 0.000249
7       8     3 0.000251
8       8     4 0.000258
Run Code Online (Sandbox Code Playgroud)

......等

我想将其转换为表格/矩阵,其中#models用于行标签,#cores用于列标签,时间用作数据条目

例如

  1 2 3 4 5 6 7 8    
1   time data
4   time data
Run Code Online (Sandbox Code Playgroud)

目前我正在使用for循环将其转换为此结构,但我想知道是否有更好的方法?

statistics r

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

编译器嵌套循环优化,用于顺序内存访问.

我在矩阵乘法基准测试中遇到了一个奇怪的性能问题(来自MOSBENCH套件的Metis中的matrix_mult ).基准进行了优化,瓦片中的数据,使得有源工作集是12KB(32×32整数3个砖)和将装配到L1高速缓存.长话短说,交换内部两个大多数循环在某些阵列输入大小(4096,8192)上的性能差异几乎是4倍,而在其他阵列输入大小上差异大约为30%.问题基本上归结为顺序访问元素而不是步幅模式.我认为某些数组大小创建了一个糟糕的步幅访问,产生了很多缓存线冲突.当从2路关联L1变为8路关联L1时,性能差异明显减小.

我的问题是为什么gcc不优化循环排序以最大化顺序内存访问?

下面是问题的简化版本(请注意,性能时间高度依赖于L1配置.下面显示的数字来自2.3 GHZ AMD系统,其中64K L1双向关联使用-O3编译).

N = ARRAY_SIZE // 1024
int* mat_A = (int*)malloc(N*N*sizeof(int));
int* mat_B = (int*)malloc(N*N*sizeof(int));
int* mat_C = (int*)malloc(N*N*sizeof(int));

// Elements of mat_B are accessed in a stride pattern of length N
// This takes 800 msec  
for (int t = 0; t < 1000; t++) 
   for (int a = 0; a < 32; a++) 
      for (int b = 0; b < 32; b++)
         for (int c = 0; c < 32; c++) …
Run Code Online (Sandbox Code Playgroud)

c++ compiler-construction performance gcc loops

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

intel pin RTN_InsertCall多个函数参数

我正在尝试使用intel pin获取函数参数的值.使用示例ManualExamples/malloctrace.cpp,单个参数函数非常简单.但是,当我尝试使用多个参数获取参数值时,我遇到了麻烦.

例如.试图捕获以下函数的参数值:

void funcA(int a, int b, int c) {
    printf("Actual: %i %i %i\n", a,b,c);
}
Run Code Online (Sandbox Code Playgroud)

使用以下密码

VOID funcHandler(CHAR* name, int a, int b, int c) {
   printf("Pin: %s %i %i %i\n", name, a, b, c);
}

VOID Image(IMG img, VOID *v) {
    RTN funcRtn = RTN_FindByName(img, "funcA");
    if (RTN_Valid(funcRtn)) {
        RTN_Open(funcRtn);
        RTN_InsertCall(funcRtn, IPOINT_BEFORE, (AFUNPTR)funcHandler, 
                      IARG_ADDRINT, "funcA", IARG_FUNCARG_ENTRYPOINT_VALUE, 
                      0, IARG_END);
        RTN_Close(funcRtn);
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到以下输出

Pin: funcA 0 -656937200 -10
Actual: 0 -10 0
Pin: funcA 1 -656937200 -9
Actual: …
Run Code Online (Sandbox Code Playgroud)

c++ intel

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

foo [i]和foo-> at(i)与stl向量之间的差异

有什么理由吗?

foo =(bar-> at(x)) - > at(y);

工作,但

foo = bar [x] [y];

不起作用,其中bar是向量的向量(使用c ++ stl)

声明是:

std :: vector <std :: vector <Object*>*>

c++ stl vector

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

jquery-ui带有隐藏溢出的可排序连接列表

我有两个固定的hight div,每个div包含一个相互连接的可排序列表.有没有办法隐藏溢出,同时仍然连接列表?例如,如果将溢出设置为隐藏,那么当它被拖到div之外时,li不会显示.

我知道一个可能的解决方案是计算div可以包含的最大li数,并根据可见元素的数量动态添加/删除元素,但我想知道是否有更好的解决方案?

javascript css jquery jquery-ui

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