Вынужден был отлучиться,поэтому не смог последние два дня тут быть.До этого я начал эксперементировать с CUDA (интерфейс для вычислений на видеокарте) .Основной платформой CUDA является C++ и позволяет в десятки раз ускорять высчисления как если бы использовался только процессор.Сам код программы:
Сработавшая программа:
Исходный код:
Exe-приложение:
В результате у меня получились такие результаты сравнения CUDA и процессора:
Результаты с памятью (плюсуется время передачи даннных с оперативной памяти компьютера на оперативную память виедокарты)
67.89 миллисекунд-если использовать CUDA
73.08 миллисекунд-если добавить к CUDA if(если)
63.96 миллисекунд-если использовать CUDA но операции не производить (то есть чистое время загрузки в память)
144.69 миллисекунд-без CUDA на процессоре
т.е ускорение наблюдаемое = 2 раза
Результаты без памяти (чистое выполнение кода)
79.65 millseconds-просто процессор 202 МЛН ОПЕРАЦИЙ В СЕКУНДУ
2.96 millseconds-CUDa 5,4 МДРЛД ОПЕРАЦИЙ В СЕКУНДУ
Прирост в 25 раз.Отличный показатель и даже при увеличении количества операций видеокартой очень крутой.Однако у меня странный вопрос,почему операций так мало ,если учитывать что тактовая частота моего процессора 3 Ггц.Может быть вся соль в том что работа с массивами на C++ приводит к множеству дополнительных операций на машинном коде или в работе ОС и приорететах процессов,или приложение находиться в режиме Debug
Соответственно моя задача написать функции поиска закономерностей на C++ и CUDA.
Главная проблема в ассоциативных массивах которые не содержит C++,вторая по значимости проблема ,сначала нужно сделать адекватный код на PHP учитывающий все типы закономерностей,а также связать их с практическими задачами которые были поставлены вначале
Объяснение работы программы.Сначала создаётся массив с 16 миллионами (16*1024*1024) нулями внутри.Рассчитывается размер памяти которую займёт прогграмма,а потом загружаются в оперативную память видеоакарты сама программа и её данные.Программа прибавляет к каждому значению единицу.Что составляет 16 миллионов операций.В результате все элементы массива становятся равны одному.
Программу я брал с