Изменить: CUDA 6 представляет Unified Memory, что значительно облегчает эту проблему с «глубокой копией». См. этот пост для более подробной информации.
Не забывайте, что вы можете передавать структуры по значению ядрам. Этот код работает:
// pass struct by value (may not be efficient for complex structures)
__global__ void kernel2(StructA in)
{
in.arr[threadIdx.x] *= 2;
}
Выполнение этого означает, что вам нужно только скопировать массив на устройство, а не в структуру:
int h_arr[N] = {1,2,3,4,5,6,7,8,9,10};
StructA h_a;
int *d_arr;
// 1. Allocate device array.
cudaMalloc((void**) &(d_arr), sizeof(int)*N);
// 2. Copy array contents from host to device.
cudaMemcpy(d_arr, h_arr, sizeof(int)*N, cudaMemcpyHostToDevice);
// 3. Point to device pointer in host struct.
h_a.arr = d_arr;
// 4. Call kernel with host struct as argument
kernel2<<>>(h_a);
// 5. Copy pointer from device to host.
cudaMemcpy(h_arr, d_arr, sizeof(int)*N, cudaMemcpyDeviceToHost);
// 6. Point to host pointer in host struct
// (or do something else with it if this is not needed)
h_a.arr = h_arr;
WCFLoadTest полностью. Я даже говорил с парнями MS, которые клянутся этим инструментом.
Visual Studio также имеет некоторые инструменты тестирования загрузки в наличии, но я не могу ручаться за то, как хорошо они делают свое задание, и при этом я не могу сказать, какие версии VS содержат инструменты тестирования загрузки.
Запустите с этого:
http://www.codeplex.com/WCFLoadTest
Это не делает всего возможного с WCF, но это - лучший инструмент для запуска с. Хуже прибывает в худший, дело не в этом трудно для записи ручного кода вызова с веб-сервисами. Они намного легче к нагрузочному тесту, чем веб-сайты.
Я записал свой собственный инструмент (WCFStorm). Это функции:
Общая информация:
◦Dynamically вызывают и тестируют WCF Services
◦Dynamically вызывают и тестируют веб-сервисы, записанные на любом языке
◦Save Ваш открытый сервис и его тестовые сценарии в "проект", который может быть перезагружен в любое время
◦Dynamically вызывают сервисные методы даже те, которые содержат сложные типы данных
Основанное на ◦UI, динамическое редактирование сложных типов данных
◦Test несколько WCF и веб-сервисы в единственном UI.
Интерфейс ◦Multiple-с-вкладками
◦Basic и аутентификация Windows
Сервисы ◦Test, находящиеся позади прокси
◦Dynamically изменяют конечную точку URL WCF или веб-сервиса.
◦Dynamically редактируют сервисную привязку.
Функциональное тестирование:
Случаи функционального испытания ◦Create и сохраняют его как часть проекта
◦Create и сохраняют случаи функционального испытания, содержащие Ожидаемые результаты.
◦Graphically сравнивают (бок о бок) ожидаемые результаты с фактическим ответом сервиса.
Тестирование производительности:
Случаи теста производительности ◦Create и сохраняют его как часть проекта
Диаграммы дисплея ◦Graphically в режиме реального времени как тест производительности прогрессируют.
◦Configurable тестируют параметры (# Агентов, Тестовой продолжительности, интервал и т.д.). Можно подчеркнуть сервис так, как Вы хотите.
Проверьте снимок экрана.
(источник: geekswithblogs.net)