diff -uNr a/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/benchmark/MemoryOptimizations/MemoryOptimizations.cpp b/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/benchmark/MemoryOptimizations/MemoryOptimizations.cpp
--- a/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/benchmark/MemoryOptimizations/MemoryOptimizations.cpp	2013-10-30 12:38:58.000000000 +0200
+++ b/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/benchmark/MemoryOptimizations/MemoryOptimizations.cpp	2014-01-31 10:53:21.299733573 +0200
@@ -185,12 +185,12 @@
     //Set device info of given cl_device_id
     retValue = deviceInfo.setDeviceInfo(devices[sampleArgs->deviceId]);
     CHECK_ERROR(retValue, SDK_SUCCESS, "SDKDeviceInfo::setDeviceInfo() failed");
-
+    /*
     if(!strstr(deviceInfo.extensions, "cl_khr_global_int32_base_atomics"))
     {
         OPENCL_EXPECTED_ERROR("Device does not support global_int32_base_atomics!");
     }
-
+    */
     {
         // The block is to move the declaration of prop closer to its use
         cl_command_queue_properties prop = 0;
diff -uNr a/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/BufferBandwidth/Shared.cpp b/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/BufferBandwidth/Shared.cpp
--- a/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/BufferBandwidth/Shared.cpp	2013-10-30 12:39:00.000000000 +0200
+++ b/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/BufferBandwidth/Shared.cpp	2014-01-31 10:53:21.299733573 +0200
@@ -152,12 +152,14 @@
     clGetDeviceInfo(device, CL_DEVICE_EXTENSIONS, extStringSize, deviceExtensions, NULL);
 
     // Check if cl_khr_fp64 extension is supported 
+    /*
     if(!strstr(deviceExtensions, "cl_khr_local_int32_base_atomics"))
     {
         fprintf( stderr, "Device does not support cl_khr_local_int32_base_atomics extension!\n");
         delete deviceExtensions;
         exit(0);
     }
+    */
     delete deviceExtensions;
 
     // Get OpenCL device version
@@ -266,15 +268,17 @@
     }
 
     ret = clGetDeviceIDs( platform,
-                          devs[1],
+                          devs[0],
                           128,
                           devices,
                           &num_devices );
+    /*
     if((ret == CL_DEVICE_NOT_FOUND) || (num_devices == 0))
     {
         fprintf( stderr, "This sample requires a GPU to be present in order to execute");
         exit(FAILURE);
     }
+    */
     ASSERT_CL_RETURN( ret );
 
     device = devices[devnum];
diff -uNr a/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/ImageBandwidth/Shared.cpp b/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/ImageBandwidth/Shared.cpp
--- a/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/ImageBandwidth/Shared.cpp	2013-10-30 12:39:02.000000000 +0200
+++ b/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/ImageBandwidth/Shared.cpp	2014-01-31 10:53:21.300733603 +0200
@@ -150,12 +150,14 @@
     clGetDeviceInfo(device, CL_DEVICE_EXTENSIONS, extStringSize, deviceExtensions, NULL);
 
     /* Check if cl_khr_fp64 extension is supported */
+    /*
     if(!strstr(deviceExtensions, "cl_khr_local_int32_base_atomics"))
     {
         fprintf( stderr, "Device does not support cl_khr_local_int32_base_atomics extension!\n");
         delete deviceExtensions;
         exit(EXPECTED_FAILURE);
     }
+    */
     delete deviceExtensions;
 
     /* Check for image support */
@@ -270,7 +272,7 @@
     }
 
     ret = clGetDeviceIDs( platform,
-                          devs[1],
+                          devs[0],
                           128,
                           devices,
                           &num_devices );
diff -uNr a/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/KernelLaunch/KernelLaunch.cpp b/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/KernelLaunch/KernelLaunch.cpp
--- a/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/KernelLaunch/KernelLaunch.cpp	2013-10-30 12:39:02.000000000 +0200
+++ b/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/KernelLaunch/KernelLaunch.cpp	2014-01-31 10:53:30.408010010 +0200
@@ -410,7 +410,7 @@
       tlog->Msg( "\n%s\n\n", "GPU kernel read of inputBuffer" );
 
       for(int i = 0; i < nRepeats; i++)
-          timedReadKernelVerify( queue, read_kernel, inputBuffer, resultBuffer, nl & 0xff, true );
+          timedReadKernelVerify( queue, read_kernel, inputBuffer, resultBuffer, nl & 0xff, false );
 
       tlog->Msg( "%s\n", "" );
    }
diff -uNr a/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/KernelLaunch/Shared.cpp b/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/KernelLaunch/Shared.cpp
--- a/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/KernelLaunch/Shared.cpp	2013-10-30 12:39:02.000000000 +0200
+++ b/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/KernelLaunch/Shared.cpp	2014-01-31 10:53:21.300733603 +0200
@@ -203,7 +203,7 @@
     }
 
     ret = clGetDeviceIDs( platform,
-                          devs[1],
+                          devs[0],
                           128,
                           devices,
                           &num_devices );
@@ -243,13 +243,14 @@
 
     ASSERT_CL_RETURN( ret );
 
+    /*
     if(strstr(extensions,"cl_khr_local_int32_base_atomics") == NULL)
     {
         printf("Expected Error: cl_khr_local_int32_base_atomics is not supported by the device/n");
         status = EXPECTED_FAILURE;
 		return;
     }
-
+    */
     context = clCreateContext( NULL,
                                1,
                                &device,
diff -uNr a/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/TransferOverlap/TransferOverlap.cpp b/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/TransferOverlap/TransferOverlap.cpp
--- a/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/TransferOverlap/TransferOverlap.cpp	2013-10-30 12:39:51.000000000 +0200
+++ b/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/TransferOverlap/TransferOverlap.cpp	2014-01-31 10:53:21.301733633 +0200
@@ -158,11 +158,12 @@
     CHECK_ERROR(retValue, SDK_SUCCESS, "SDKDeviceInfo::setDeviceInfo() failed");
 
     // Check device extensions
+    /*
     if(!strstr(deviceInfo.extensions, "cl_khr_local_int32_base_atomics"))
     {
         OPENCL_EXPECTED_ERROR("Device does not support cl_khr_local_int32_base_atomics extension!");
     }
-
+    */
     // Get OpenCL device version
     std::string deviceVersionStr = std::string(deviceInfo.deviceVersion);
     size_t vStart = deviceVersionStr.find(" ", 0);
diff -uNr a/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cpp_cl/AsyncDataTransfer/AsyncDataTransfer.cpp b/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cpp_cl/AsyncDataTransfer/AsyncDataTransfer.cpp
--- a/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cpp_cl/AsyncDataTransfer/AsyncDataTransfer.cpp	2013-10-30 12:39:52.000000000 +0200
+++ b/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cpp_cl/AsyncDataTransfer/AsyncDataTransfer.cpp	2014-01-31 10:54:28.112760742 +0200
@@ -469,7 +469,7 @@
     {
         status |= readQueue.enqueueUnmapMemObject(inPrepinBuffer[k], input[k], NULL,
                   NULL);
-        status |= readQueue.enqueueUnmapMemObject(outPrepinBuffer[k], input[k], NULL,
+        status |= readQueue.enqueueUnmapMemObject(outPrepinBuffer[k], output[k], NULL,
                   NULL);
         CHECK_ERROR(status, SDK_SUCCESS, "Failed enqueueUnmapMemObject(PrepinBuffers)");
     }
diff -uNr a/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cpp_cl/CplusplusWrapper/CplusplusWrapper.cpp b/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cpp_cl/CplusplusWrapper/CplusplusWrapper.cpp
--- a/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cpp_cl/CplusplusWrapper/CplusplusWrapper.cpp	2013-10-30 12:39:52.000000000 +0200
+++ b/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cpp_cl/CplusplusWrapper/CplusplusWrapper.cpp	2014-01-31 10:53:21.302733663 +0200
@@ -123,11 +123,13 @@
     
     cl::Event e;
 	cl::Platform platform = cl::Platform::getDefault();
+    /*
 	if(strcmp(platform.getInfo<CL_PLATFORM_VENDOR>().c_str(), "Advanced Micro Devices, Inc."))
 	{
 		std::cout<<"Default platform should be Advanced Micro Devices, Inc. to run this sample\n"<<std::endl;
 		exit(FAILURE);
 	}
+    */
     // set arguments for kernel, and execute it.
     cl::NDRange ndrg(NUM_ELEMENTS);
     cl::NDRange ndrl(NUM_ELEMENTS);
diff -uNr a/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cpp_cl/HistogramAtomics/HistogramAtomics.cpp b/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cpp_cl/HistogramAtomics/HistogramAtomics.cpp
--- a/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cpp_cl/HistogramAtomics/HistogramAtomics.cpp	2013-10-30 12:39:55.000000000 +0200
+++ b/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cpp_cl/HistogramAtomics/HistogramAtomics.cpp	2014-01-31 10:53:21.303733694 +0200
@@ -230,12 +230,13 @@
                                         cl_uint4));
 
     // Check if byte-addressable store is supported
+    /*
     if(!strstr(deviceInfo.extensions, "cl_khr_local_int32_base_atomics"))
     {
         reqdExtSupport = false;
         OPENCL_EXPECTED_ERROR("Device does not support local_int32_base_atomics extension!");
     }
-
+    */
     // Create input buffer
     inputBuffer = clCreateBuffer(context,
                                  CL_MEM_READ_ONLY,

--- a/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/DeviceFission/DeviceFission.cpp
+++ b/AMD-APP-SDK-v2.9-RC-lnx64/samples/opencl/cl/DeviceFission/DeviceFission.cpp
@@ -97,7 +97,7 @@
     {
         retValue = deviceInfo.setDeviceInfo(Devices[i]);
         CHECK_ERROR(retValue, 0, "SDKDeviceInfo::setDeviceInfo() failed");
-        if (deviceInfo.dType == CL_DEVICE_TYPE_CPU)
+        if (deviceInfo.dType & CL_DEVICE_TYPE_CPU)
         {
             cpuDevice = Devices[i];
         }
@@ -137,6 +137,14 @@
                                 NULL);
     CHECK_OPENCL_ERROR( status, "clCreateSubDevices failed.");
 
+    // recreate the context with the subdevices
+    status = clReleaseContext(rContext);
+    CHECK_OPENCL_ERROR( status, "clReleaseContext failed.");
+
+    rContext = clCreateContext(platform ? cps : NULL,
+	    numSubDevices, subDevices, NULL, NULL, &status);
+    CHECK_OPENCL_ERROR( status, "clCreateContext failed.");
+
     return SDK_SUCCESS;
 }
 
