Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2012, 21:46   #1
Stasiksis
Пользователь
 
Регистрация: 12.09.2011
Сообщений: 19
По умолчанию КЭШ-промахи при умножении квадратных матриц (Си)

Задача состоит в том, чтобы составить аналитически функцию КЭШ-промахов, которая будет зависеть от размера L2 КЭША (у меня он 2 Mb) и от размера матриц. Есть программа для умножения матриц, написанная на СИ:
Код:
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <locale.h>
#include <string.h>
#include <time.h>

typedef int32_t T;
	T A[M][N], B[N][H], C[M][H];
int mul () {
	int i, j, k;
	for (i = 0; i < M; i++)
		for (j = 0; j < H; j++) 
			for (k = 0; k < N; k++)
				C[i][j] += A[i][k] * B[k][j];
}
int main() {
	static struct timespec t1, t2;
	int i, j, k, n;
	T temp;
	memset( C, 0, sizeof(C) );
	for (i = 0; i < M; i++ )
		for (j = 0; j < N; j++) 
			A[i][j] = 1;
	for (i = 0; i < N; i++ )
		for (j = 0; j < H; j++) 
			B[i][j] = 1;

	setlocale(LC_ALL, "");
	clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &t1 );
	
	mul();

	clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &t2);
	
	printf( "%.05g\n",((t2.tv_sec+t2.tv_nsec*1.e-9)-(t1.tv_sec+t1.tv_nsec*1.e-9)));
	return 0;
}
Очевидно, что если размер матрицы меньше, чем
Код:
3 * N^2 * 8 sizeof(int) <= 2 Mb
, где N - порядок матрицы, то получим примерно, что при порядке матриц, меньше 418 КЭШ-промахов не будет, ну это только начало, кто-нибудь может помочь и подсказать, как для данного случая перемножения матриц определить количество КЭШ-промахов при большем порядке матриц?
Stasiksis вне форума Ответить с цитированием
Старый 15.06.2012, 12:09   #2
Stasiksis
Пользователь
 
Регистрация: 12.09.2011
Сообщений: 19
По умолчанию

Неужели никто не в силах помочь?
Stasiksis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка квадратных матриц n по заданному образцу _Алексей_ Помощь студентам 0 14.06.2012 19:01
перемножение квадратных матриц bin11 Помощь студентам 1 19.05.2012 17:47
перемножение не квадратных матриц F1remaster Общие вопросы C/C++ 1 18.05.2012 00:21
Сложение двух квадратных матриц Bastino Общие вопросы C/C++ 3 29.03.2010 16:29
Сравнение 2-ух квадратных матриц размер 3*3 Artem1987 Помощь студентам 2 23.03.2008 16:16