예제 #1
0
파일: test.cpp 프로젝트: 8l/kalmar
bool test_feature()
{
	vector<accelerator> devices = get_available_devices();
	printf("Found %d devices\n", devices.size());

	for (size_t i = 0; i < devices.size(); i++)
	{
		accelerator device = devices[i];

		printf("Device %d: %ws (%ws)\n", i, device.get_description().c_str(), device.get_device_path().c_str());
		printf("Version %d \t Memory %u\n", device.get_version(), device.get_dedicated_memory()); 
		printf("Debug:%c \t Emulated:%c \t Display: %c\n", device.get_is_debug() ? 'Y' : 'N', device.get_is_emulated() ? 'Y' : 'N', device.get_has_display() ? 'Y' : 'N');

		{
			int edata[_rank];

			for (int i = 0; i < _rank; i++)
				edata[i] = 1;

			extent<_rank> e1(edata);
			array<_type, _rank> src(e1, device.get_default_view());

			// let the kernel initialize data;
			parallel_for_each(e1, [&](index<_rank> idx) __GPU_ONLY
			{
				src[idx] = _rank;
			});

			// Copy data to CPU
			vector<_type> opt(e1.size());
			opt = src;

			for (unsigned int i = 0; i < e1.size(); i++)
			{
				if (opt[i] != _rank)
					return false;
			}
		}

		printf("Finished with device %d\n", i);
	}
예제 #2
0
runall_result test_feature()
{
	vector<accelerator> devices = get_available_devices(); // all but CPU devices

	runall_result result;
	for (size_t i = 0; i < devices.size(); i++)
	{
		accelerator& device = devices[i];

		WLog() << "Device " << i << ": " << device.description << " (" << device.device_path << ")" << std::endl;
		Log() << "  Version: " << device.get_version() << "; Memory: " << device.get_dedicated_memory() << std::endl;
		Log() << "  Debug: " << device.get_is_debug() << "; Emulated: " << device.get_is_emulated() << "; Has Display: " << device.get_has_display() << std::endl;

        result &= REPORT_RESULT((test_accl_staging_buffer_constructor<_type, _rank, accelerator_view>(device.default_view, device.default_view)));
        result &= REPORT_RESULT((test_accl_staging_buffer_constructor<_type, _rank, accelerator_view>(device.create_view(queuing_mode_immediate), device.create_view(queuing_mode_automatic))));
        result &= REPORT_RESULT((test_accl_staging_buffer_constructor<_type, _rank, accelerator_view>(device.create_view(queuing_mode_automatic), device.create_view(queuing_mode_immediate))));
		Log_writeline();
	}

	return result;
}
예제 #3
0
파일: main.c 프로젝트: zbierak/ipa
int main(int argc, char* argv[])
{
	if (argc != 2)
	{
		LOG_ERROR("Usage: %s <mount location>", argv[0]);
		return 1;
	}

	filesystem_h fs = filesystem_create();

	device_h* devices = NULL;
	size_t devices_count = 0;

	if (get_available_devices(&devices, &devices_count))
	{
		for (size_t i = 0; i < devices_count; i++)
		{
			LOG_INFO("Found device %s (%s)", device_get_uid(devices[i]), device_get_name(devices[i]));

			char* db_location = device_get_photo_db_location(devices[i]);
			char* root_path = device_get_root_path(devices[i]);
			db_h db = db_create(db_location, device_get_name(devices[i]), root_path);

			if (db != NULL)
			{
				filesystem_add_database(fs, db);
			}

			free(db_location);
			free(root_path);
			device_free(devices[i]);
		}

		free(devices);
	}

	filesystem_run(fs, argv[1]);

	filesystem_free(fs);
}