GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.1 (1)   Поиск:  
 Автор Тема: Вопрос по производительности нейронных сетей
гость
84.19.181.*
Вопрос по производительности нейронных сетей
Добавлено: 31 май 06 16:56
Только начал читать про сети и возник вопрос сколько примерно нейронов в секунду может обсчитать проц Duron 1.6ГГц.(во время работы сети, а не обучения ) Интересует примерный порядок величины. А то изучишь вопрос, сделаешь программу, а комп не потянет
[Ответ][Цитата]
Victor G. Tsaregorodtsev
Сообщений: 3187
На: Вопрос по производительности нейронных сетей
Добавлено: 01 июн 06 9:22
Много может обсчитать. Делите тактовую частоту на 10 и получите примерную (по порядку величины) оценку для числа обрабатываемых сетью синапсов в секунду. Далее сами посчитаете, сколько у Вас в среднем получается синапсов на нейрон, и число обрабатываемых нейронов в секунду.

Если знакомы с системой команд Интел-совместимых процессоров и ассемблером, то сами можете прикинуть по таким вот примерам. Если сумматор нейрона обсчитывается отдельно (отдельной функцией), то для него компилятором будет сгенерирован код наподобие такого (конечно, если компилятор дурной, он еще сгенерирует и пролог-эпилог стека функции и много чего еще):
double Summator(float *Inputs, float *Synapses, long NumOfSynapses)
{
asm {
mov ECX,Inputs
mov EAX,Synapses
fldz
Loop:
fld dword ptr[EAX]
fmul dword ptr[ECX]
faddp
add EAX,4
add ECX,4
dec NumOfSynapses
jnz Loop
;на вершине стека сопроцессора остается накопленное значение взвешенной
;суммы, оно и возвращается как значение типа double из функции, никаких
;команд возврата значения типа ret здесь дополнительно не потребуется
}
}
Число тактов выполнения каждой команды смотрите в Интеловских и АМДшных мануалах, независимые по аргументам команды типа mov, add спариваются и выполняются парами за такт еще со времен первого пня. Т.е. на каждый синапс придется менее 10 тактов процессора (команды между меткой Loop и итератором цикла jnz Loop). Последующее вычисление собственно значения нелинейной функции нейрона займет тоже относительно малое число тактов - от нескольких до нескольких десятков, т.е. время сопоставимое с обсчетом одного-нескольких синапсов.
А хороший оптимизирующий компилятор может еще и в полный рост задействовать SSE-расширение набора команд процессора и обсчитывать по 4 плавучих операнда за такт, давая в итоге ускорение для сумматора в 2-3 раза (циклы всё равно придется организовывать, указатели на данные инициировать и приращивать, некратный 4 остаток набора весов синапсов отдельно досчитать поэлементно кодом наподобие приведенного выше) по сравнению с приведенным мной выше примером кода.



--------------------------
нейронные сети, анализ данных, прогнозирование
[Ответ][Цитата]
NewPoisk
Сообщений: 3745
На: Вопрос по производительности нейронных сетей
Добавлено: 01 июн 06 10:11
Зачем они вам? Ведь давно уже доказано что настоящий ИИ на нейронных сетях не построить.
[Ответ][Цитата]
Victor G. Tsaregorodtsev
Сообщений: 3187
На: Вопрос по производительности нейронных сетей
Добавлено: 01 июн 06 13:36
Цитата:
Автор: NewPoisk

Зачем они вам? Ведь давно уже доказано что настоящий ИИ на нейронных сетях не построить.


Будьте добры показать, в каком месте этой ветки говорилось хоть что-нибудь об ИИ


--------------------------
нейронные сети, анализ данных, прогнозирование
[Ответ][Цитата]
гость
84.19.184.*
На: Вопрос по производительности нейронных сетей
Добавлено: 01 июн 06 20:02
Большое спасибо за развернутый ответ!
[Ответ][Цитата]
 Стр.1 (1)