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); }
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; }
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); }